Today software is either a part or is completely involved in all things around us, be it dental implants or television remotes. Building and deploying these software solutions are moving from intense programming to clever assembling of application logic. Established frameworks and ready to use products are gradually replacing the need to reinvent the basic programming constructs. While this change seems to be for good, the challenge is shifting to managing the life cycle of “new” projects.
While developing applications with general purpose programming languages(GPL), we follow the well established Requirements to User acceptance steps(see the graphics below); but these steps and sequence of activities may not be valid while dealing with projects based on standard frameworks, software as a service, off-the-shelf solutions or possibly any project that does not use GPL for ground up development.
To make my point let me apply the above activities to an Off-The-Shelf (OTS) Web Content Management implementation where customers are being introduced to the Web Content Management for the first time. Chances are that the requirements workshop will not yield fruitful results because customers don’t know what they don’t know. In such situations, the first step in the Project Life Cycle is not Requirements but Deployment (of the Off-The-Shelfproduct). Just the Deployment is usually not sufficient because Off-The-Shelf products are built generic, some amount of configuration is required to bring the application closer to customer needs, therefore we now have to do follow Design and Implementation based on what we call “implicit needs”. Once all of this is done we will be ready to show the customer what Web Content Management can do for them, then from that understand the specific changes that they would need – Requirements. So the project life cycle for Off-The-Shelf Web Content Management implementation will be as below.
Below is another example, for a hosted solution where the notably missing step is Deployment.
Why is it important for us to know the Project Life Cycle at such a high level? Experiential patterns coming from repeated implementation of certain type of projects have taught us meaningful sequencing, planning and staffing projects based on the technologies involved. Wrong choice of Life Cycle will lead to unproductive steps that will affect downstream activities.