Whenever you read about Project Management (PM) or Software Engineering (SE) as isolated fields of study, the world seems to be perfect and everything seems to workout in theory. However, thinking about IT Project Management always directed me straight into a blind alley.
We all know some typical Project Management Phases like:
These few phases are easy to understand, many sub-steps exist and methods within these sub-steps are well described in literature and PM frameworks.
The same goes for so-called Engineering Phase Models for specific type of projects. These Phase Models are typically used as templates for planning the implementation phase of a project. Depending on the type of project different Engineering Phase Models exist, well-known examples are:
- Software Engineering
- Waterfall Model
- V-Model XT
- Agile Mthods
- Software Rollout
Now each of these models has different phases just like the Project Management Phases shown above. Below i listed the phases of a kind of Waterfall Model:
- Requirement Specification
- Testing and Integration
- Operation & Maintenance
Okay. You might think at this stage, “where is the problem ? Everything seems to be straight-forward and clear.”
But, i ask myself, how do i cope with these two methodologies that obviously share some common tasks but are both needed in order to do a good job. While Engineering Phase Models are necessary to solve the complex problem addressed in the Project, costs need to be calculated, time schedules have to be adhered and quality criteria need to be met. Where do i need to integrate the Software Engineering Model into the phases of my Project Management? These questions bothered me for a long time. Actually just until today, three days before an Information Management exam.
I thought about something i read in the Project Management Novel “Deadline” from DeMarco and finally came up with a solution to my little problem. After discussing the idea with an engineer in my family, it seems just logic. DeMarco always stressed out, that most of the work of a project manager is already done before operative work actually starts.
Hence, the planning of the project is done before we actually start with our Engineering Methods. But to understand what this implies, you can’t just think about it as a sequential process. You have to think in different abstraction layers. The Project Management is seen from a developer persepective actually as something i call “Meta-Planning”, because the Engeineering Phase Models to be used are determined in the PM Planning Phase. They basically provide a template to detail the complex project into smaller subparts.
Having defined these subparts, their sequence actually adheres to a chosen Engineering Phase Model. The important “AHA!” is the fact, that you actually just plan the process of implementation of the IT Project. This has to be clearly distinguished from the problem that is addressed in the project. Hence, creating “Requirements Analyses”, “Design Studies” or “GUI Designs” are obviously not subject of Project Management. These steps are all to be done by the Project Team in the “Execution Phase” of the Project.
I hope, i could help to unravel this IT Project Management knot in your brains, in case this problem bothered you like me 🙂