This is something to which I have been a victim in the past (and, if I am honest, occasionally I still fall prey to now); analysis paralysis, the inability to do because we feel uncertain about which of several alternative courses of action to take.
How does one overcome analysis paralysis? One technique I have found useful is to simply do something. Often the process of starting down one of the available options is more revealing than continuing to analyse a situation in the abstract.
For example, suppose I have to select a new version control tool. I begin by clearly specifying my requirements for the tool. It is impossible to specify every requirement we have for tools like this, but a good start can be made in identifying the key features it must possess.
Having established the essential requirements for the tool I do a survey of the available tools and create a list of six tools. It is at this point I get analysis paralysis; there are six tools, each of them meet my basic requirements but each offers its own unique capabilities. Which should I choose? Should I look for more requirements to narrow the search? If so, where do I look for these new requirements? Which aspects of the tools are the most important to refine?
So, how do you break the analysis paralysis?
Get the tools installed on a test rig. Hook them into your normal development and test environments and try them. It really does not matter how quick and dirty these installations are at this point, you are interested only in doing something. As soon as you start this process you will begin to identify problems and benefits for each tool. You will begin to uncover subtle requirements that you missed in your main requirements gathering. And you will break the analysis paralysis cycle by doing.
Doesn’t this process waste a lot of time? Well, that depends how you look at it. When I have a clear view of what needs to be done then this process of do something is not necessary. I know precisely what to do, so randomly selecting one of a set of alternatives would be a waste of effort. If I am stuck in analysis paralysis then staring at the alternative, or wasting time digging into unknowns, really is a waste of time. Better surely to select one alternative and see where it leads, learning as I go what helps and what hinders my efforts.
This technique works whenever I get analysis paralysis. If I am writing, for example, I begin with a blank page and many ideas swirling around in my head. It can be difficult to start writing. The fear of wasting my time writing the wrong thing down used to cause me to write nothing at all. Then I realised that this was a stupid approach.
I find it is better to write something, anything, rather than to sit staring at a page trying to figure out what to write. Just dumping my thoughts onto the page helps me to recognise what is rubbish and what is useful. Yes, I spend time writing a lot that I eventually edit out of the final product (often I edit out more than half of what I write), but I still find this approach more productive than staring at a blank page for hours, then writing something that I still have to edit several times before I am content that it meets my requirements.
Don’t get me wrong. I am not encouraging rash action. Forethought and careful analysis is essential to being productive. I am simply offering a method I find useful to break out of the unproductive analysis paralysis loop.