How can a team of people, who’s only real tangible output is working software, create value for their customers?
Let’s start by giving our question some context. Our team of people, already have working software and customers. Within the team we have all the skills required to write, test and deploy code. The team handle the entire lifecycle of the working software, from birth to death. They talk directly to the customers. However for the sake of this post I’d like to treat the internal workings of the team as a black box. I’ll let your assumptions about what a software development team look likes fill that gap.
Our starting point is to consider seven basic types of customer value. The list is ordered in such a way that items on the right give you more leverage for value creation. However it is assumed a healthy team will balance delivery across all types, and know when to approach each type of work.
This work involves no coding activities; the team provides the customer with information about how the software works. This type of work is about increasing the value-in-use of the currently working software.
Very few examples of working software these days does not involve some connection to servers. When there is a problem with these servers then things need dealing with quickly. The value to the customer is measured in the speed of the response.
An increment to the working software, often called a new feature or function, creates value by allowing the customers to do new things with the existing software. Since this new feature is based on speculation about what will work, the value may not be delivered, it is therefore considered less valuable than improvement type work. Removal of functionality would also fit in this category.
Based on direct customer feedback, the team make small, evolutionary changes to the working software. Again this work increases the value-in-use of the current working software, but critically it is based on the experience of the customer using the working software.
This experimental work requires a scientific approach and an appetite for failure. The value for the customer is the knowledge gained.
Rather than focus on the software, this type of work is based around a customer goal. It will often be related to a business deadline. A Minimum Viable Product would fit neatly in this category. Any measures of success would be based on business metrics.
The team is able to take an idea related to the customers’ business and create new needs and wants. This is similar type of activity to a Lean Start-up Pivot. This is about doing something different rather than better.
There are two ways of super charging the customer value you create with each type of work. The first is for the team to stop order taking, and go find the problems for the customer. This pro-active approach works with all types listed above, a team that goes and hunts out these value creating opportunities will always beat a team who waits for the orders to roll in. The second way of increasing the value creating potential of the work is for the team to shift its focus away from software only, and move into working with the entire business system. This approach calls for the team to embrace the customer as a member of the team, so they can work together on making changes to the wider organisation or system in which the customer operates.