Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

No-one comes out of the womb caring about code quality. People learn to care about the craft precisely because internal quality -- cohesion, modularity, robustness -- leads to external quality (correctness, speed, evolvability).

People who care about code quality are not artists who want to paint on the company's dime. They are people who care about shipping a product deeply enough to make sure that doing so is a pleasant experience both for themselves and their colleagues, and also have the maturity to do a little bit more thinking today, so that next week they can make better decisions without thinking, so that they don't get called at 4 AM the night after launch for some emergency debugging of an issue that that really should have been impossible if it was properly designed.

> No one has ever made a purchasing decision based on how good your code is.

Usually they don't get to see the internals of the product, but they can make inferences based on its externals. You've heard plenty of products called a "vibe-coded piece of crap" this year, even if they're not open source.

But also, this is just not true. Code quality is a factor in lots of purchasing decisions.

When buying open source products, having your own team check out the repo is incredibly common. If there are glaring signs in the first 5 minutes that it was hacked together, your chances of getting the sale have gone way down. In the largest deals, inspecting the source code

It was for an investment decision rather than for a purchase, but I've been personally hired to do some "emergency API design" so a company can show that it both has the thing being designed, and that their design is good.



> People who care about code quality are not artists who want to paint on the company's dime. They are people who care about shipping a product deeply enough to make sure that doing so is a pleasant experience both for themselves and their colleagues, and also have the maturity to do a little bit more thinking today, so that next week they can make better decisions without thinking, so that they don't get called at 4 AM the night after launch for some emergency debugging of an issue that that really should have been impossible if it was properly designed.

Speak for yourself. This is exactly the GPs point. Some people care more about the craft of code than the output. I personally find writing good code to be what motivates me. Obviously its a spectrum; shipping is good too. But it's not why I get up in the morning.


Okay, I admit I went too hard on that one to fight against the OP. I too get extreme pleasure from condensing a 300-line function into 30 lines of simplicity, even when practical considerations (it has a clean interface and no-one's even needed to open this file in 2 years) would dictate elegance there is not helpful.


Code quality is a side-effect of caring. The most important part of product design is caring at all levels. However it's caring about the external details that is the most important. Coding language is largely a function of the population of good coders in your areas. Code evolvability is almost entirely subjective.


> Code evolvability is almost entirely subjective

Explain how?

Code evolvability is one of the extrinsic quality markers ( https://www.pathsensitive.com/2023/07/the-11-aspects-of-good... ).

If it's easy to add new features without creating bugs, the code is evolvable. Else, it's not. Does not seem very subjective.


Let's take two code bases. A 40 year old legacy Cobol monstrosity being maintained by a staff of well trained engineers that are engaged. The second an idiomatic Haskell application written simply and to the highest standards, but with a staff of junior engineers that specialize in imperative programming. The Cobol code base is much more evolvable. The staff can effectively make changes because they deeply know the product.

Evolvability is not an intrinsic feature of the software. It is a synthesis of culture, talent, passion, and code style.


I see where you're coming from. I totally agree that how easy it is for a company to change a codebase depends on the talent it has. But i think you can separate the entire codebase+ecosystem+team codebase from the quality of the codebase itself.

To use a simple analogy: you could argue that a modern Macbook is easier to maintain than an old Dell desktop, if the Macbook is owned by a certified Apple technician who knows how to microsolder, and the old Dell desktop is owned by someone who doesn't know how to use a screwdriver. But that doesn't change that, to change a hard drive, one needs much more skill and fancier tools than the other.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: