Talking About Software Development Costs

 

Let’s talk about costs. I know, typical thing for a CFO to talk about, right? But this is not your typical cost conversation. This is a conversation the way we should look at costs, as they relate to business value. But first, let’s set the stage with a real-life experience.

Several years ago, I joined a company as CFO. I had been hired to clean up the company’s financials and improve profitability. A perfect opportunity to cut costs, right? Yes…. And No. It WAS a great opportunity to educate the executive team on the importance of a value orientation, instead of a cost mindset.

Within a few days of joining the company, we experienced an internet outage that lasted 3 hours. A week or so later, it happened again. And then, again a couple of weeks after that. When we lost connection to the internet, most of us lost our ability to work, since so many of our systems were online. When I asked about the reason for the unstable internet, and whether anyone was working on a solution, I was told that due to cost constraints, we had selected the lowest cost provider, but the deeply discounted service didn’t carry any uptime guarantees. In other words, instability was part of our regular operations.

Being curious and analytical, I asked a question, and did some quick math. “How much was the cheap internet costing us in lost productivity?” The answer was staggering. Most of our people were highly compensated professionals, earning over $100K annually. A single hour’s outage cost us more than $5,000 in hard cost, and another $10,000 to $15,000 in missed revenue. And we experienced multiple outages each month. Through the value lens, the answer was simple. We found a different vendor, and implemented back-up internet. We never had another outage. The $1,500 a month we spent for internet had an astronomical ROI.

“OK”, you say, “But that’s an obvious example. I wouldn’t make a poor decision like that.” Unfortunately, most of us make decisions like that every day. It comes from having a cost mindset instead of a value orientation. Let’s consider some examples in the software development world:

Using only junior software developers on a critical project: The argument goes something like this: We can’t afford the salaries of experienced developers, so we’ll give the project to a junior team, and add one or two extras to ensure capacity. On the surface, this decision appears to be cost effective, because the cost per hour has decreased, but it’s highly likely that the cost per unit of productive output has increased. In addition, quality issues, rework, and management time have also increased dramatically. Consider: What is the cost of inexperience?” and… “What is the value of expertise?”

Putting a small team on a large, new project: Here the argument is often: We can’t afford to take people off support for existing systems to work on new product opportunities, so we’ll assign a small team (or worse yet, a small team part-time) so that at least we’ll make some progress. And you do…. make some progress… but not enough to launch the new product in time to beat the competition, and you are left having spent a cumulatively large amount on a product that is already behind before it is ever launched. Consider: “What is the cost of delay?” and… “What is the value of speed?” Remember, when you lose the competitive advantage of early release, it’s the biggest months of potential revenue (and profit) that are lost.

Using the skillset that is available: Remember the adage that to someone with a hammer, everything looks like a nail? In other words, we tend to approach problems with familiar solutions, whether or not they fit. Sometimes, to save cost, we rely on in-house expertise, to make a key decision instead of finding the right expert for the job. The result can be devastating: systems that integrate poorly, are unstable, don’t scale, or require lots of workarounds, because our in-house person “didn’t know what he didn’t know”. We’ve worked with numerous clients whose poor initial decisions cost years of operational challenges and millions in re-work. Consider: “What is the cost of a faulty decision?” and… “What is the value of being right the first time?”

These are just a few examples where a cost mindset leads to poor results, because a focus on cost only considers one side of the value equation. Every decision we make, every dollar we spend, has a purpose. When we separate the spending (cost) from the purpose (value) we invariably make bad business decisions. So, how do we avoid falling into the cost trap? I have a few suggestions.

  1. Develop clarity around what you are trying to accomplish, and what the key value drivers are. Is the real goal minimizing cost, or maximizing the desired outcomes?
  2. Identify realistic options. We frequently tend to set up options as polar opposites. We can only field a junior team, or a senior team, for example, when there are many options in between. Perhaps a blended team can reduce cost and improve productivity (while providing development opportunities for all).
  3. Understand the risks involved in each of your options. What is the potential impact of each major risk? And what levers are available to mitigate those risks?

 

Once you understand the business goal you are working towards, the options available, and the major risks, then you are prepared to use a value orientation to achieve the real goal at the right combination of cost and risk, instead of merely minimizing immediate cost. And remember to be open to unconventional solutions. “Tried and true” approaches are often not the answer. Like the internet example at the beginning of this article, I have often found that spending a small amount in a focused way creates disproportionate benefits.