We implement feature by feature, seeking value; adding up the value forms an S curve with characteristic regions. Can we overcome the tendency of products to fade away?
Feature by Feature
Let’s look at the life of a product from start to finish.
First, make a list of your feature ideas and how valuable they are.
(You don’t need a complete list – it’s ok to add ideas as you go – as many projects benefit from early interaction with customers that makes them even more valuable.)
Sort them biggest to smallest:
Now, start implementing them.
Try to work from the most valuable idea to the least. There are a few reasons you may not be able to do that:
- You don’t yet have the most valuable ideas – they may come after you’ve started.
- Some valuable features have less valuable features as prerequisites – it’d be hard to have an email system with fancy prioritization if you don’t yet have an email system that can receive email.
- In earlier stories, you’re building a higher proportion of infrastructure (even with an evolutionary “pay as you go” approach).
- You’re still learning [Disciplined Learning (Cockburn)]: your technologies, your customers, your markets, your team, your solution.
- Some features get more valuable in combination with other features; this kicks in later as you have more features.
The end result is that your stories tend to be implemented like this:
(Resembling a normal curve.)
As an example, suppose you’re creating a special word processor for fiction authors. Your early features are about as special as Notepad – minimal editing capabilities you can get anywhere. (Yet it takes a fair bit of work to get these done.)
After a while, you move to more and more valuable ideas: character tracking, timelines, plot analysis.
Eventually, either through running out of ideas, or the resistance of your code, you start adding less valuable features: fog index, triple underlines, mark as final.
The S Curve
We can transform our picture: instead of looking at “value by value”, add up the values to make a graph of “cumulative value”. That is, rather than points representing the value per story, we “integrate” to get the total value from the first through the nth story.
We can look at this curve as having 4 zones:
- Early days
- Rapid growth
- Slowing growth
- Out of gas
In early days, you’re just getting started. Things are a little slow, but you’re learning every day, and you can see major areas start to come together.
In rapid growth, you’re getting big things done – things are getting easier and you’re having valuable new insights. It’s exciting and life is good.
But at some point, growth slows. You’re still adding valuable things, but your best ideas seem to be behind you. Perhaps your design has degraded in the earlier rush, and it’s getting hard to add things. Certainly there are more moving parts that you have to be aware of.
Later, you start to run out of gas: never quite stopping, but not changing dramatically either. Investment becomes minimal – do enough maintenance to keep the lights on and slow down the departure of customers. This is when your company considers selling the project to a conglomerate to “extract value”.
Must the Lights Go Out?
Are we condemned to go down this path, slow to exponential to slow, with a tearful goodbye?
Even if you’ve found all the value in your current set of features, you may still be able to find other value.
- One possibility is the market you’re targeting. Are there any adjacent markets that you are close to but haven’t really entered? Perhaps adding a few minor features would let you play there.In Test-Driven Development: By Example, Kent Beck describes the experience of Wycash. They had a system to manage financial portfolios. They realized that they could (quickly) shift the code to handle multiple currencies, which put the product in a whole new arena – and multiplied the value of remaining features (and the company as a whole).
In our fiction word processor, perhaps we realize that we can target schools or parents as buyers. Features to support them might open up a whole new market.
- Another possibility is that you develop a transforming idea, that lets you conceive a far more valuable future path.In our fiction word processor, a transforming idea might be that we could go beyond plot analysis to doing plot generation. That might be a new idea that opens another S-curve and even more sales.
- Yet another possibility is that you can shift to a platform that is emerging and growing. (For example, think of when tablets emerged – Apple sold >3M iPads in the first three months.)
Your innovation can shift you to another S curve, stacked on top, and if you’re persistent and lucky you may be able to keep stacking them.
Shifting from one curve to the next is not easy: this challenge is known as the Innovator’s Dilemma. Three things are true:
- The old curve is comfortable.
- The new curve is scary and risky.
- If we stay on the old curve, our product will die sooner.
Between these, it’s clear that the psychologically easy way is to wait too long, and that you’ll have to work hard to overcome that impulse.
- Understanding the value of features is difficult. Accept that you’ll never know the true value. But consider things like the feature’s impact on user effectiveness, the impact on marketing, the value created by the interplay between features.
- Recognize that in early days you are mostly learning, and that you need to be open to unexpected but valuable ideas. (Early shipping helps immensely.) Don’t lock in to a full-blown plan early on; be open to changes that dramatically improve your potential value (whether features, markets, technology, whatever).
- Don’t wait till you’re out of gas before trying to move to the next S curve – explore it while you’re still growing. It takes real effort to do this – an incremental feature always appears to be easier than an innovative one, but has much less chance of shifting the game.