Hacker News new | past | comments | ask | show | jobs | submit login

I hope this attitude is used sparingly and in cases where either the problem is supremely hard or where time is exceedingly short.



You are missing the point. "Good enough" depends entirely on the context. In some contexts, the bar for "good enough" will necessarily be quite high, while in other context it won't matter as much. There is no perfect code -- because no two humans could agree on such a definition.

Sure, people may disagree on what is good enough. But hopefully that disagreement will be easier to resolve than one about what the perfect solution might be.


My only concern is that this line of thought can be used as an excuse to stop trying. As long as we agree that one should strive for perfection given the constraints at hand (money / time / problem difficulty / experience level etc) I dont have any objection about the idea.

On a related note, I feel another analogous statement that I now see used dangerously is "Premature optimization is the root of all evil". Yes optimizing prematurely can be paralyzing but the other extreme where one refuses to do back of the envelope calculations and wilfully writes code that will be slow is damaging as well.


I can appreciate that. I have some perfectionist tendencies myself. I think it is a tricky balance that must we must walk. I like your idea of "as perfect as our constraints allow".

Another important consideration is the level at which the quality exceeds the needs of current and future users of the software. Past this point (which might be impossible to determine or fully agree upon), one must acknowledge they continue to iterate and polish for purely personal reasons. This can be fine in certain situations, but it may be a detriment in professional endeavors.

And of course, like always, one must consider opportunity costs.


That's a good attitude to aspire to, but, in real software development, very little code survives contact with users unscathed. If you're writing a C compiler or something with a well-defined spec, then, sure, you can theoretically write perfect software. But, even your basic CRUD web site is unlikely to ever reach "perfect" status.

Edit: For example, the HN code was obviously not "perfect," since we just got several new features. :)


Time is always exceedingly short. If doctors were required to perform appendicectomies in ~30min, but they were not held accountable whether the pacient lived or died, you would see a market dominated by some pretty barbaric hospitals (think no sanitazion/anesthetics)... which people would just accept because at least they would be better than the average back-alley butcher.




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

Search: