Influencing Business Value —
Disclaimer: This might be the most significant and most boring chapter of the book at the same time.
This can be the most significant chapter as we establish the fundamental connections between our work and specific business outcomes here. These are necessary for our system to deliver the insights we want.
This can also be the most boring chapter as it has nothing to do with development, code or software directly.
I tried my best to strike a good balance between explaining enough details to give you a solid understanding about the business world and simplifying the topic enough so it's useful and easy to understand even without much knowledge or interest in this area. In case you are skimming through the book or really want to keep this topic to a minimum I prepared a TL;DR for you. It's just down below. You can get along by reading only that. However I believe the full knowledge offers tremendously more help to better connect with business goals and business people. I will teach you about all kinds of things managers love to hear about. So I recommend to TL;DR only as a summary after finishing the chapter.
What will you learn here?
- How the 4 pillars of business value are related to the Financial API
- How our work ultimately delivers business value
- The basic terms and factors of the business world that determine the financial performance of any company
TL;DR
Read it
This is a short summary of the main mechanics how the elements of the Financial API drive business value.
The most important factor is making the customers happy and loyal. When they need and like both the product and the service that leads to financial success. CX directly influences it while Productivity, Utilization and Business Opportunities are indirectly supporting this goal. A prime example of that is when technology offers valuable insight for a company to better understand the needs of their users.
The second most crucial factor is improving employee engagement. Some business leaders would argue that it's even more fundamental than winning the heart of customers as this will directly affect the quality of the company's offers and the stability of its operation, establishing the basis of customer satisfaction.
Third is all the various optimizations we can make to improve developer productivity and utilization, creating more value for the same price or even less.
As a transitive benefit when a business grows thanks to a well made product and high quality service, that in itself will bring huge further benefits to solidify their success.
Finally, sometimes technology changes can enable a company to reach new market segments, to enter or even create whole new markets.
In the most compact form of the Financial API, all our responsibilities about influencing the business outcomes can be summed up in two high level tasks: Improving the products & services and optimizing the development work.
Overview
This chapter is a lot to take in. So I decided to start with a simplified overview that clearly highlights the mechanism how technology creates business value and that way, shows every possible financial consequence of our choices. This is how we RIP CAR:
Increase revenue
- Increased number of sales or higher product price
- Enabled by improving the products and services, creating a better CX
By gaining better insight into the real user needs to improve product market fit
By utilizing the customer feedback, aligning with market trends or inventing something new
- Higher margins and better ROI
- Enabled by higher delivery performance through improved
Developer productivity
Developer and asset utilization
- New market opportunities
- Reaching new audiences
- Offering new products and services
By creating the necessary capabilities to serve them
By adopting or inventing the technologies that enable these
Protect revenue
- Customer retention can be achieved with high levels of customer loyalty that is built by
- Every improvement of CX
- Increased organizational agility
A very impactful example is a faster release cycle that helps keeping the users engaged with product development and enables quicker reaction to their feedback.
Enabled by higher developer productivity gained from high quality technologies that facilitate rapid adoption to change.
Reduce Costs
- With good CX through the following effects:
- Lower cost of delay, lower risks
- Increased company and product reputation that will lead to
With the help of feedback gained because of the improved customer engagement
Lower cost of customer acquisition
Lower cost of hiring
- Improved utilization of resources like employee skills and capabilities, owned software and hardware, budget or capital
- Using cheaper technologies
- Cutting development costs enabled by improved productivity
Avoid Costs
- With the reuse of the same resources as in the above case of utilization
- Using opensource solutions
- By meeting deadlines and budget targets thanks to high productivity
Now comes the deep dive! To give this part better structure we will go over the Financial API and examine what kind of business values each of the components provides. Once we connect the tech changes to an element of the API, by using these relationships we will be able to see exactly what kind of outcomes can be expected. How many of these effects will manifest is always depending on the situation, that's where domain specific technical and business knowledge is necessary. However if you want to convince a manager or stakeholder about the benefits of the technology you prefer, this is where you should get some inspiration. Another thing to know before we begin is that many of the factors you will see here are affected by other areas of work besides technology changes, however here I'm strictly analyzing the possible business consequences of technical choices.
I. Customer Experience
Increase revenue
The main driver here is customer engagement, thought the whole cycle of CX. When we manage to engage our customers with our products that will change their behavior in many beneficial ways. Let me quote Forrester Consulting's research from 2008, it has defined customer engagement as "creating deep connections with customers that drive purchase decisions, interaction, and participation, over time". You can see why it's a very important factor from the business perspective. Remember we can affect if through improvements in any part of the User API. So what are the benefits?
Increased number of sales
UX is a main factor behind purchase decisions and general customer satisfaction in any kind of software. In web applications that sell products, it has been shown to directly affect conversion rates. However there are a lot of different factors that create satisfaction, like trust which is mostly relevant in security critical domains, professional support or frequently addressing the users problems.
A good CX can further generate sales through the different phases of interaction with the users by creating positive impressions at each step.
Engaged and satisfied customers will lead to more sales by becoming returning customers and through advocacy, when they recommend the product to family, friends, acquaintances or online communities.
Such users are also much more likely to give feedback about the product. If that is used well their answers can be used to align the product to the real customer needs. That can create a positive feedback-loop helping to continuously improve the software and differentiate the company or product from it's competitors.
Protect revenue
By ensuring the satisfaction of the users we are also protecting the income channels of the company by:
Customer retention
Keeping the customer commitment to the product by meeting or exceeding their expectations. Great CX helps by increasing customer satisfaction and happy users are much less likely to flee to an alternative product. This is also referred to by the term customer loyalty. If the feedback loop we talked about is created by listening to the users and reacting to them properly ,that will yield great results in this area as well.
Reduce costs
The main driving force behind this business value from the CX sense is having loyal and engaged customers, because that offers help in the following ways:
Lower cost of customer acquisition
Companies pay money to gain new customers, very common examples are ads, sponsorships, event appearances but there are countless others. When the users themselves advocate the product and spreads knowledge of the company it lowers the costs of reaching the same number of new clients. I doesn't at all means the corporation will actually scale back on these costs, I think the contrary is true, yet to attain the same level of public perception a more well known company has to spend less then a new player on the field.
Lower cost of delay
The cost of delay is an interesting idea. It gets frequently neglected because if one is not aware of its existence and intentionally takes it into account it won’t become visible. The way it works is by taking the maximal attainable revenue considering the maximal effort the company can realistically make to increase their current income, then calculating the difference between that and the case when no effort is made for improvement. This will show the lost potential revenue over time, that can be considered the cost of not taking action. The value is obviously accumulating until the company implements the best option. If the customers are engaged and giving feedback you have a much better chance of correctly identifying the right things to do or not to do and implementing them asap in order to achieve the maximal potential profit.
Lower cost of quality
This concept means that by lowering the quality of the product or service, a company offers, they might save on expenses however it comes with hidden costs in the form of unhappy customers. Handling their issues will mean more money spent on support, refunds, replacements, repairs etc... So by offering a product with good CX we are mitigating parts of these hidden costs.
Lower risk
Depending on how you approach it, this can be put to either the reduce costs or avoid costs categories. Whenever you make a change to an existing product or create something new that poses the risk of financial losses. Whether because it's not the right thing to do, or because it's done the wrong way, the result can be the same. Another aspect of having engaged users is that their feedback and participation with the company can be used to validate the ideas before implementing them thus saving us from the costs of messing up. I put it here specifically because many times even the users don't know what they really want, also asking the right questions is an art in-and-of itself, so the results are always imperfect. This way we only reduce the risks not completely eliminating it.
II. Productivity
We are talking specifically about the productivity of developers here. It's important to note the way how these improvements work, because the company has to make a choice. The more straightforward option is simply reaping the benefits of higher productivity which translates in our terms to increased revenue. On the other hand, higher effectiveness enables keeping the same level of delivery with lower resources usage. It creates the option of making a trade-off between reduced costs and increased gains. If an improvement is big enough it might deliver both. Knowing this can be helpful in some situations, for example justifying the upfront costs of improving the developer productivity in some way, to save on total expenses mid to long-term. You will also see here why I said in the previous chapter, that productivity always brings CX improvements.
Increase revenue
This revolves around enabling programmers to achieve better delivery performance, because that has many financial benefits.
Improved product quality
This is based on the fact that the actions taken to increase productivity usually increases employee engagement. In my experience those who honestly want to do a good job at work, are really happy when they can become more efficient and effective. Motivated people will produce better quality products and services. If you wonder what employee engagement is, let me quote an article of Kevin Kruse author of Employee Engagement for Everyone. "Employee engagement is the emotional commitment the employee has to the organization and its goals. This emotional commitment means engaged employees actually care about their work and their company. They don't work just for a paycheck, or just for the next promotion, but work on behalf of the organization's goals." This also leads to actual revenue increase by creating a better CX.
Increased profitability
It's easy to see how improved productivity leads to two things. Higher margins which simply means creating more profit selling the product while keeping the same price, and better ROI or Return on Investment, which translates to getting a higher overall value out of the project than you would have got with lower productivity. What enables them is better delivery performance. It manifests in two ways. Both are based on increased development speed. Namely faster time to market, that is delivering the same volume of work quicker and increased value delivery, that's packing in more features over the same period of time. With huge jumps in productivity they both can be achieved but usually it's a trade-off between the two. Faster delivery comes with the additional perks of more frequent feedback we discussed at CX. In short it's validation of product ideas and by that differentiation from the competition. Increased value delivery can improve customer satisfaction, if they are already used to receive a similar amount of features/fixes on a regular schedule, suddenly receiving more is a welcome addition. Employee engagement also plays a role here, because in addition to the efficiency gained by adopting new tools or processes the motivation boost it can provide further speeds up the work. You can see how improvements in one area can have consequences appearing at others. There will be more example of this because in the end CX sells and the other improvements are only supporting that.
Protect revenue
Customer retention
This is a secondary effect of productivity improvements. When a company releases software frequently, enabled by high productivity, the customer confidence in the product builds up, increasing loyalty and bringing along all it's benefits we already discusses during the breakdown of CX.
Adoption to market change
Higher productivity enables faster reaction to market changes improving the product market fit, gaining competitive advantage and keeping existing customers or even winning over new ones.
Reduce costs
Cutting costs
This is the main trade-off variable of productivity because improved delivery efficiency enables shipping the same amount of work by using less time and resources. It's easy to see how it works out. By taking advantage of the gains in this area the company can cut back on the costs of work while maintaining the current levels of production. The most measurable way it manifests is a decrease in the needed developer hours.
Lower opportunity cost
Or lower cost of lost opportunity. This is very similar to the cost of delay but instead of calculating the price of not implementing a change over time, it calculates the total loss of choosing a less profitable alternative to a better one. It can work on many levels but usually it is discussed in terms of projects. How productivity can help here is by enabling to choose a preferable option when speed or cost of delivery would be a bottleneck.
Lower cost of delay
You already know what this is, productivity helps in this regard similarly to the previous point by delivering the best option faster, utilizing the better feedback gained from more engaged users as we already discussed under the increase revenue part.
Increased reputation
The increased productivity is certainly not the main factor in increasing the reputation of a company, but it can contribute to that. By helping to raise employee satisfaction, similarly to the customer advocacy effect of CX, they will naturally share the good experiences about their workplace with friends and former colleagues. This will help to lower the costs of hiring because the company doesn't have to spend on reaching those potential employees.
Avoid costs
On time and on budget product delivery
Higher productivity always helps to hit those milestones, deadlines and business goals. Sometimes they are necessary for it. This, just as most of the other points, is not by definition a consequence of any improvements made, however even the smallest net-positive increase helps to get closer to these objectives. This way we can mitigate unplanned costs. As you might noticed, this is actually just a different view on the effect of fewer developer hours, so depending on the situation it will either qualify as reducing or avoiding costs
Employee retention
Often times the tools that make work more productive are the ones sought after by the most enthusiastic developers so it can contribute to keeping them at the company saving on the cost of lost knowledge and a possibly decreased reputation.
III. Utilization
We are talking about the utilization of the assets of a company. The relevant parts for us are the employees, hardware, software, budget, time and intellectual properties. When we make improvements in this area they have the following effects.
Reduce costs
Increased operational efficiency
Under this point of view we can achieve better operational performance by improving resource utilization. This is also pretty self explanatory, we try to bring out the full potential of what the company already has. It's similar to how productivity increase works, but it counts as a utilization improvement when no already existing work gets done more efficiently yet we can still gain more than previously. This is only possible when there is excess capacity that has not been used already. Productivity improvements can actually create situations when utilization suffers, for example if a task is being done in half the time but there's nothing else to do in the now free segment. When that is filled up with new tasks the utilization of developer capacity gets more ideal.
Lower operational costs
By choosing the right technologies for the task we can gain much better value for our money. There's a wide variety of possible cases, but all revolves around replacing what's currently in use with more cost effective alternatives or totally eliminating the need for them. The same works for processes, when unnecessary administrative tasks are removed that leads to lower expenses.
Avoid costs
Reuse of existing assets
This can mean the "reuse" of employees, by training them for new jobs, this way avoiding the extra costs of hiring and lost knowledge. Or it can be the reuse of infrastructure when the owned IT equipment can be used to operate new or upgraded technologies avoiding the need and costs of investing into new hardware or software.
Licensing
This is the most classic example of saving on the expenses in software development, open source. If you can choose a free, premade solution for a problem you would otherwise have to invest time and money to solve then the company can simply avoid those costs. Finding a project with an appropriate software license for the use case is the key here.
IV. Business opportunities
I only know about a few effects in this category. If I find anything new I will make sure to update this section. I have to start with the one I can't categorize properly as this is the most influential effect any software can bring about. However it must be a real innovation to make that happen. When a new technology is radically different than anything before, it can create new markets and businesses around it. A few good examples are the invention of the modern web, digital marketplaces or the crypto currency. In the less drastic cases the following things can happen:
Increase revenue
Create new services
Adopting a technology can mean extending the range of offered services by the company. Like when a cloud infrastructure provider starts to offer new database types or when a development consulting firm expands the list of programming languages or frameworks they work with.
Access new markets
Implementing certain technologies, that we will explore later, can enable a business to reach new segments of a market or to enter totally new markets with their products. In practice it translates to things like reaching a new age group with the product (teenagers with a mobile app / responsive website - kind of outdated example but shows the crux of it), entering new geographical regions/countries (ability to scale up efficiently), passing regulatory requirements to provide solutions in a field like the medical or defense industries and adopting cross platform tools that enables us to ship the products to a different set of users.
Improved product/market fit
Technology can help to understand the needs, expectations and behavior of the users, in short offer better insight. This allows faster response to changing customer needs and ultimately to better match the company's offers to them.
Reduce costs
Improved employer branding
By aligning tech decisions with job market trends - which simply means adopting popular technologies - a company can increase their appeal for potential new employees. It's only a small part of what makes a good employer brand, but this is the most we can do for it with the development related part of our work. By this improvement a business creates new opportunities from the employer perspective, allowing selection from a wider talent pool, and saving on costs of the hunt for developers.
V. Growth - the performance bonus
I was considering how to handle this category for a long time before deciding on adding it as a 5th bonus item to the list. The reason for that is, this affects all the 4 business values on it's own so it deserves a spot among the other factors. However this is not something that can be directly influenced, growth is a consequence, the benefit of doing well with all the 4 factors we actually can affect. Furthermore multiple change types induce growth on the same ways, which would make them repeatedly appear in the above list. So with these considerations, here I will explain how do we create further positive effects through company growth.
Increase revenue
Market share gain
Doing a great job with the 4 factors will lead to market share gain which gives the organization competitive advantage over the other players in the field. The benefits are numerous. A company with a high market share can attract more investment or negotiate better conditions. High market share gives the ability to control the development of the market in the most favorable direction.
Increased reputation
By delivering successful products and/or projects, or by influencing the industry of software engineering through technical innovation, a company can attract many new business opportunities. The right tech choices can contribute to achieving this.
Protect Revenue
Significant market share
A high market share position helps with building trust and confidence in the users, new and existing alike. Seeing the company as reliable and well recognized can increase customer loyalty. It further enables the company to build barriers of entry to the market so new players will need to make heavy investments to set their foot on the field.
Market dominance
When a company becomes a much larger player on the field than the rest, it can become impractical for the users to switch to a competitor because the inconvenience that would cause, or even the amount of research it takes to find viable alternatives. This situation is very beneficial in protecting the existing revenue sources of the company, however it might lead to issues if it becomes a monopoly.
Reduce Costs
Economies of scale
A higher income gives the company buying power, which means it's suppliers can offer better prices because the order volumes will be higher than the competitors'. Growth can also lower expenses because how the economies of scale work. The principle in simple terms means that the cost per unit of a product is lower if produced in larger quantities. In regard to our profession, once a company is set up with good processes, tools and people to do software development it's much easier to start and deliver new projects or features than with smaller teams and less efficient organizations. That can reduce the costs a lot by saving on developer hours.
Lower cost of hiring
Usually when a product becomes famous, the potential new employees on the workforce market will also be more likely to know about the company and might even proactively seek out job opportunities at it. This will lower the money spent on recruiting. CX helps by organically growing public recognition.
Avoid Costs
Network effect
At a certain point the network effect can also kick in. If the product has a large enough user base it will be reaching new customers just because "everybody uses it, so I should try too". Saving on a lot of different expenses for the company.
The final form
If you -like me- have a brain specialized in processing source code, not business ideas, parsing these list might have thrown a stack overflow exception. There is hope! We can still abstract away most of the details, so much so that we will get an API with only 2 public methods! But before that I want to emphasise, the Financial API is the ideal model of the business world for developers. It hides away all the financial details but encompasses all of them. Now going a step further, all of them are just different forms of these 2 actions:
- Improving the products & services
- Optimizing work
That's the final form of the Financial API, that's all the tools we have as developers to affect the business results of our work. All those fancy metrics like ROI, customer retention, employee engagement and everything else we discussed will boil down to these two as far as a developer's techical responsibility goes.
It's clean and simple, but you might feel like it's actually too simple. This way, it's not really applicable in practice. It won't stay that way for too long. This far I only showed what can we influence, not how to do it. The really interesting parts will come in following chapters where I will connect the different properties of software, code and the development process to the Financial API, establishing a direct connection between our practical tasks and their business consequences. Isn't that exciting? Affecting customer experience, developer productivity and financial outcomes are major topics and I bet they are grey areas to most of you just like they were for me during my first years of work. We will begin by exploring the perspective of the users in the next chapter.