3 ms·
I mostly agree with your top line. Code "beauty" and "quality" are not objective measures, and there are plenty of devs out there who are obsessed with their o
by dasil003 10y ago
I mostly agree with your top line. Code "beauty" and "quality" are not objective measures, and there are plenty of devs out there who are obsessed with their own interpretation of those ideals to the point that it inhibits their ability to ship.
However there is an existential danger for management to embrace this philosophy. The problem is the incentives are already naturally aligned to ship today, and problems discovered tomorrow are likely to fall on the shoulders of someone other than the original author. If there is no institutional value towards maintainability, then the code base will get worse and worse until it grows beyond the cognitive ability of anyone to ship anything without negative ROI. By the time that happens the cost to fix may be more than the company can afford.
- erikb 10y agoThe funny thing though is that tomorrow will resolve itself by itself. If the next guy finds the code too unworkable it will get replaced or the company dies out. Either event is not really a problem. Somewhere money is found to pay the replacement, people find new jobs, new companies take up space opened by other companies dying. Everything else comes from the need to pay the bills. What does your landlord say if you don't pay your rent? What do you say if your boss doesn't pay you? It's not a management philosophy it's people trying to pay you and themselves. And even that may fail one day. You're probably doing the same, when you are like most people going to work every day despite having other quality ways to spend your time, e.g., reading a great book.
- dasil003 10y agoSure, in the metaphysical sense does anything really matter? But as a business owner, you don't want your business to die and be replaced by someone else's business due to technical debt. Just because it's hard to quantify the cost of technical debt doesn't mean it isn't real and we should just throw up our hands in defeat. And lest you think I'm some sort of artisanal code hipster, I spent years building freelance custom web apps in the $1k-$20k budget range, so I know how to fucking ship. Also, I've been the tech lead on a Rails monolith powering a 7-figure revenue startup for 10 years, taking it from Rails 1.2 through Rails 4.2 one version at a time. Knowing how code rot will happen and how business logic will change is impossible to be sure about, but having some instincts can save a ton of money down the line. I've received thank you notes for architectural decisions and commit messages I wrote years ago and had long since forgotten. Not all businesses will be able to recognize that such value even exists, and the ones that don't are likely to be a shit show that will never be able to attract an upper echelon of developers. The right attitude and experience about code quality can be a huge competitive advantage.