What is value?
We need to define what a value is before dwelling into how to go about value driven delivery in the agile software development. The value could be defined in terms of monetary benefit, compliance adherence, an answer to the competition in the market etc. The term value can differ for each client based on what the client is expecting the product/software to accomplish. The end product of a project is a value to the customer.
In the agile way of project management, always the requirements are prioritized based on what adds more value to customer delivery. For projects with monetary benefits, value is commonly calculated using methods such as return on investment (ROI), internal rate of return (IRR), and net present value (NPV).
How do you deliver value to the customer?
The value-driven delivery is a combination of value adding and risk reducing activities. The value-driven delivery can be achieved by following some best practices as below:
- Identity value, a monetary value, competitive value etc.
- Prioritize the requirements so that high value is delivered to the customer fast.
- Deliver the value to the customer iteratively so that the return on investment (ROI) is rapid.
- Receive the feedback and work on things which need improvement, which can provide more value to the customer
- Collaboration with all the stake holders is the key in identifying what adds more value to the overall project, to the client and to the whole process.
- Review of what is being delivered in each iteration. The project requirements, the environment around it keep changing. We need to have an eye on what is changing, re-look at priorities, and re-order them.
- Identify risks and have a plan to reduce them in the course of the development. Risks are anti-value and they have the potential to reduce the value delivered to the customer.
- Whenever there is a new requirement, it has to be compared with the whole priority list so that we don’t divert in our objective of providing highest value to the customer. If the new requirement adds more value to the deliverable then that should move to priority list.
- We need to see what are the Minimum Marketable Features (MMFs) that should be there in the early releases to potentially increase the value delivered to the customer.
- Experiment early so that we fail fast and rethink on our approach very early in the development stage.
- The feedback of each value prioritized can be tracked through prototyping, simulation, providing demonstration etc.
When not to have plan driven delivery?
The value-driven delivery beats the plan drive delivery in many ways:
- Plan driven delivery thrives on planning and estimation which cannot be done early when the nature of the project is complex. In agile world, as the releases are in iterations, elaborate planning is not required.
- Requirements keep changing and planning early would lead to lot of re-work. Value driven delivery decides what adds more value to customer with a given set of requirements and implements the same. If there is a change request that adds more value to client, then the change request can be easily accommodated in this agile way.