I've recently posited that we shouldn't even think of doing agile projects without capturing and recording story value points during iterations. But this is only one piece of a larger puzzle. From a business value point of view, we have five main opportunities to identify business value and tune projects to deliver on it faster, better, and cheaper.
- At investment time: "Someone from the business" (let's call her the "product owner") makes the business decision to start the project and ponies up money for it. <== We can optimize project value here by ensuring the project is based on some actual business case whose predictions are quantifiable in some way, and can be measured during and beyond project delivery.
- During story creation: At a project's inception, a product backlog or master story list is built, outlining the pieces of business functionality to be written in sentences in the format "as a <>, I need <>, so that <>" <== We can maximize value here by ensuring stories are indeed designed to capture individual pieces of valuable functionality, and that value is captured at analysis time. I'm frightened to report that I've had the business owner of a project create stories like: "as the system, I need a user interface layer, so that I can input and output values to the database." Creating stories which capture end-to-end business value in small pieces is very hard to do in practice.
- During story prioritization: The product owner prioritizes the stories (a process which can be repeated before each iteration, as the business climate changes) <== We can and should insist that we have a full product backlog which is being revisited by the business owners of the initiative before every iteration, and we should be keeping tabs on what has actually been delivered, as it is delivered.
- While we are delivering the software every two weeks (or continuously)! <== If we were using techniques such as a "value burn-up" as opposed to an "effort burn-up," we could actually see the value accruing over the course of the project. We should do this!
- As the business collects returns on the investment: the new software translates into some actual benefit for the business (the business sells the software, or the software improves the business's operation in some key way). <== If long-term statistics on ROI are collected, we could quantify actual delivered value over time.