Software Economics
If your business is like most, you’re always looking for ways to improve efficiency and cut costs. One area you may not have considered is your software investment. Just like any other business asset, your software needs to be managed properly to get the most out of it.
Before we define what is software economics, let’s start by understanding what is an investment and its key components. An investment requires putting capital to work, in the form of time, money, effort, etc. in hopes of a greater payoff in the future than what was originally put in. Some key components are risk, profit, cost and time to market (the time it takes from when you start developing a product until it is on sale).
So what’s software economics?
Software economics is a set of techniques and practices combined with engineering effort looking for a future benefit.
How should we apply it?
As everything in life, it always depends on your particular context. Kent Beck differentiated them between explore, expand and extract
Explore — to overcome disinterest, try many small experiments.
Expand — to overcome bottlenecks to scaling, and ease the limitations of the next rate-limiting resource.
Extract — to sustain growth, continually increase profitability while you finish growing.
- In explore phase, your investment is volatile because your risk can be high and your time to market can be low as well. At this point, it’s interesting to deliver now, but you will have to handle the manual tasks and will not scale in many processes.
- In expand phase, you start to invest more in your product/company because your risk is lower and the problems are focused on scaling your prototype.
- In the extract phase, you focus on cutting costs and maximising revenue.
Each phase (context) will have a different set of suitable techniques. In this post, we will not deep dive because the number of techniques and practices available is huge, but sure a few of these will catch your attention:
- Software practices like ensemble programming, TDD, BDD, DDD
- Product definition/discovery like MVP, vertical slice and event storming.
- Engineering culture like learning hours, and discovery sprints (in Typeform we call it hive sprint, it’s two weeks sprint where every employee can work on developing new products, processes, etc).
- Any other agile practice you can imagine.
In conclusion, you can not run away from doing an investment. It’s always important to understand your context, and what are the best practices and tools you have available trying to decrease the risk and maximise profit.
References:
Kent beck post
Eduardo Ferro, El patadón pa’lante
Luis Artola: Software economics