tl;dr – ‘Money Flows Rule Everything Around Me’
When talking about IT transformation, we often talk about ‘culture’ being the problem in making change, but why stop there? If we take a ‘5 whys‘ approach, then we should go deeper. So, where can we go from ‘culture’?
Here I suggest we should consider a deeper structural cause of cultural problems in change management: how money flows through the organisation.If you want to change an organisation, you need to look at how money works within it.
I talked a little about this in a recent podcast.
In this post I want to pick up on two threads that have cropped up in previous posts and bring them together.
1. ‘Start with finance’An aside I made in this somewhat controversial previous post:
Command and control financial governance structures just aren’t changing overnight to suit an agile provisioning model. (As an aside, if you want to transform IT in an enterprise, start with finance. If you can crack that, you’ve a chance to succeed with sec and controls functions. If you don’t know why it’s important to start with finance, you’ll definitely fail).
was picked up on by many people. They wanted to know more about why I was so vehement on that. Unfortunately, it was a throwaway line, there was too much to unpack, and it wasn’t clearly formed in my mind. But like many throwaway lines, it revealed a thread that might be good to pull on.
2. ‘Culture – be specific!’
Previously I was inspired by Charity Majors (@mipsytipsy) to write about my frustration at IT’s apparent inability to probe deeper than ‘culture’ when trying to diagnose problems in technical businesses.
"Culture" can't be broken, any more than "complexity" can be the cause of failure.
— Charity Majors (@mipsytipsy) February 6, 2018
Fucking get specific.
Since then, I’ve spent more time in the course of my work trying to figure out what’s blocking companies from attempting to change, and increasingly have worked back from people and process to sales and funding.
The argument breaks down like this:
Or, put more engagingly:
But the finance office designs HR... pic.twitter.com/qOYaNpdQFD
— ^[ 🕷 (@backslashx1b) May 30, 2021
Any significant decision or change therefore gets made in the context and constraints of how and why money is distributed to, and within, the business.
There is also a more visceral personal level on which money flows can change or affect behaviour. Compensation, threats of firing, and bonuses can all drive good or bad behaviours. Or, as it’s been put pithily before:
When you’ve got them by their wallets, their hearts and minds will follow.
Fern Naito
This is not to say that all culture is 100% determined by money flows. Individuals can make a difference, and go against the tide. But in the end, the tide is hard to fight.
There is a precedent for this argument in philosophy. Karl Marx argued that societal culture (the ‘superstructure’) was ultimately determined by material relations of production (the ‘base’). From Wikipedia:
The base comprises the forces and relations of production (e.g. employer–employee work conditions, the technical division of labour, and property relations) into which people enter to produce the necessities and amenities of life. The base determines society’s other relationships and ideas to comprise its superstructure, including its culture, institutions, political power structures, roles, rituals, and state. The relation of the two parts is not strictly unidirectional, Marx and Engels warned against such economic determinism as the superstructure can affect the base. However the influence of the base is predominant.
Wikipedia, Base and Superstructure
The theory is all very interesting, but what does this mean in practice?
There is a very common pattern in software companies’ histories (especially if they were founded before the Software-as-a-Service age), and understanding their flows in terms of their histories can explain a lot about how and why they struggle to change. I have seen it multiple times in the course of my work, both as a consultant and as an employee.
When a software company starts up, it often builds a product for a few big customers that sustain their cash flow in the early days. These times are a natural fit for ‘hero hackers’ who build features and fix bugs on live systems all night to help get that contract signed and keep their customers happy.
Your customers are few, so all are important. They demand features peculiar to them, so you keep delivery times low by having customer-specific code, or even forking the entire product codebase to keep up.
Now that you have some customers who are happy with the product, its features, and your staff’s dedication to keeping them happy, more customers come along. So you sign contracts with them, and before you know it you have numerous customers.
Of course, you’re selling your services as a product, but the reality is that it’s a mess. Each installation is more or less unique, and requires individual teams to maintain or develop it.
This is where things start to get more complicated.
Grumbles from customers and between development teams start to increase in volume.
The last two stages are closely related. Either or both can happen in the same company. Stage IIIb doesn’t necessarily follow from Stage IIIa: it’s really just the same problem in another form for the SaaS age.
As you get more and more customers it makes less and less sense to keep working like this. Customers start to complain that their system is expensive to build on and maintain, as feature x requires ‘integration’ or some kind of bespoke delivery cost for their deployment. At this point someone says: ‘Wouldn’t it make more sense for us to maintain one product, and maintain that centrally for multiple customers? That way, we can sell the same thing over and over again, increase the license cost, reduce delivery cost and make more profit.’
Stage III is where the cracks really start to show, and we go into how and why this happens below.
As the (pseudo or real) product offering grows, or as you increasingly offer your software as a service on the cloud rather than a package delivered in a data centre, you invest heavily in a ‘platform’ that is designed to enable deliveries to be faster, cheaper, and better.
You might even set up some kind of platform team to build these cross-product features. It’s a similar justification to the product one: ‘Wouldn’t it make more sense for us to maintain one platform, and use it to deliver products for multiple customers? That way we could reduce cost to customers, and increase quality at the same time.’
So how do things go wrong?
From Stage I to Stage II, things are relatively smooth. Everyone understands their role, and the difficulties you face are tough, but tractable and clear. As you go to Stage IIIa/b, that balance tips. Everyone seems to agree what the goal is, but in reality:
All of these difficulties and failures can often be tracked to money flows.
Similarly, with platform teams:
Again, often all of these difficulties and failures can be tracked to money flows.
These difficulties come down to challenges moving from project to product, which in turn come from how money moves into and through the business.
In Stage I, the money flows are simple:
The reality is that at Stage I there is no real ‘product’. There are projects that deliver what the customer needs, and the business is happy to provide these as each individual project is profitable (either on a ‘time and materials’ or a ‘fixed cost’ basis), resulting in a healthy profit at the end of the year.
But as each customer’s codebase and configuration diverges, those features and maintenance patterns cost progressively more. But no matter, the business has a simple model for cash flow: keep the customer happy and the money flows in, and each customer gets the development and maintenance attention they pay for.
In Stage II, the money flows are much the same, but the cracks are starting to show:
At this point, customer executives start to say they yearn for a product that has a more predictable quality to it, and a roadmap, and is cheaper and feels less bespoke. Can’t we all just pay a lower annual fee and get a steadily improving product?
At the same time, the owners of the business are asking themselves whether they couldn’t make more money the same way: instead of 15 customers, wouldn’t it be great to have 150, all taking the same product and paying (say) half the cost they are now? That kind of margin looks very tempting…
The result is that changes in external demand produce a desire to change the development model.
In Stage IIIa (and Stage IIIb), if the money flows stay the same as in Stages I and II, becoming a product company will feel extremely difficult. This is felt in a number of ways, but here is one common story:
Time and again, development and product teams tell management that they have to make a call: sacrifice customer satisfaction for the product, or build up ‘productisation debt’.
The result is it takes much time and money than expected to get a successful product model going, while the older money flows continue to push the organisation towards its old habits and culture. Why trade the feel-good factor of giving the customer what they want now for the slow burn of deferred rising profits in the future?
On the face of it, the arguments look simple: your profit margin will go up if you productise. The reality is that finance (and therefore the executives, shareholders, salespeople, HR, reward systems etc) have got used to the project-based money flows and cadences and find them incredibly hard to give up for some uncertain but better distant future.
What you end up with is a more complicated version of Stage II (simplified here with only two customers for ‘clarity’).
The product reality – customers and finance want to keep the relationship the same
Rather than your customer teams fighting with the customer to give them what they want, you now have more forces acting in opposition within your organisation, including:
The result is likely to end in failure for your product strategy.
The ‘platform’ stage is really a variation on the product phase (Stage IIIa), except that this time the customers have no visibility of the productisation or automation of what they’re sold. This is effectively a product built for an internal customer, the finance team, who hope for money to be saved per project over time after an initial investment.
This can be easier or harder to achieve than Stage IIIa depending on the attitude of the internal customer vs the external customer.
Again, it can be affected by the details of the money flows: if the work to build a platform is on the books as capital expenditure (as opposed to operational expenditure – see below), executives may well ask ‘is the platform built yet?’ This question can baffle the team, as they’re well aware that such a platform is never ‘finished’, as there are always efficiency-generating improvements to make.
In both Stage IIIs, if the benefits of the platform are not quantified in financial terms from the start, then getting the funding required becomes difficult. This means that you should:
The above patterns are common to small-medium sized software B2B software businesses, but they are not the only patterns that drive cultures and behaviour contrary to their stated aims.
Here we list some significant patterns and their effects on culture, delivery and operations.
Opex (operational expenditure) and capex (capital expenditure) are two different ways that business spending can be categorised. Briefly, opex is regular expenditure, and capex is significant, long-term expenditure.
Software projects’ costs have traditionally been categorised under capex, but as cloud computing has arisen, more and more of their costs have been moved to opex.
The designation of spending can make a significant difference to how work is treated by the business.
There are tax implications to both capex and opex that can further complicate discussions.
The line between a capex and opex purchase is not always clear, and most projects will have some kind of mixture of the two that makes working out the effect on the business’ profit and loss account for that year difficult.
Project-based funding is where money is allocated to a specific project and/or outcomes, as opposed to product-based work, where funding is usually allocated continuously. Project funding may be on a ‘time and materials’ or ‘fixed cost’ basis.
The cultural patterns associated with project-based funding are:
Yearly funding cycles are where money is allocated to projects or products at the same time
every year. This is normally driven by accounting cycles, which are almost always yearly.
Yearly accounting cycles make a mockery of technical teams’ attempts to be truly ‘Agile’ in response to business demand. If a released MVP product flies off the shelf in February, then you can’t get funding to scale it up until January next year.
Strict yearly funding cycles are also often associated with centralised funding within large business units that sit within larger organisations. This can make working in an agile way even harder, as there are two levels of politics to negotiate before more funding can be gained for your team: your own business unit’s internal politics, and the business unit’s relationship with the central funders.
First mover bears the cost
Individual business unit funding also makes it significantly harder for any kind of project whose benefits cut across business units to get off the ground, eg ‘Platform’ or ‘Infrastructure’ work. Costs for such projects are typically borne by a single centralised business unit that is perceived as delivering little business value, so is starved of funding.
This can also be characterised as a ‘first mover bears the cost’ problem.
Some organisations take a strict view of cost/benefit for any given expenditure, insisting it must show some direct, tangible return on investment.
In general, this is sensible, but can result in difficulty getting funding for projects where there is not a readily measurable return.
For example, what if your investment:
Is there a way to measure these, or even the language to state them as benefits at all?
Many businesses have no leeway for these qualitative benefits to factor into business cases.
Whenever you want to debug a misbehaving program, you want to get to the root cause. Workarounds are unsatisfying, and ultimately result in further problems as the workaround itself shows its failings.
I feel the same way about ‘cultural problems’ in organisations. It’s not enough to put posters up around an office imploring people to ‘be more agile’, or instruct people to have a daily stand-up and a two week work cadence to drive cultural change.
No, you have to go to the root of the structures that drive behaviour in order to make lasting change, whether it’s on a personal level or organisational. And my argument here is that the root of behaviours can be traced back to money flows.
So, what can you do about it? Here are some suggestions:
Most important of all, if you’re going to change the behaviour and goals of an organisation, you are going to have to change the way money moves around it. As Einstein is [wrongly said to have] said, doing the same thing over and over and expecting different results is the definition of insanity.
If you can engage with finance in an open and enquiring way, then together you can make lasting change; if you don’t, then you will be fighting the tide. Just ask Marx.
A version of this post originally appeared on the blog zwischenzugs.