Hacker News new | ask | show | jobs
by jpadvo 5537 days ago
"Sustained software quality is an extremely difficult challenge." - (from the article)

Quality can mean a lot of different things. Elegant, simple to understand code. Adherence to current best practices. Modular. And the list goes on...

But the most important part of quality for actual users is that your software is solid -- it isn't going to break and cost them time or money. That kind of quality isn't particularly complicated to obtain -- it takes hard work, discipline, and prioritization, but there's nothing magical about it.

"When you’re a carpenter making a beautiful chest of drawers, you’re not going to use a piece of plywood on the back, even though it faces the wall and nobody will ever see it. You’ll know it’s there, so you’re going to use a beautiful piece of wood on the back. For you to sleep well at night, the aesthetic, the quality, has to be carried all the way through."

- Steve Jobs

1 comments

Unfortunately most developers don't want to put the effort to maintain quality.

They just want to write a code, skipping writing automation test, and call it "magically done by me, the greatest hacker in this company, for under 1 hour".

Forgive me with the sarcasm but that's apparently quite common.

I would counter that with the argument that most people paying the bills do not want to pay the extra short-term costs associated with doing things more correctly. I know that I'm probably preaching to the choir here when I say that this is obviously a false-economy and you are deferring costs and building technical debt by working like that, but clients often want to save a quick buck. Good clients understand that this isn't wise, and are golden to have as customers.

Of course, there is often no real need to build code to be any more than 'just good enough' in the same way that many people are quite happy to purchase a plywood-backed piece of IKEA furniture instead of a solid mahogany hand-crafted piece. It serves their purposes just fine and saves them a ton of money. A good developer will similarly be able to determine what the precise definition of 'good enough' is for any given project scope/budget/time constraints.

I agree with you. I did not mention the bar of quality expected by the client.

That is fall under the "negotiation" phase between the client and the service provider. There should be some sort of agreeable quality other than "I just want the best of everything".

But the rule might be different for "product" based company than the "services" (consulting) based.

If you have $41m in investment gravy, er, I mean money, by all means, write lots of unit tests and automated test suites.

OTOH, if you have OTOOM of $1k or less, and only a few free hours per day or week to put into a project, or a drop-dead-runway of a few months, then tests are your enemy, because there's a lot of additional cost in terms of time and hassle in order to write them and maintain them as you go along. That's not to say that all tests are bad, or that tests never make sense. It's to say that having tests adds a cost, and so sometimes the upside of having them does not justify the downside.