Search code examples
language-agnosticproject-planning

Where is the dividing line between complete lack of planning and analysis paralysis?


In my very short time working in the programming field, I've seen two extremes:

  • Projects where little to no planning was done and thus become maintenence nightmares.
  • Projects that are perpetually in the planning stages and don't move from there.

It seems like the latter oftentimes happen as a reaction to the former. Where is the happy medium? And more importantly, if a project is moving in one of these directions, what is the best way to move it towards said happy medium?


Solution

  • In my own personal experience, I have found that 'decisions' are my bottle neck.

    If this is the case, then :

    1. List all your design options
    2. Pick an option(s) (pick a few if you can't decide on one)
    3. List the risks of the best option(s)
    4. For each risk, brainstorm a solution, then design a conclusive proof of concept and write it.
    5. If your proof of concepts proves it will NOT work, then toss that option, and pick another one.

    A 'Proof Of Concept' is a minimal app to prove something. (mine are usually 1-6hrs)

    If you have a situation where 2 or more options are equal, give yourself a time limit (like 5 minutes, not 2 months) and make a decision ... any decision, and don't look back.

    And trust yourself to be able to deal with any problems you will hit which you did not take into account at design time.