Software project management skills
Project management skills and competencies needed to be possessed by software project managers is an interesting topic. The project management skills can be divided into two categories – core project management skills and interpersonal skills (or soft skills). The Project Management Body of Knowledge (PMBoK) published by PMI (Project Management Institute) details out the subject areas of core project management skills needed for project managers. When this is so, why this article? Well, the PMBoK does not go into the specifics of software project management and software project managers need skills beyond what is detailed out in PMBoK and this article is about this set of additional skills needed for software project managers.
Why PMBoK is inadequate for software project management?
PMBoK is a very good generalisation of core project management knowledge needed to be possessed by project managers. However, it falls short in the following situations:
- Effort estimation: Software project managers need to be aware of specific software estimation methodologies not covered by PMBoK to ensure accurate estimates
- Requirement modelling: Documenting requirements and scope properly is critical to project success. Even though a PM need not carry out the documentation by himself, he needs to ensure that the documentation is done to a required degree of clarity and completeness. This needs some working knowledge of requirements modelling techniques such as ER diagrams, object modelling, use cases and so on, though not an in-depth understanding.
- Project scheduling: Application of scheduling techniques to software projects using tools such as MS Project
- Software life cycles: A project manager needs to understand what tasks constitutes the complete project and the task breakdown would be based on the life cycle model being followed. PMBoK only touches the project life cycles and a software PM needs an in depth understanding of the ‘V’ process model, Rational Unified Process, Iterative and Incremental models, Scrum and XP models and so on.
- Software test management: A project manager should be able to make the right decisions such as whether to continue testing, or carry out a root cause analysis or carry out a partial re-design etc. depending on the intermediate test results. This requires knowledge of characteristics of software quality.
Thus, it is evident that a significant additional body of knowledge is required for a PMP certified person to become an effective software project manager.
The list of skills
Based on the above analysis, following is a list of core software project management skills that a software PM needs to possess in addition to PMBoK and interpersonal skills.
- Ability to organise requirements elicitation workshops resulting in clarity and completeness of requirements
- Ability to bring the 3 parties – stakeholders, analysts and developers on the same page about what constitutes requirements. The PM needs to ensure clear and adequate documentation of requirements with proper models and needs some working knowledge of requirement modelling and documentation techniques.
- Requirements management – Ability to anticipate changes, impose change management discipline, avoid scope creep and groom product backlog if using Agile methods.
- Estimation methodologies – Ability to ensure accurate estimates through use of an appropriate software effort estimation methodology
- Project planning and tracking – Integrated project planning and tracking with a clear understanding of project dimensions and execution methodology based on life cycle models.
- Software test management – Knowledge of software testing and decision making during testing phase
- Project scheduling – Ability to draw up usable schedules using tools such as MS Project and use the schedule to regularly drive the project and track it.