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

This wasn't a very good essay. The closing line sums up its problem: "We need to complete quality work in the shortest amount of time possible." Why, yes, I would like a double helping of pablum! Thank you for offering. You know, before now, I thought it was best to complete quality work in the longest time possible.

Sarcasm aside, the most telling line was this one: "If the project is for a three-month campaign that must be completed next week, the shortest path to the finish line is probably best. I've only been a developer for five years, and 95 per cent of my professional projects are [like that]."

This essay was written by a developer at BKWLD, an "independent digital agency." They do a lot of advertising work. Of course code quality doesn't seem important! Code quality matters when you have a team of people developing and maintaining software over a long period.

Here's a more nuanced view: speed matters, and you can be really successful developing important, business-critical software by emphasizing speed over quality. If it's a problem domain you're particularly familiar with, especially if you have a lot of tools, frameworks, and libraries to help you, you can get an impressive amount of work done.

As you continue to work, you'll slow down. At some point—about six weeks is my guess—you'll actually be going slower than someone who's focused on quality. They'll speed up over time (asymptotically), and you'll continue to slow down (also asymptotically). You'll still be ahead of them, though, because you got so much done in that initial burst of energy. Your life will start to suck, though, and you'll be looking forward to when the project is done.

Eventually—about three to six months, I'd guess—you'll fall behind. You'll be going so slow that your initial advantage will have been erased. Luckily, you now get to hand the project off and start a new one. Win!

Three to seven years later, your code will be thrown away. It will be so expensive to change that it no longer makes economic sense to maintain. If it's still relevant, it will be rewritten at great expense and even greater opportunity cost.

So, does quality matter? Depends on who you ask... and who ends up paying for it.



"Code quality matters when you have a team of people developing and maintaining software over a long period."

And for me, 'a long period' is anything longer than a month, or more specifically, the time period it takes for me to have to change any code I've already written in order to deliver new business value to a customer.

...and just noticed your 'six weeks' estimate. We're on the same page here it seems. :)


Well said, James.

I've seen so many systems built quickly with time-to-market in mind, only to falter a few years later when the team can no longer safely make changes.

The irony is that they lose their hard-won market share while they re-write the system.




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

Search: