Outsourcing we will go
If it's core, it's yours. Fix it, don't export it.
Here's how the story goes.
There's a meeting of all the big cheeses at our favourite company, Gristle and Flint. It's quite usual for the other directors to vent their frustrations at the CIO - the desktop hardware refresh is running late, IT personnel costs are on the rise, the web site was down all weekend, new budget requests are coming in to support stuff with weird names like 'middleware', you know the kind of thing.
But today the CEO is incandescent. The competition is having a field day. He's been made to look a prize chump in front of the market and, worse, his golf buddies. The promised new product launch of Widget2.0 didn't happen. Advertising time was booked and a press conference arranged, but the software hasn't finished testing and the more they test it, the more bugs they find. Not major ones, but enough to mean the product can't launch.
IT is scrabbling to get on top of things. Under pressure, the systems guys made a few basic configuration errors which took a while to discover, so there's a delay in even getting a base platform ready to start the next round of testing.
So when is Widget2.0 going to be ready? Well, in truth nobody can say. Soon, for sure. Unless they find a major bug. But not today. And probably not this week.
Before we see what the CEO is going to do to assuage his embarrassment, let's look at exactly what went wrong here. We're ethereal beings in this scenario, so we have the luxury of being able to slide through time and space and objectively sift through the last few month's activities.
The Widget2.0 Product Manager did a great job of reacting quickly to a perceived market need. He also saw that the revenue numbers for his area weren't going to get met, and his bonus, along with everyone else's, was in some jeopardy. The first signs of trouble began about here. Because Widget2.0 is designed to address new dynamics in the market, nobody could say, in anything more than general terms, what it's meant to do. Luckily, the Product Manager was working with an agile team, who quickly went and produced a prototype of the parts he could define. Once he started to see these requirements captured, and the code developed, he was quickly able to make the changes necessary to realise his vision.
The Programme Manager is sharp too. She ran round around like a demon, making sure everybody knew what everybody else was doing. She kept the budget up to date and reported all risks and issues to her steering committee as they arose. From development to testing to sponsor, everyone felt like the communication was frequent, light and appropriate.
In fact, let's go nuts. In this magical world, Gristle and Flint only has above-average people in management, analysis, test, and development. Even the Enterprise Architects are pragmatic and helpful and not given to buzzword-driven design.
And yet the date was missed, and the perception at the highest level is that IT is rubbish. How? The question is doubly important because in the real world things hardly ever go this well. Misunderstandings, sickness, inexperience, external delays, and dependencies would all contribute to making this situation worse.
So what exactly did go wrong? Well. Actually. Nothing went wrong.
Human beings got together to accomplish a complex task, the nature of which only revealed itself as they worked on it.
The reason why the CEO thinks it went wrong is:
The whole thing started with a due date and a budget, before anyone fully understood what the task entailed
The details of each delivery task evolved, to the benefit of everyone, including future customers, as they went, but senior management could only see this after it was known
Although an accurate duration was specified in the plan for the software to be written, it was impossible to estimate accurately how long it would take to rewrite, refactor and bug fix
The testing was really good and found most of the bugs, but the impact and dependency of each is impossible to predict in advance
And so on
Of course, it's in the nature of business to set limits first and work to them later (I think that's what they call budgeting) and nobody should expect the business to have the first clue about how hard it is work in the often chaotic world of software development. In fact we need their lack of understanding to get paid handsomely for bridging the gap between their world and ours.
What is frustrating though is how so many companies, faced with this natural but understandably irksome phenomenon, think that handing the problem on to someone else will fix it.
Because our beloved CEO uses this opportunity to talk about Outsourcing & Off-shoring. The let-someone-else-do-it-oh-and-by-the-way-make-it-cheap approach.
Making software isn't like cleaning the office, or doing the accounts, both of which can, with varying results, be outsourced. And they can be outsourced precisely, and only, because they are ancillary, commodity, services and not core to the business. What the CEO isn't seeing is that software is core to the business.
Is that a contentious thing to say? I don't think so, although many certainly disagree with the notion.
Anything central to a business's differentiation, perception, market placement and ultimate commercial success is core.
Gristle and Flint wouldn't, for instance, outsource its marketing department because the external provider would be free to work for competitors, and Gristle and Flint is keen to keep its marketing strategy secret. They also like to hand pick the best marketing staff and not take whoever they get given, relying on an SLA to enforce quality. Brand-led companies, for example, are almost all about marketing, because they openly compete with very similar companies with very similar products. Competing on price could be suicide. In a globalised world all companies compete on what you might call the "extras", like an easy way to buy online, a simple way to manage your account, customer service staff that can fix problems while you're on the phone and seem to have an intimate understanding of you as a customer.
And what do these all need? Software. There isn't a company of any reasonable size on the planet that couldn't improve its offering by having better software to serve its customers in the most efficient and convenient way.
Software isn't secondary to business anymore. It's a means to express who you are as a company. Just like brand and marketing is - conjure up your vision of Google or Amazon, and most of it comes from their user interface. In fact software is much more than just the expression of what a company is, because it's also the vehicle that backs up the promises made by brand and marketing.
Where Brand is the idea, software is the experience.
So. Why. Would. Anyone. Trust. This. To. Someone. Else.
If you're a CEO, by all means get mad when products are delivered late. Shout. Throw things around if you need to. If it's really bad, hire better people, pay enough to get the best and work as closely with them as you would with marketing.
You don't have to understand technology to get the best value from it. That's what the techies are there for.
Just don't make it someone else's problem.