|Here are the posts in the Agile Economics series:|
|Gambling Issues||Supply and Demand||Early and Often||Delusions of Grandeur|
|Scale and the City||Scale 3D||Cost of Change|
Supply and demand are the basic principles of any economy in the tangible world. The prices of products and services are negotiated based on their availability (or scarcity), and the demand for them by the market.
Imagine we’ve gone back to the industrial age. We’re selling a product, and we want more money. If demand grows, we need to scale. This means more production lines, and more skilled workers. If the skill involved doesn’t require much training (which was normal for the age), we can hire anyone to do the job. Since there are a lot of “anyones” out there who want to work for us, we can keep the costs down by paying low wages. After all, our supply of workers is big, and we offer money which puts us in demand.
In the industrial age, we paid more for machines and maintaining them, rather than investing in the workforce, which was highly replaceable.
If demand is constant or declines, and we decide not to kill the product lines, we need to be more aggressive about cutting costs. We work on lowering inventory (which costs us space and rent), shorten the production lines (so it takes less time to make the product) and increase our batches (machine downtime costs us money, so we want them running and producing as much as we can).
Note that we can cut costs up to a limit without hurting quality. Which obviously was the next target.
At the end of the lifetime of the product, we kill the production lines, and move the workforce to work on other products. Or we let them go and hire new ones, because they are only resources, right?
Predicting the future
Since we want to accommodate the market, we need to plan. We want to predict the future as precisely as we can. Luckily (or unluckily, depending on perspective) for us, the rate of change in demand is pretty slow.
That means that if we see that demand is rising, that rate is mostly not volatile enough to make our plans invalid. We can decide to build that extra production line, because even if it takes two months, the trend would continue. (Unless there’s a war, or a stock market crash, or other unforeseen events. Even today we don’t plan for every catastrophe).
If someone disrupts the market, we might want to respond to that threat. We’d still be late for the market, but our competitor is also slow. If they wanted to expand, it will take them a lot of time too. Both our lead time and theirs is long.
Welcome to the information age
Now, let’s come back to the future, to the information age and the knowledge economy. What’s different?
The first thing we notice is that machinery costs are pretty low. Skill is becoming the main cost. People with experience are hard to replace. They are also hard to retain, because experience and ability to communicate, collaborate and execute have become the engine of growth.
Also, we get a whole lot of uncertainty.
Technology changes so quickly, we can’t follow or get into it too deeply. Decisions we make today, should accommodate for future changes that we can’t even predict.
It comes in the form of high volatility in demand, and our ability to respond. But that’s not all.
If our customer base is large, there is probably not just “one” solution for their demand. We see there’s always a couple of phone models coming out at once. In software, the range comes with customization and variation of features. If we segment our customers, we differentiate the products by variety of features.
Which is ok if we knew what to build for them.
But the scale issue messes everything. We’re dealing with multiple customer types, all working and playing differently and we can’t really guess what features they will use, when, how much and what kind of impact it will have on our servers and our bottom line.
So how does agile fit into this?
Agile methodologies work in a level of high uncertainty. In fact agility (as a goal) is defined as the ability of the business to respond quickly to changes in the market.
In the information age that change happens all the time, and therefore agile methods try to support the business in these hard times.
Shortening feedback cycles is in the heart of any agile methodology. Short iterations, where full stories are implemented and deployed to production, means that we can get feedback from actual users about what we’ve built. If we built the wrong thing, we can stop wasting money on that path.
But if we are on the right track, we can actually deliver something working to the market which satisfies the demand, and through feedback learn of other types of demand we can answer. Early delivery helps bring in money and open new opportunities for more business.
That money coming in early helps with supply, because that money can be invested in the new opportunities earlier, rather than waiting 2 years for the money to start rolling in (if at all).
Collaboration with the customers, instead of legally working against them, also works in our favor. A company that is open, transparent and builds communities of people around it, letting them talk freely, creates evangelists that help spread the word, and continue to generate demand.
Agile methods prefers cross-org teams, people from different parts of the organization. At first, we see this as good way to make right product decisions, as well as mitigate the risk of executing the wrong ones.
But that’s just the tip of the iceberg. When more people are in the process of designing and building a solution, they can also identify these other opportunities for increasing supply or new types of demand. Instead of one product manager you now have ten. You just increased your business development capabilities by an order of magnitude.
Agile methods and practices were originally meant to help with business development. They were about execution. Indirectly, though, they have a major engine for customer satisfaction and business growth.