Favour a product approach over a project approach
Software development has traditionally been done in projects.
Wikipedia describes a project as:
In contemporary business and science, a project is an individual or collaborative enterprise, possibly involving research or design, that is carefully planned, usually by a project team, to achieve a particular aim.
Typical characteristics of projects include:
- Planned in advance
- A discrete beginning and ending
So what is wrong with this approach?
Projects encourage non-Agile behaviour
Projects typically favour up-front planning which may discourages change. This is in conflict with the agile value of responding to change over following a plan.
The project approach also tends to favour delivery of the completed work as a whole. This means that value is only realised at the end of the project, whereas in agile we talk about early and continuous delivery of valuable software.
A product focused approach
If we focus on products rather than projects then we can think of development work as the delivery of a continuous stream of valuable features. This allows us to respond to change and to focus on delivering the maximum value items first.
Using a product approach changes a lot of the traditional ways organisations work. This includes:
- Bug fixes and busines as usual (BAU) work may be mixed in with new development work
- There is less up-front planning and hence no concrete plan
- Value is assessed at the feature level rather than at the project level
Adapting to the product approach is often one of the greatest challenges for organisations that are adopting agile.