Most active commenters
  • hinkley(6)
  • wiseowise(4)

←back to thread

128 points leoncaet | 26 comments | | HN request time: 1.24s | source | bottom
Show context
burnt-resistor ◴[] No.44539155[source]
I'm disillusioned because it never happens, but purveyors of conferences and books are happy to sell the promised land™ of how "it's really going to be different this time."

Processes, tools, and diligence vigilantly seem the most apparent path. Perhaps rehash the 50 year old debate of professionalization while AI vibes coding is barking at the door, because what could possibly go wrong with even less experience doing the same thing and expecting a different result.

replies(3): >>44540097 #>>44540223 #>>44540697 #
1. rachofsunshine ◴[] No.44540697[source]
It doesn't happen because building the best software is not the goal of a software engineering job.

If you want to do that on your own time, that's fine - but the purpose of a job is economic. Of course you should write software of some reasonable quality, but optimizations have diminishing economic returns. Eventually, the returns are lower than the cost (in time, money, etc) of further optimizing, and this break-even point is usually at a lower level of quality than engineers would like it to be. Leadership and engineering managers know this and behave accordingly.

replies(3): >>44540744 #>>44540803 #>>44540961 #
2. jcgrillo ◴[] No.44540744[source]
While I agree with everything you've said, I think you might be making an assumption that quality costs time. In my experience this isn't the case, unless you're starting from a low quality codebase or working with low quality people. A high quality team can produce high quality software in less time than it takes a low quality team to produce low quality software meeting the same functional requirements.

The whole ballgame is making sure you have no low quality people on your team.

replies(3): >>44541062 #>>44541235 #>>44541437 #
3. pydry ◴[] No.44540803[source]
This is only true in certain contexts. Most of the time software quality is looked over not because it genuinely isnt important but simply because it's hard to perceive.

Ive watched many businesses appreciate the benefits of software quality (happy customers, few incidents, fast feature turnaround) without ascribing it to anything in particular.

Then, when it went away, they chalked up the problems to something else, throwing fixes at it which didnt work.

At no point in time did they accurately perceive what they had or what they lost, even at the point of bankruptcy.

Part of the problem is that the absence of bugs, incidents and delays just feels normal and part of the problem is most people are really bad at detecting second order effects and applying second order fixes. E.g. they think "another developer will fix it" or "devs just need to dedicate more time to manual QA".

Conversely, because it's so hard to see I think it can make a really good competitive moat.

replies(4): >>44541584 #>>44541744 #>>44542490 #>>44543199 #
4. astrobe_ ◴[] No.44540961[source]
Companies can sacrifice every thing for "time to market" - optimization, maintainability, security and safety even - but underestimate the costs of doing that. It is actually more a marketing choice than an economic choice.

One can be skeptical about the implied statement and leadership/management knows what it is doing beyond delivering at the (arbitrarily) set time. One definition of Quality is to satisfy a need entirely at the lowest cost in the shortest time, but more often that not, the last term gets 90% of the attention.

replies(3): >>44541227 #>>44541727 #>>44542153 #
5. ◴[] No.44541062[source]
6. wiseowise ◴[] No.44541227[source]
> but underestimate the costs of doing that

Do they? I’ve been fighting against the tide for years until I understood that all of quality this and quality that doesn’t matter. Sure, it sucks to be on the receiving end of buggy software, but this where you vote with your money. At work? Finish the task with least amount of resources and move on.

replies(3): >>44541734 #>>44541755 #>>44542471 #
7. wiseowise ◴[] No.44541235[source]
> A high quality team can produce high quality software in less time than it takes a low quality team to produce low quality software meeting the same functional requirements.

Key word is ‘can’. And it takes far more time and money to assemble “quality” team.

8. rachofsunshine ◴[] No.44541437[source]
This isn't an apples-to-apples comparison.

The quality of your team is more-or-less a pre-existing background variable. The question is whether a team of comparable quality takes longer to produce quality software than hacked-together software, and the answer appears to be "yes". The only way out of this is if optimizing more for code quality *actually helps you recruit better engineers*.

I can put a little data to that question, at least. I run a recruiting company that does interviews, so we have data both on preferences and on apparent skill level.

I went and split our data set by whether an engineer indicated that emphasis on code quality was important to them. Our data suggests that you can probably make slightly better hires (in a raw technical-ability sense) by appealing to that candidate pool:

- Candidates who emphasized quality were slightly (non-significantly) more likely to pass our interview and,

