All the years that I’ve spent analyzing and building IT systems have taught me that you just can’t “Leave it for later” without consequences. The “leave for later” happens throughout the project life cycle, a manager can choose to leave an important but hard to get stakeholder or an analyst can leave feasibility analysis of a requirement for later, a developer may choose code a vague requirement with assumption leaving clarification for later. The success probability of project, the amount of slogging required, client satisfaction and number of code bugs are all very closely related to the collective “Leave it for later” attitude of the team.
Anything left at any phase of project may go away for a while but eventually it’s going to come back with vengeance to bite at a time when its least expected. Mostly all of the ‘left stuff’ accumulates during project cycle and strikes near project delivery date because there is no date later than project delivery date! Generally impact of “Leave for later” is directly proportional to the stage it was left for later. Anything left at the time of requirement has a potential of delaying or failing the project. Anything left at the time of design also has a potential of failing the project and delay but usually team avoids the failure by making last minute design patches, introducing design bugs, slogging or compromising the overall design of the system. Any “leave it for later” done by developers usually does not have potential to fail a project and is resolved by slogging and introducing bugs.
Lot of project management manuals inculcate that anything should be left for later only if there is a proper justification for it and if done, should be tracked as project risk. My annoyance is specifically focused at “leave for later” at time of requirement and design by some analysts. Most of these are not raised to manager they are either ignored or swept under rug by making unfounded assumptions. Understandably its difficult, time consuming and somewhat cumbersome process to find all the dots and then joining them together. It’s not always easy or possible to think to the lowest level of detail but it is something very important and best efforts should be applied to get it to a reasonable level.
Believe me even after giving it ones best effort and dealing with all the known issues some will still remain. One just need to be certain that at least all known issues have been taken care of.