Agile Project planning
Agile project planning in the development of complex software solutions.
Agile project management methods also require agile project planning. In contrast to traditional software development using a waterfall model, solutions developed using an agile approach are not completely elaborated in every detail – rather, at first the goal of the solution is described in a product vision, which is then progressively elaborated during the project. This is achieved using a backlog, in which all tasks are recorded, prioritized and the necessary effort estimated. Some of them are still rather rough, others extremely detailed. Developers and customers also receive a good overview of the entire project scope.
Every project comprises a number of uncertainties, because – as a rule – the complete project scope is still unclear at the beginning of the project. At the project’s start a product vision is formulated; gradually, detailed planning follows. However, this uncertainty gradually declines as the project progresses and as knowledge (domain knowledge) continuously grows. This is also known as the “cone of uncertainty”. Deviations may occur in both directions, it is important though that the project volume, or rather its estimation, becomes more and more precise as the project progresses. The result is that the customer only pays for effort actually expended rather than, as is the case in traditional projects, for a degree of calculated uncertainty (buffer for change requests), which exists at the beginning of every IT project.
For project elements with a large degree of uncertainty, AOE takes a different approach: At first, the elements are analyzed (e.g. time boxed for one day) and a timeframe is determined according to the requirements; afterwards, the customer prioritizes the individual elements. In doing so, the customer decides whether the costs are justified by the expected benefit. If necessary, alternative solutions can also be sought after, without having already incurred higher costs.
Since backlog size and the current productivity of the team (team velocity) are known, a transparent release planning can be created at the outset of the project. This planning is regularly reviewed and updated in close coordination with the customer. The release planning includes all planned releases, which in turn consist of several iterations. This allows the project progression to always be followed by means of the release planning and represented with the current status quo.
In addition to other factors, team velocity is also dependent on the size of the team. These factors also include experience and maturity of the team as well as team development. A team can delivery maximum performance when it is in the so called performing phase. However, reaching this phase requires a certain amount of time. For this reason, AOE relies on teams that collaborate long-term and are dedicated to one client or project.
In contrast to traditional methods, budget and completion date are already established at the start of the project when using an agile project management approach. At the same time, an estimate is made, which project scope can be implemented with the given resources in the given time period. Since each estimate also contains an uncertainty factor, it has proven useful to divide the backlog into the following three areas:
- The guaranteed delivery scope (must-have)
- A variable area (nice-to-have)
- Those tasks that are to be implemented in a later phase (not-for-now)
The so called waterline is now drawn within the variable area. All tasks above the waterline are “in scope” according to the current assessment. Should changes arise in the project scope or team velocity, this would also affect the waterline.
Should changes be made in the project scope after the project begins, such as, for example, change requests, the contractor can decide if these new tasks are to be included above the waterline – which would cause other tasks to slip beneath the waterline. Alternatively, the project scope can be changed by adding one or more iterations.
As an agile organization AOE has implemented 1,500 projects for global companies using agile methods. Agility is not only an essential element in our development and project management but also of our corporate culture.