5
JustThat
56d

My boss is always telling me "perfect is the enemy of good" and I want to be perfect at coding so I may never get good.

Comments
  • 2
    I hate that saying. It's a copout and really means "the company doesn't want to pay you to do quality work, we need something shipped now"
  • 1
    @junon

    It depends.

    There's also real excessive / premature optimization and so forth.

    And the issue of never putting out the product at all as you try to polish it endlessly....
  • 1
    @N00bPancakes Most devs that I've met aren't overoptimizing. That's a pretty common myth that it's a rampant problem IMO.
  • 1
    Over optimizing is just one possible definition.

    The saying might also mean:

    - Don't waste time making it neat
    - Don't waste time commenting the code
    - Don't waste time thinking about edge or corner cases, stick to the defined ones
    - Don't make it user friendly

    And I'll add this:

    Good is the enemy of secure.
  • 0
    @N00bPancakes I agree that premature optimization can be a problem but where do you draw the line?

    If I write code that works for the 1 use case described but fails whenever an edge or corner case appears, is it good? Would adding code to handle more use cases be optimization?

    If I write a CLI utility that doesn't provide help and isn't documented, is it good? Would adding CLI help be considered optimization?

    What is the definition of "perfect", anyway?

    And "good" can be adhered to as long as the requirements are understood and agreed upon. If they are free-form and ever-changing, and when are they not, who's to say when "good" is "good enough"?

    I get it: This saying fits perfectly into XP. It's one of the aspects of XP I detest.
  • 0
    @junon I agree. There is a difference between over optimization and making something of quality.

    I see optimization as:

    - Cleaner code
    - Faster code
    - DRYer code

    I don't consider optimization:

    - Adding user friendly interfaces and help
    - Catching predictable errors and faults
    - Logging
    - Security
Add Comment