zlacker

[parent] [thread] 15 comments
1. gregjo+(OP)[view] [source] 2021-08-06 09:13:23
Which is more likely: Businesses invent truly arbitrary deadlines for the hell of it, or the “engineers” don’t want to pay attention to business requirements and competitive pressures?

When so-called engineers stop spending half the development schedule choosing a framework and the other half trying to make their dev setup work on everyone’s personalized laptop they will have some credibility complaining about “arbitrary” business goals and requirements.

replies(4): >>kitsun+43 >>mobjac+Qp >>tikhon+nd1 >>NeedsC+bZD
2. kitsun+43[view] [source] 2021-08-06 09:44:21
>>gregjo+(OP)
From anecdotal evidence, a) is more likely than b). The deadlines are arbitrary because most companies are slow bureaucratic oil tankers that are difficult to steer and will mow down everything in their path once a course is set. Management's job should to be to work on this, to improve the system as a whole and making it more nimble, not on myopic deadlines that fulfil some checkbox and are tied to your EOY bonus. This is outlined by people like Deming and others in the systems thinking space.

From experience, in their career, engineers not only need to excel technically, but are also forced to pick up everything from UX, methodological BS (from Scrum to Itil) to domain specific know-how in multiple fields or areas. Since many managers do not know what they're doing, senior engineers often times end up being de facto management consultants as well. If you are working in a business environment (as opposed to writing low-level drivers or whatever) it's almost impossible to not pick up on what's going on around you.

How many banking managers know how to code? How many engineers working in banking know at least something about the processes, compliance issues, how the org is structured, what the competitors are?

The stereotype of the autistic programmer who is only interested in shiny gadgets and tech needs to die.

replies(3): >>gregjo+94 >>senko+I4 >>BackBl+uu3
◧◩
3. gregjo+94[view] [source] [discussion] 2021-08-06 09:55:03
>>kitsun+43
I agree, except the programmer (autistic or not) who wants to be left alone to code and play with shiny things is not just a stereotype. Just read through HN any day to see posts about ignoring meetings, marketing, management, business priorities and focusing excessively on languages, tools, the “best” ways to do things, dismissing non-programmers as hopelessly useless (“many managers do not know what they’re doing.”)

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.

replies(3): >>pm90+46 >>Financ+x7 >>tkiolp+Ju
◧◩
4. senko+I4[view] [source] [discussion] 2021-08-06 10:02:14
>>kitsun+43
> The stereotype of the autistic programmer who is only interested in shiny gadgets and tech needs to die.

The stereotype has been kicked to death, dismembered, burned, rebuilt as an effigy and burned again throughout the years.

The stereotype of the evil and incompetent manager who is only interested in ruining the lives of their underlings, who would solve the world's problems if only left alone to do their jobs, is still going strong.

replies(1): >>kitsun+76
◧◩◪
5. pm90+46[view] [source] [discussion] 2021-08-06 10:16:52
>>gregjo+94
> Just read through HN any day to see posts

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.

replies(1): >>gregjo+37
◧◩◪
6. kitsun+76[view] [source] [discussion] 2021-08-06 10:17:31
>>senko+I4
I agree with you here, but some observations:

Managers are imbued with more formal power than their reports and as such should be held to a higher standard. Simply passing on pressure and not standing up for your team will never inspire loyalty.

Taylorism and top-down management are culturally embedded in many companies. With software eating the world you have companies who are ill-equipped to deal with other ways of working and do not understand how writing software is fundamentally different than building a house. This all inevitably leads to cultural conflicts.

◧◩◪◨
7. gregjo+37[view] [source] [discussion] 2021-08-06 10:23:53
>>pm90+46
For most of my 40 year career as a programmer HN didn’t exist, but the complaints about management and business priorities did. And so did those stereotypical developers who want to be left alone to play with shiny things.

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.

replies(1): >>uglygo+Fw
◧◩◪
8. Financ+x7[view] [source] [discussion] 2021-08-06 10:30:44
>>gregjo+94
> (a) developers did not bother to gather and understand requirements but rushed to start coding

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?

