We have talked a lot about that our software should add value to the business, actually is one of the principles in agile methodologies, and I think is a good principle because our software should be part of the effort to achieve something bigger.
But What does business value mean? Is it possible to measure it? if so, What is the importance of this?
What is it?
We can say business value is a covered need or satisfied expectation of the business, when I say business, I mean stakeholders.
So this concept will depend of the stakeholders, and their needs, the more stakeholders, the more the perspectives of what the business value is.
It will depend on the the business area you are working on: for instance, if your goal is replacing a legacy licensed system maybe the business value will be determined in terms of the money invested vs the money you used to pay for the licenses; if you are talking about a business area that prevents doing illegal things, the business value could be accomplishment of regulations; if you are involved in automating processes in government institutions the business value could be satisfaction of the citizens when they use the systems or accomplishing the policies or regulations; even in the same business area, people could have more than one perspective of what the business value means.
Is it possible to measure it?
Yes it is, however is either complex or subjective, and here is the challenge, make the subjective points of view into tangible explicit concepts and deal with complexity to make it visible and understandable.
Before to start measuring something or at least trying to measure, we need to define it, since this definition is complex. We can not create a single concept, we need to define a model of the business value.
Defining the business value model.
A model is an abstraction that lets us represent something in an understandable way.
In order to simplify the reality, we make models to convey our understanding of things, but not only to understand, models always have a purpose and in most cases this purpose is to make decisions.
Identify the relevant stakeholders (decision makers):
In order to know what a covered need or a satisfied expectation is, we need to identify first who are the people who can define this.
There are a lot of interested people involved in an application construction, however it doesn’t mean that all of them are relevant for the project, it will depend on the project we are working on, not because someone uses the system it means that is our relevant stakeholder, we should clarify who are them, because only they can certainly know what are the goals that are required to achieve.
Identify goals:
Once we have identified the relevant stakeholders we can know which are the goals of the project, these goals can’t be subjective, should be described without ambiguities, and should be defined in a way that we can measure them.
Define the values:
It is important to know what are the values which will drive the project if it is the profit, policy or regulation accomplishments, the internal/external user satisfaction, the customer satisfaction, etc. we will need this in order to know if the work we are doing will deliver value or not.
Prioritize the values:
Defining which value is more important than other would let us decide the work we should start in case we have more than one important thing to solve at the “same time”
Identify metrics:
We need to agree on a way to measure the achievement of the goals through the values, choosing tangible metrics, and defining a way to collect those metrics; this way we will know how much value we are adding to the business and if the effort done is enough, if it is effective, this will let us change directions and make decisions..
For example the goal is pay less for the functionalities that a licensed application has, so we can identify the profit as the value and the metric is the money we are going to spend building a new system vs the money we used to paid for licenses.
Business value is not just a metric, is a model that will let us to identify what are our priorities, taking decisions based on the information, knowing what are the goals and the drivers.
Is it important to know what is our business value model?
Once the business value model is defined we have a way a to prioritize the requirements, we can know which should be the first system or functionality we should start on.
Otherwise, how do we certainly know if the effort we are doing is adding any value to the business? How the business could make decisions to continue or stop the project, or adding/reducing resources or members in the team, etc.?
When do we need to define the business value model?
When the project starts, to not work in the air without a north, to avoid doing effort that the company doesn’t need, making of our work a meaningless thing, to know what are our priorities and with which requirements we need to start.
Why is it important to measure the business value?
We need to know the business value we are adding and compare with the effort that it costs to produce it, with this relationship we could now if our work is efficient, if you should keep doing effort in certain aspects.
Look up the trends
It is important have metrics in regular bases, as in software we should study the story of numbers rather than the number itself (at least when the value is not determined in terms of money), if we look the trends we can certainly know when the relationship value/cost is decreasing. E.g. The business value is in terms of customer satisfaction (we are assuming that we have a way to measure it) we can have metrics about the relationship business value/cost every iteration, and lets say that in 10 iterations the value of the relationship oscillates between 35-40, suddenly in iterations 11, 12, and 13 the value begun to decrease to 25, 20, 15, so we can say that our effort is inefficient and we have to make some decisions.
Do we need to estimate the business value in our story cards?
I think is better ask ourselves how to identify stories that deliver business values, since we have a model with prioritized values the stories we create should be aligned with that model.