(Like this article? Read more Wednesday Wisdom!)
This article is the third and last in an informal three-parter on various business-related aspects of our field. The first article is here, and the second is here.
Our industry excels at running to stand still. By that I mean that we are often engaged in projects that have little or no measurable business value. Instead these projects seek to improve some technical aspects of the system. Quite often, teams spend a considerable amount of time working on the system, after which we have exactly the same functionality as before, but perhaps (hopefully) on a “better” technical foundation. I am suspicious of these kind of projects. Why should we do them? What is the positive impact of this project to the bottom line? If we are going to spend $xx million, what does the business get back for that?
Many engineering teams are completely removed from the day-to-day business of their organizations. I find that dangerous because, even if you are in a non-profit, we all live in a market economy and at the end of the day there needs to be a correlation between what you cost and the value you bring to the profit & loss statement.
Underlying this principle is a simplifying measure that I sometimes get criticized for: I tend to translate everything to a single unit and then optimize based on that. Mostly that unit is money...
Actually, it is always money...
Cue people that tell me that not everything can be expressed in money. For instance, what is the monetary value of a beautiful sunset? Or of someone going to work with a happy feeling in their gut?
I respectfully disagree with these criticisms. I am not saying it is always easy to translate something to a monetary unit, but saying that two things cannot be reduced to the same unit is saying that they cannot be compared at all. And by saying that, you are saying that it is impossible to make a decision on which of these two things to spend time and money on in a situation where you can do only one.
One of the reasons why reducing everything to money makes people uncomfortable is that it often brings about very uncomfortable discussions. For instance, the question of whether the medical insurance system should pay for some kind of new life-saving drug might come down to the question of what the monetary value is of a good quality year of life.
That measure exists and is called the Quality Adjusted Life Year (QALY) and I believe it is worth about $50,000 to $150,000.=.
Regardless of how uncomfortable that particular discussion is, in a world with finite resources and infinite demand, you need to make choices. And in order to make these kinds of choices well, you need to make things comparable. Reducing everything to a one-dimensional variable is a good way to do that.
One group who are on the same bandwagon as I am is the Effective Altruism movement. In many ways the effective altruists are Jeremy Bentham's utilitarianists all over again; people with a single minded focus on doing the most good for the most people, regardless of who the beneficiaries are, and being neutral with respect to the cause supported. They might ask: “What does more good? Cleaning up this nuclear waste site over here, or giving anti-malaria drugs to everyone in Africa?” These questions are only answerable if you can reduce each of them to a comparable unit. Cue, the QALY...
Sam Bankman Fried (SBF), of FTX fame, is not only a world renowned fraudster who is going to spend the rest of his life in prison (warning: at the time of writing the trial is still going on, so consider this a forward-looking statement), but also an effective altruist. He is somewhat famous for calculating the so-called effective value (EV) of all possible choices and then ruthlessly choosing the highest EV-outcome. There are many things wrong with how he did that, and please don't follow his lead, because otherwise there might be a nice orange jumpsuit in your future as well, but the idea is not wrong.
The error that many EV enthusiasts make is that they forget how hard it is to accurately determine the probabilities and monetary values of all the factors in play. In fact, it is often impossible, but choosing one thing over another requires comparison and that requires some stab at representing the choices as comparable quantities. It does not have to be infinitely accurate; quite often just doing a reasonable job is good enough.
Some years ago, all staff in the Google Zurich office got an email from the catering group saying that it had become very cumbersome and expensive for them to have to walk past all the desks on all the floors and retrieve all the plates and cutlery that people had taken there from the restaurants.
People did this so that they could eat at their desk and code some more, instead of having unproductive and uncomfortable social chats with their colleagues.
The email asked everyone if they could please bring their plates and cups and whatnot to the collection crates in the micro-kitchens, which by Google rules were never more than 150 ft or so away from anyone's desk.
In response to that email, someone answered (publicly!) that given the difference in the hourly compensation between a software engineer and a catering staffer, it was actually cheaper for Google to hire a few more catering staffers to collect the plates, because expensive software engineers making the trek to the micro-kitchen would lose valuable screen time in which they could have coded more future postmortems.
This example shows EV gone wrong…
The explanation of how it went wrong is left to the reader as an exercise.
One of my colleagues at the time pointed out to the proponents of that train of thought that the two minutes they spent bringing their dirty dishes to the collection trays was valuable time in which they could practice being a human being.
However, the fact that it is possible to get the (maximum) effective value wrong doesn't mean that you shouldn't attempt to make rational decisions that optimize the overall future value of what you do. And then we come back to the original proposition of this article, which was about supporting the business and doing things that move the needle for the bottom line.
I regularly sit in meetings where a team of engineers is proposing a plan and design to rewrite some system because the current code is old and sucky and uses outdated technology. That's all fine and dandy, but my number one question is always this: “What's in it for the business?” If we do this, and we spend four engineers for a year, what do we get? If the answer is: "The same as what we have now but in the cloud with Lambdas and DynamoDB", I get annoyed and start explaining that, at the end of the day, we all work for the CFO and if he asks me what he is getting for this million dollar investment, I need a much better answer.
Fortunately, it is often not hard to come up with a better answer. Low code quality and outdated technology come with costs too and we need to visualize these costs in terms of velocity for new feature requests, incidents, and eventually hiring people who still know something about the old technology.
Anyone here still know Cool:Gen? If so, the Dutch IRS has a job for you!
However, I also want to sweeten the deal for the business by front-loading as many features and as much positive business impact as possible. Often we want to engage in a rewrite because that will make it easier to do something that the business wants. But we can at the same time increase the effective value of the entire proposition in the short term by organizing the development of version two such that some of this positive impact is realized sooner. This might come with additional costs, such as making the entire process take longer, doing some throwaway work, or back-loading things that the tech teams want. That is sad and sounds bad, but makes the entire project probably more palatable for the business. We need to carefully weigh pros and cons because at the end of the day, the goal of our work should be to make the entire organization more profitable.
That doesn't mean that we should focus on short-term features only! The effective value view is by definition a long-term view, but having a long-term view doesn't mean that we don't care about the short-term; it means that we work so that the long-term value is maximized. And in order for there to be long-term value we need to make it to the long-term, which might mean making investments that pay off in the short-term.
So I guess the moral of the story is to be more like Sam Bankman Fried, but please keep it legal :-)
If you're accepting bets on SBF spending the rest of his life in prison, I'd like to be a bidder. My prediction would be that in the next ten years he'd spend at least two out as a free man.
Great post, as always!