replies(1): >>gregjo+o8
◧◩◪◨
9. gregjo+o8[view] [source] [discussion] 2021-08-06 10:39:36
>>Financ+x7
Management may be at fault, but anecdotally I see programmers rushing to code very often. Almost every one of my customers has the same story: the last developers stopped answering emails and calls when the project ran into problems.

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.

replies(1): >>rightt+Ib
◧◩◪◨⬒
10. rightt+Ib[view] [source] [discussion] 2021-08-06 11:14:43
>>gregjo+o8
I do disagree. The primary responsibility of the manager is to manage and to manage they need to understand the process. The problem is that managers very often do not understand the software engineering field particularly well at all. I've seen it a thousand times that both large and small issues are simply ignored by managers, because they either do not understand them or even if they manage to grasp something, they fail to understand that they need to actively do something about it or just plain out ignore the issue, either with wishful thinking or just a power move where they think the issue isn't theirs to solve and in fact that the issue lies on the engineer to resolve. Most engineers are highly logical and would not bring something up without good reasons. It will have a negative impact if not handled.

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.

11. mobjac+Qp[view] [source] 2021-08-06 12:52:57
>>gregjo+(OP)
I often see engineers having a cynical self defeating view of the business. They will blindly follow complex requirements while complaining that there is not much they can do about it.

But if you demonstrate that you understand things from the business perspective, they are much more receptive to making adjustments.

Product managers like to gold plate things as much as engineers. There is usually some fat you can trim from the scope to make a deadline.

◧◩◪
12. tkiolp+Ju[view] [source] [discussion] 2021-08-06 13:19:44
>>gregjo+94
So, projects fail because of (arrogant or inexperienced) developers but not because of managers. And then you wonder why engineers say “many managers do not know what they are doing”.
◧◩◪◨⬒
13. uglygo+Fw[view] [source] [discussion] 2021-08-06 13:30:08
>>gregjo+37
> 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.

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.

14. tikhon+nd1[view] [source] 2021-08-06 16:35:53
>>gregjo+(OP)
Businesses—in the guise of mediocre managers—absolutely invent arbitrary deadlines as a mechanism of control. If the deadline were real, it would have context, engineers could use that context to adjust the scope and design of what they're building and we wouldn't be having these conversations in the first place.

The problem begins when deadlines are used to limit agency rather than support it.

◧◩
15. BackBl+uu3[view] [source] [discussion] 2021-08-07 13:00:16
>>kitsun+43
I think every case is individual. One of my recent gigs had management failures and engineering failures.

Management failed to communicate the limitations of the investment by investors to finish a project. In this case 4 months window of having an additional small team to build it. I had to pay very close attention to extract that information, my inquiries into it were rebuffed. My contract held the most clues.

Engineers didn't bother to listen to the clues and started a design by committee loop that was going to take a year+ to finish. They were much more interested in new shiney things than the financial business restrictions and this attitude was enabled by management.

We managed to finish something within the investment period only because I pushed and prodded at every turn trying to finalize decisions and cut out scope, without managements help, to do so. The manager who tried to shield engineering from deadlines didn't help this despite the train wreck I tried to communicate. At the end of the investment period all the extra engineering hired for the task were let go and the regulars were left to finish the demo we managed while maintaining their normal work load. It is now almost a year later it still isn't released.

While there are places where tone deaf management creates death matches for no good reason. There are apparently also places where management let's engineering walk all over them like a spoiled child with no grounding in financial realities.

16. NeedsC+bZD[view] [source] 2021-08-19 19:56:01
>>gregjo+(OP)
Do you want developers that are passionate about their work or do you want compliant drones that will only ever do the bare minimum for you and blindly follow the directions laid out by management, even when they know it will be a disaster? I see a lot of companies where management just keep pushing their employees to get a month's work done in a few days, cutting corners and creating issues because nothing is properly thought out or tested.

It's called "development" not "Bam, it's done!" The best companies allow proper time for the development process to take place and have a proper team structure. Companies where everything is discussed as a team and you succeed and fail as a team. Proper agile teams which communicate at every step, with developers, testers, a scrum master, a business owner and a manager.

If you don't have that, you're basically not a proper development team, you're more of a startup that can't afford a proper development team. Nothing wrong with startups, but if you are a startup then you have to deal with your own weaknesses and shortcomings and take your failures on the chin.

[go to top]