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

←back to thread

114 points leoncaet | 25 comments | | HN request time: 1.498s | source | bottom
1. 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 #
2. intelVISA ◴[] No.44540097[source]
Aye, it never happens but it does sell a lot of books ;)

I don't think we'll reach this promised land™ until incentives re-align. Treating software as an assembly line was obviously The Wrong Thing judging by the results - problem is how can we ever move to a model that rewards quality perhaps similar to (book) authors and royalties?

Owner-operator SaaS is about as close as you can get but limits you to web and web-adjacent.

replies(1): >>44540169 #
3. ozim ◴[] No.44540169[source]
Just like all the fitness content.

Get couple shredded guys and gals to show off how fit they are so everyone feels guilty they are snacking past 8PM.

Sell another batch of “how to do pushups” followed by “how to do pushups vol.2” with “pushup pro this time even better”.

Where in the end normal people are not getting paid for getting shredded, they get paid for doing their stuff.

I just constantly feel like I am not a proper dev because I mostly skip unit tests - but on the other hand I built last 15 years couple of systems that worked and were bringing in value.

replies(2): >>44540368 #>>44540602 #
4. jackblemming ◴[] No.44540223[source]
It happens when an ex-engineer is in a leadership position. The results are good, but it’s typically a small part of having a successful company.

However, you should want to build quality software because building quality things is fulfilling. Unfortunately certain systems have made the worship of money the end all be all of human experience.

5. zoover2020 ◴[] No.44540368{3}[source]
Why would you skip unit tests? Especially in the AI age. You can quickly verify your behavior. Also, by not writing them you're also missing out on opportunities to modularize your code.

Obviously, this assumes you write enterprise grade code. YMMV

replies(1): >>44540654 #
6. qznc ◴[] No.44540602{3}[source]
You could switch into a domain where safety-critical software is developed. Here devs complain about the inverse problem: Why are we required to have 100% test coverage?!

(The answer btw: Because nobody would be able to explain to a jury/judge that 80% or whatever is enough)

replies(1): >>44541790 #
7. ozim ◴[] No.44540654{4}[source]
You can write modular code without writing tests - I write testable code - I don't write tests. When I need I can always add them back, but I tend to skip it as mostly it doesn't make sense.

But still cottage industry of "clean code" is pushing me into self doubts and shame.

8. 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 #
9. 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 #
10. 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(2): >>44541584 #>>44541744 #
11. 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 #
12. ◴[] No.44541062{3}[source]
13. wiseowise ◴[] No.44541227{3}[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(2): >>44541734 #>>44541755 #
14. wiseowise ◴[] No.44541235{3}[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.

15. rachofsunshine ◴[] No.44541437{3}[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.

16. fuzzfactor ◴[] No.44541584{3}[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 #
17. hinkley ◴[] No.44541727{3}[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.

18. hinkley ◴[] No.44541734{4}[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 #
19. hinkley ◴[] No.44541744{3}[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.

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

which is now claude code...

21. hinkley ◴[] No.44541766{4}[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.
22. wiseowise ◴[] No.44541767{5}[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.

23. pydry ◴[] No.44541790{4}[source]
Or they complain that they know everything has gone to hell but if they blow the whistle revenge will be taken against them.

Everybody who worked with the 2005 Toyota Camry ETCS would have known what was up when it killed a few people, for example. Nobody can work on spaghetti code of that magnitude and not realize that something is off.

Boeing employees who tried to blow the whistle were similarly ignored or silenced while a few died in mysterious circumstances.

24. ryandv ◴[] No.44541840{5}[source]
You have to remember the typical career cadence in this industry. I have been told that three years is a lifetime at one employer; thus, the key is to architect the system on top of a pile of hacks, get accolades, promotions, and bullet points for your resume, and then leave the mess for the next guy to clean up once the codebase starts hitting a tech debt singularity within a few years.

Maintenance programming is for chuds. Winners leave unmaintainable piles of spaghetti for the next poor soul to untangle. AI will only further encourage this way of developing software as the source code becomes next to worthless and people start writing software simply by praying to the LLM in English, hoping the genie in the cloud is able to divine their intent correctly. Cyclomatic complexity, coupling, cohesion, SOLID, and "clean code" are obsolete and useless knowledge under this paradigm, because the code no longer needs to be intelligible to and maintainable by humans in a world where it's the LLM interfacing with and manipulating the source.

After all, if the old codebase starts to collapse under the weight of its own design, you can just get the AI to spin up a parallel implementation at feature parity within a week.

25. akst ◴[] No.44542153{3}[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.