This article originated from numerous discussions on when to use a Value-Driven approach, Plan-Driven approach or both. The practices in both approaches are not totally mutually exclusive, particularly in complex projects: there will always be a need for an appropriate level of governance, a plan and some things will need to happen in order. Each delivery approach has its place, especially if business value cannot be delivered early or frequently (in slices) and value must wait until the very end of the project. As mentioned throughout, these approaches are outlined in the context of software development.
Whats is Value-Driven?
Value-Driven approaches encompass all delivery methods, including Agile and Lean, that focus on delivering customer or business value as early as possible through frequent collaboration and feedback, as opposed to Plan-Driven methods that focus on adhering to an end-to-end plan created through upfront analysis.
How does Agile differ from Lean?
Agile and Lean are both lightweight, value-driven software development methods focusing on regular collaboration with customers to deliver high business value as early as possible. Broadly speaking, software development methods that align with the values and principles outlined in the Agile Manifesto are collectively called ‘Agile’, e.g. Scrum and Extreme Programming (XP). Systematic methods for eliminating waste in a production system, which originated from the manufacturing industry, are collectively called ‘Lean’, with Kanban being the most popular.
When is it ‘wrong’ to use a Value-Driven approach?
In other words, when is it actually perceived a bad idea to embed short feedback loops that enable close collaboration with team members, customers and stakeholders to regularly prioritise, refine, plan, execute, inspect and adapt the product and team practices? Two circumstances I can think of are:
1. When the inputs and controls are well known, understood and proven – e.g. the same team delivering the same requirements with the same tools under the same conditions. A plan-driven approach can be applied with some confidence when requirements are clear, do not change significantly and there are few unknowns;
2. When the organisation is not ready for change – in my experience, new delivery values, principles and practices need to be socialised and introduced gradually over time, setting the ‘why?’ context for change. Major change feels like a threat and is often met with resistance, whereas small changes allow for learning and acceptance.
But surely regular collaboration to deliver business value earlier is always a good idea?
Yes, change management challenges to one side, regular collaboration to deliver business value as early as possible reduces business risk, so it will always be appropriate to regularly prioritise, refine, plan, execute, inspect, adapt, remove waste, etc., regardless of the umbrella name these practices sit under.
How does Plan-Driven differ from Value-Driven?
Looking at the comparison below, when a software project has many unknowns, the futility of and inherent risk in applying a plan-driven approach is very apparent when it is compared to value-driven. Value-driven approaches are by definition more flexible and readily applicable to the uncertainty of software development.
How do I choose Value-Driven practices for my team and organisation? There are so many methods out there, each with their own practices.
Teams should start with their own ‘Why?’, firstly by discussing what problems they are trying to solve, agreeing high-level principles and what related practices can actually be applied within their work environment to solve these problems.
This should be followed by a ways of working Team Agreement that allows the team to trial, inspect, adapt and ruthlessly abandon practices, as appropriate, and essentially tailor popular methods to their own needs.
The good news is teams do not need to create principles from scratch as the Agile founders captured perfectly good values and principles for developing software in the Agile Manifesto (agilemanifesto.org) to get us started. Lean Kanban also has defined principles (djaa.com/principles-general-practices-kanban-method).
What are your thoughts? How do you determine whether to use a Value-Driven or Plan-Driven approach to deliver your projects? When do you use both?