Live data from Hacker News

Ask HN: Good enough vs excellence -- which do you favor?

news.ycombinator.com

1–10 of 24 posts

Ask HN: Good enough vs excellence -- which do you favor?

#1
Simple enough question: would you rather work at a company that:

A) settles for "good enough" with rapid iteration, or

B) one that demands excellence but takes longer to for each iteration?

I favor B... but it seems that A is gaining strength these days. It's a worrisome trend to my eyes.

Re: Ask HN: Good enough vs excellence -- which do you favor?

#3
A is the route Google takes (e.g. there have been 6 updates to Android since Feb 2009, with a 7th due out in a few months, but still not matching the polish of iPhone OS).

Apple does B (e.g. one major update to iOS each year, even if it means trailing the industry with features like copy/paste, multitasking, video chat until they can do them the pretty "Apple way").

Microsoft these days seems to have found a choice C, which is longer and longer iterations and settling for good enough or worse. Just look at the following release dates for Windows Mobile and you can see longer intervals for smaller improvements:

  5.0 5/2005
  6.0 2/2007
  6.1 4/2008
  6.5 5/2009
  6.5.3 2/2010
I personally would rather work for Google, so my answer is A. Rapid iteration gives you the satisfaction of seeing something you worked on "go live" vs seeing it die on the operating table after years of work and knowing you'll likely see Halley's comet before another project goes live.

Re: Ask HN: Good enough vs excellence -- which do you favor?

#4
The way you phrase your question is somewhat prejudicial. No one wants to claim that they'll "settle." However, everyone has some threshold of "good enough" for release. Even your option B alludes to that; if you're iterating, it means that there's something that can be improved after release.

The real question is at what point will releasing produce the most value for you and your customers. For some circumstances, that point might be very early with very little polish. In others, it doesn't make sense to release publicly until you've ironed most of the kinks out.

Re: Ask HN: Good enough vs excellence -- which do you favor?

#5
Illogical question. The entire point of "good enough" is that it is excellent.

Each iteration of the project has to be good enough. All you need to be excellent is enough iterations.

Perhaps a better question would be, "Which do you favor, many 'good enough' iterations or one shot at perfection?" The answer to this question is obviously the former because the latter almost never gets done.

Re: Ask HN: Good enough vs excellence -- which do you favor?

#7
I don't know who would prefer good enough, but the realities of the market and life in general forces you into it.

Even companies which we associate with excellence end up shipping less than ideal products with crucial things MIA, e.g. copy+paste, multitasking.

But in the end those things didn't matter so much, did they.

Re: Ask HN: Good enough vs excellence -- which do you favor?

#10
I doubt that there is any one answer to a question like this.

What field are you talking about? If it is a performance critical application like code for hospitals or intelligent life support systems/medical devices then certainly one would go for B.

On the other hand if you're designing a UI then there is no one way to do it. It's true that Apple releases only one update in a long time but they make hundreds of prototypes and test them out like anything (see: http://developer.apple.com/mac/library/documentation/UserExp...). So they do a clever combination of A+B, while maintaining their image.

However, if you're small then you can't afford to hire professional testers to test everything, or do videotaped randomized trials with volunteers who have signed a NDA. So, then a release often and correct often strategy would work well for you.

The question should be; How should I decide which one is better for me? A, B or A+B in some permutation?

[note: I am assuming that B in its pure form means micro-managed code that is proactively developed to be perfect from the start based on some previous parameters.]

Post reply on HN