Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
There is much talk of value in modern software development. Lean and Agile methods require the whole team understand the value they are delivering. However in order to deliver value we must first understand what is meant by value.
This post will take a quick trip through the history of the theory of value and attempt to demonstrate the ideas from a software development perspective.
Value in Exchange and Value in Use
Aristotle the Greek philosopher began by distinguishing between two types of value.
- “value in exchange” which is the market rate for the item at a point in time.
- “value in use” is the worth of the item while it is being used.
Let us apply this to software. Consider an simple ecommerce website. The “value in exchange” is the current market rate for delivering such a website based on a certain set of features and level of quality desired by the customer. The customer will generally discover this “value in exchange” by going through a tender process. The “value in use” in this case will be based on the profit generated by the ecommerce website.
Labour Theory of Value
It was Karl Marx building on the work of Adam Smith and David Ricardo who postulated that ultimately value is based on the amount of labour required to generate the item. This is essentially a cost based approach to value.
For software this is a classic time and materials basis for providing value to a customer.
Marginal Theory of Value
This theory came about in the mid-to-late nineteenth century. The central idea is that of marginal utility. This idea is best explained with an example. Consider a newspaper. You purchase today’s Times. You purchase a second copy of the Times it will have zero marginal value for you. You now buy the Guardian. Reading the Guardian is not as useful as when you read the Times. Many of the stories are repeated. However it has some marginal value with a handful of exclusive stories and a different perspective on the rest of the news. Each successive newspaper you buy on the same day, delivers diminishing marginal utility.
This concept is critical in development teams delivering value in the long-term. It explains why you should concentrate on a “minimum viable product” which will release the most marginal utility for the least amount of work.
It also explains why it is hard to maintain pace in a team. Even if the team keeps technical debt low. Over time the marginal value of each new feature diminishes. Innovation helps solve this problem but is out of scope of this post.
So in summary looking back at the history at economic theories of value there are three ways of looking at value:
- Market Rate – The value in exchange based on what other people are charging for the work you do.
- Time and Materials – The cost based approach which focuses on the labour and other incidentals.
- Utility – The marginal utility of the work being done.
Clearly all these perspectives are interlinked, for example a market rate can be driven down by cheap offshore labour costs. So use all three approaches when considering the value your team delivers to your customers.