‘99022, 610 0M {9 Ant-Pattmns Every Programmer Should Be Aware Of
Bikeshedding is easier to notice and prevent in my opinion than premature optimization, Just
try to be aware of the amount of time spent on making a decision and contrast that with how
trivial the issue is, and intervene if necessary.
thdr
Avoid spending too much time on trivial decisions.
3 Analysis Paralysis
“Want of foresight, unwillingness to act when action would be
simple and effective, lack of clear thinking, confusion of counsel
[...] these are the features which constitute the endless repetition
of history.”
— Winston Churchill, Parliamentary Debates
“Now is better than never.”
— Tim Peters, The Zen of Python
What is it?
Over-analyzing to the point that it prevents action and progress.
Why it's bad
Over-analyzing can slow down or stop progress entirely. In the extreme cases, the results of
the analysis can become obsolete by the time they are done, or worse, the project might
never leave the analysis phase, It is also easy to assume that more information will help
decisions when the decision is a difficult one to make — see information bias and validity bias.
How to avoid it
Again, awareness helps. Emphasize iterations and improvements. Each iteration will provide
more feedback with more data points that can be used for more meaningful analysis. Without
the new data points, more analysis will become more and more speculative.
Examples and signs
Spending months or even years deciding on a project's requirements, a new UI, or a database
design
The tricky part
It can be tricky to know when to move from planning, requirement gathering and design, to
implementation and testing.
thdr
Prefer iterating to over-analyzing and speculation.
hitpsisahandsaba comvnine-ant-patems-every-programmer-should-be-aware-of-with-examples hil 4128