Many of you are probably familiar with the concept of done as it relates to iterative software development.

It comes in many flavors, from working lines of code to acceptance criteria, and can change from tasks to features to releases. While I agree as a community we should continually grow the definition of done, only recently have I heard others, (Eric Ries & Dave McClure) speak to evolving done in a significant manner.
Instead of tread milling on the technical aspects of code coverage, let us challenge ourselves to close the learning loop and measure the customer impact of our code.
Please do not take the previous sentence as a slight against the proponents of clean code. I’m actually commending you, as without your efforts we’d not be in a situation where we could leap forward in this manner.
Let’s face it, the underlying issue here isn’t that our code is buggy, but instead that we have no empirical data to measure our progress.
I am a Developer, it is the Product Owner’s job to prioritize the backlog in terms of customer value. Let him deal with this, I just want to code!
As a community we are quick to blame the Product Owners as the reason no one uses our code, yet we are doing very little to enable their success. Product Owners are typically not a technical bunch, and they may not be aware of the available solutions to gather customer metrics. We all should feel personally responsible for knowing the impact of what we create.
How do I measure the impact of my code on the customer?
It is a great question, and not one I can answer for you. I can, however, provide you with a bit of guidance on how to answer it for yourself.
I recommend having a discussion with the Product Owner on a metric of progress for your work. Do they have even have one? Please do not respond with velocity.
Velocity is to Value as a Speedometer is to Temperature.
You’d be surprised how many highly functioning teams efficiently crank out iteration after iteration with zero bugs, only to have no one use their product. Work with your Product Owner and find a metric that makes sense for your product that can be measured in an empirical manner. It could be click through rates, page views, unique visitors, SEO or a plethora of other values that relate to your product.
Next, be certain to include the metric into your definition of done. Ask the hard questions early on when you are defining the stories. Having these metrics incorporated into your software development process will help close the value gap between your team and the end product.
Finally, once you have a solution in place, do everything in your power to shorten the time it takes to measure the customer impact. If you released code and it took 3 months to learn of about its value, take steps to shorten it 2 months. If it was 2 weeks, find ways to make it 1 week. Ideally you want to cycle through the learning loop quickly and close out your work in progress.
Even if your initial assumptions are wrong, evolving the definition of done to measure customer impact is crucial to your success. Stop blaming the Product Owner, and start learning!

