The traditional approach to project management starts by a definition of what exactly the project is required to achieve. This usually means an agreement between all parties concerned, including the project manager, of when and what the end result should be. This method of project management is largely based on a sequential design process referred to as the ‘waterfall’ model. It is termed this as progress is seen as flowing steadily downwards (like a waterfall) through each stage of the project. This model is inherited from the construction industry, where the prohibitive cost of making late changes means requirements are frozen as early as possible in the project.
However, this method does not suit software development process, where requirements could and often change during the course of a project. A more adaptive alternative was needed and through the 1990s methods such as Scrum, DSDM (Dynamic Systems Development Method), Extreme Programming, and Lean Development evolved to meet these needs. Following these methods, collectively referred to as ‘agile’, requirements are developed through the life of the project and delivered through a series of releases, each of which delivers more of the required functionality.
The traditional waterfall approach to project management does not fit comfortably with these agile methods, so a new form of Agile Project Management is now used for software development. The key aspects of Agile Project Management are:
- Requirements: are expected to develop and change during the project
- Planning: is carried out as late as responsible by the development team
- Project Phases: contain several iterations, leading to a number of product releases
- Change Control: is replaced by the features backlog, which is controlled by the business
- Risk Management: is shared by the developers and the business through the product owner
- Organization: the way of working is managed by the development team