The Anatomy of a Software Project
Considering the software project as a living organism, with an inception to termination, we should be able to describe its anatomy. Anatomy is a subject that studies the structure of organisms and their parts. It literally means “cut open” in Greek. Let us try to cut open a software project.
The inception of the project, software or not, is the problem statement, which eventually manifests as the “requirements document”. The problem is the existential cause why the project exists. If the customer or the organization does not have an area of problem, the project is meaningless, and the effort is futile.
Now there could be multiple solutions to a problem. But the project aims to implement one of those solutions. May be the most optimal solution, or the most efficient solutions, or even the cheapest one. In any case, the project should address only one of the solutions. Some of the challenges in managing a project is addressing the constant struggle between different competing solutions at hand. The chose solutions becomes the objective of the project and the activities contained. In other terms, it is known as the scope of work.
Once the requirements and scope of work is defined, the rest of the matters fall into place. Projects can be described as a series of tasks that takes one from a problem to solutions, or chunks of modules that fit in together to become the final objective. It can be imagined as a growth of a living organism with progressive enhancement of its parts, or a assembly of well designed machinery.
Of late, especially in Agile philosophy, people like to think it as a progressive enhancement from a proof of concept to finished product. However, we cannot discount the assembly aspects, especially (in RAD thinking) when a vast amount of well-designed a finished components that are readily available in the market.
In either case once we nail down the problem and the solution aspects, the routine challenges in project management boils down to either nurturing the project through its growth phases, or ensuring the process that matches and fits it into the desired output.
In future, we will slice further into the routine challenges. In the meantime, imagine your project as a living organism. It helps to build a better sense of all the effort that are put in to execute a project.