- Candidates who emphasized quality were slightly (non-significantly) less likely to have gotten a job already

The effect is pretty small, though, and I doubt it outweighs the additional cost.

9. fuzzfactor ◴[] No.44541584[source]
>At no point in time did they accurately perceive what they had or what they lost, even at the point of bankruptcy.

This is traditionally not only with software, but other kinds of companies too.

Some people are just not quality people.

At this conference there's a presentation encouraging "You should finish your software."

If that's all people did that would be 10x better right there.

replies(1): >>44541766 #
10. hinkley ◴[] No.44541727[source]
They underestimate how long it takes to turn the boat when lowering operational costs becomes the best avenue to improving revenue.

I think it’s like switching CEOs when the company goes out of startup mode into grownup company. What got you here won’t keep you here.

11. hinkley ◴[] No.44541734{3}[source]
It’s about momentum. Once you lose it the wheels come off. And at first that’s shipping product, but later on it’s adding new features to the minefield you’ve laid. Until you start clearing the mines your velocity continues to drop.
replies(2): >>44541767 #>>44541840 #
12. hinkley ◴[] No.44541744[source]
It’s like physical fitness. Try explaining to someone who has never been in shape how it’ll feel to be in shape, and they won’t believe you.

I’ve converted people by building better systems than they’ve seen before. Some balk, but better than half end up getting it and pitching in.

13. anonzzzies ◴[] No.44541755{3}[source]
> Finish the task with least amount of resources and move on

which is now claude code...

14. hinkley ◴[] No.44541766{3}[source]
We are getting to the point where people don’t even do the “make it right” part of Make it Work, Make it Right, Make it Fast. It’s making it tough to push for the latter when you can’t even get Right out of some people.
15. wiseowise ◴[] No.44541767{4}[source]
> Until you start clearing the mines your velocity continues to drop.

I've been doing this for decades, it's never a problem. Either velocity tanks in which case there's a short period where company invests into improving it, or people leave.

replies(1): >>44542395 #
16. ◴[] No.44541840{4}[source]
17. akst ◴[] No.44542153[source]
> Companies can sacrifice every thing for "time to market" - optimization, maintainability, security and safety even - but underestimate the costs of doing that

If you're working at a company who disregards safety and security good luck getting them to care about clean code and efficiency.

18. rizzom5000 ◴[] No.44542395{5}[source]
I've seen projects that failed, or were killed, likely at least in part due to a culture that encouraged poor quality and tech debt. This is preventable, and for no additional up-front engineering effort or time investment.
replies(3): >>44542817 #>>44542866 #>>44543070 #
19. esafak ◴[] No.44542471{3}[source]
At work the buyer is not the user, so be sure to hound the buyer when he saddles you with crap.
20. esafak ◴[] No.44542490[source]
> ... even at the point of bankruptcy

It that were always the case we could bask in the joy that the problem sorted itself out, but alas, there's a lot of crap that keeps on going.

21. hinkley ◴[] No.44542817{6}[source]
One of my managers was fond of the phrase, “a project is done when nobody is willing to work on it anymore.” That can be because of a number of reasons, including that the money is gone, or it sucks your will to live.
22. astrobe_ ◴[] No.44542866{6}[source]
Yes, parent says "people leave" as if it is not a problem in itself; you lose the time it takes to train these people, and they probably take some knowledge about the products with them. Or maybe we are actually talking about commodity developers?

But I'm curious about how one prevents this dysfunctional culture.

replies(2): >>44542946 #>>44544101 #
23. hinkley ◴[] No.44542946{7}[source]
At my last job the people motivated to fix the clusterfuck were the first to leave. Except me because I’m a masochist apparently.
24. switchbak ◴[] No.44543070{6}[source]
I think this is the most common failure mode I’ve seen, short of a failure to find a proper product-market fit.

It’s just really hard to overstate how much damage a bunch of crappy code can have. Even with the best of intentions. I must say I strongly disagree that this is “never a problem”.

25. marcosdumay ◴[] No.44543199[source]
> E.g. they think "another developer will fix it"

Ouch. It seems that when a manager sinks some team's velocity by adding a bad developer to it the following reaction is always to add more bad developers so the velocity recovers.

And then when they can't herd all the bad developers around, the obvious next step is to finish destroying everything again by imposing some strict process.

26. wiseowise ◴[] No.44544101{7}[source]
We’re talking about different scales.

At a big company “you” don’t lose anything. You only lose if you’re a fool trying to fix dysfunctional culture when you’re not even close to C level.