Anti-Patterns : Analysis Paralysis
By: Bhushit Anjaria
Tags: Technical Analysis, Antipattern, Analysis Paralysis, Design Patterns, Enterprise Architecture

Analysis Paralysis anti-pattern means Over analyzing your work which can make your work either redundant or it slow down the progress.

Example 1:

How as a Bowler I did over analysis?

When I was a child, we were playing a cricket match and I was bowling to the opponent teams star batsman. I decided to bowl a good length bowl to the batsman. But when I started a runup, I thought instead of good length I should bowl a Yorker. Then I change my mind to bowl a bouncer. Ultimately due to over analyzing and out of confusion I end up bowling a wide ball. The next ball I end up bowling a no ball on which batsman hit six.

How I overcome this problem?

I discussed this problem with my captain, who is a good friend of mine. He recommended me not to change my decision after I start the bowling, stick to the first decision. Whatever you thought in between should be iteratively implemented while bowling a next ball.

Answer to my problem:

Expert’s advice and adopt iterative (agile) methodology.

Example 2:

How over analysis trap the fox?

Whenever you are not able to take any decision just remember the story of the cat and the fox.

On a one fine day the Fox and the Cat were discussing about the ways to escape from a hunter. Fox claim to have too many ways of escaping from a hunter. Cat confesses to have only one way to escape. Fox laugh at the Cat. Now on another fine day the hunter actually arrived. The Cat swiftly climbs the tree. On the other hand, the Fox started analyzing what would be the best way to escape from the hunter. The Fox unable to take quick decision and over analyzing the ways he knows. He failed to decide and get trapped by the hunter.

Example 3:

What happened at cake shop?

On occasion of Christmas my father took me to the cake shop when I was a child. He asked me which cake I want. I got confused with so many options of cakes besides me. I first thought I should select Vanilla cake. Then I thought I should go with Butterscotch cake. Finally, I had chosen Strawberry cake. By the time I have decided the cake it get sold as there was a rush for cakes on Christmas.

Some symptoms of analysis paralysis:

Redo analysis in order to make design more object oriented.

We need to complete whole analysis and low-level design before the coding is started.

Overthinking for the complex scenarios which are not going to occur frequently or not used by majority of clients.

Researching again on what you had already researched.

Impact of the New person added in the middle of project designing phase or a meeting can also increase design/meeting time as she/he could have entirely new viewpoint.

By the time you had through or even in middle of the analysis & design stage, some of your competitor introduced same feature and it sold the same feature to the client you had targeted.

How to prevent analysis paralysis?

Align every phase with a predefined time boxed. If phase 1 is timeboxed to say 15 days and if it took 30 days then you have 15 day lesser for other phases. Stick to the timeline decided for phase 1.

If you have many solutions, do not get confused, take an advice of the expert.

In some cases, choose simplicity over complexity depending on the situation.

Adopt agile methodology to implement the changing scope and ideas. It will definitely help to reduce the stress as potentially shippable product increment is available after every sprint.

Once the design is approved and the product is already in a development stage do not start design review / redesign again stick to and respect the design decision made initially. Instead release the product first that will reduce the stress and then enhance the design of the product in phased i.e. iterative manner.

tl;dr:

We can avoid analysis paralysis by iteration and/or drawing the line whenever required.

Do not hesitate to take an advice from the expert.