The “Analysis Paralysis” anti-pattern may be the most well known. It has a few other names. However, a search on this one will return a broad range of results. The detrimental effects of thinking over action are not seen only in software development. They make an appearance universally.
Defining the Analysis Paralysis Anti-Pattern
This time our definition is more of a description. The linked article provides a lot of reasons to avoid this anti-pattern. [Click Here to See The Page]
“Delaying action while over-analyzing information clearly doesn’t help when it comes to getting things done. In fact, a 2010 LexisNexis survey showed that, on average, employees spend more than half their workdays receiving and managing information rather than using it to do their jobs!“
We have covered the value of analyzing, considering, and design throughout this season. Thus, the idea of analyzing alone is not an anti-pattern. There is nothing to be gained by charging into something without forethought. Therefore, we have an example of extremes being harmful and moderation the best approach. Too much or too little time spent analyzing your situation can be detrimental.
Finding a Proper Balance
I like to think of analyzing a problem as similar to a trip to a museum. The goal of the trip is to see all of the artwork. The best path through the museum is one that allows you to see each item once and only once. When we are analyzing a problem, there is a similar need. We want to address every point and facet of the problem (within reason, more on that later) without spending too much time on any given item. When we find ourselves re-analyzing an item, then we are likely going too far.
I mentioned the idea of considering every facet of a problem within reason. This is worth further discussion. Every problem includes knowns. There are facets we can accept related to a problem. These include environmental standards, foundational knowledge, constraints, and other attributes. There is no need to re-invent the wheel for these items. That is another anti-pattern. The key to determining what is reasonable brings us back to what is essential. When we know the “why” for solving a problem, then it will allow us to ignore some items. They are not pertinent to our “why” and not needed for a suitable solution. This ability to ignore attributes of a solution can be crucial. For example, speed may not be a factor or even quality. Sometimes an answer of any kind is better than the nothing that we have.