As a freelancer I have to get to know the business my customers are in, I can’t just focus on purely technical things most of the time. Many times I have described my work to other programmers and heard how they want to be left alone to code. I take over legacy software and failed projects for a living. The two main reasons in my experience for software dev project failure are (a) developers did not bother to gather and understand requirements but rushed to start coding, and (b) poor communication with the customer and stakeholders. Those faults may come from arrogance or inexperience, or both.
Only an incredibly tiny slice of professional engineers are on HN, even smaller slice of that actually post anything. HN is not representative of anything.
You can find the attitude I described all over the place, not just HN.
When I get involved in a failed or failing project the developers almost always blame management, schedules, budgets, marketing priorities. They almost never reflect on the time they’ve wasted or how they don’t really understand the goals or users for the software they are responsible for.
Because of arbitrary and too short deadlines
> (b) poor communication with the customer and stakeholders
Communication is a two way street. Why blame devs for all this?
In my opinion, when a project fails, you have to blame the people higher up in the management chain who are coordinating the work, rather than the engineers. (in a large company)
If engineers are to blame, maybe look at your hiring standards and hire better engineers. This points back to the management again.
> Those faults may come from arrogance or inexperience, or both.
Don't hire arrogant or inexperienced engineers then?
I have worked with terrible managers an dysfunctional organizations, but I have seen developers rush to code and stop communicating far more frequently.
I don’t really care about blame. These are people problems with no single solution. When I get involved in a failed project the customer has moved past blame and just wants to salvage something to meet their requirements. The programmers will blame management with little introspection about their own role in the failure.
I do not manage like this myself and I do not blame my engineers for anything that sits on my head, but I learned these lessons painstakingly through 15+ years of professional coding myself, seeing all kinds of roles at all kinds of companies creating chaos, project managers, product managers, bad managers, bad manager's managers, etc, but also the good ones luckily, the ones that were respected, knew what they were talking about, won the hearts of engineers, etc. This is what I modelled my own path after.
I think the quoted statement tends to be a systematic issue on struggling projects that describes the decision makers, regardless of role.
I'm not sure how anybody can expect other outcomes than a few lucky successes and a lot of failures when understanding why you are building something seems to be undervalued by management, technical or other.