In the presentation I gave last week, I talked about the concept of Green Field Thinking – imagine what you would do if you had no constraints imposed upon you by way of legacy, and then work out what you can learn from that in the real world. The here and now can provide a huge block to thinking about how we can change things – and this Green Field approach hopefully can help people appreciate (rather than just react against) radical ideas, and then learn from them accordingly.
Continuing on that Green Field theme, if one were to set up a new organisation today from scratch, what boundaries would be placed on choosing whether to develop software in house or not? My feel now is that, in an ideal world, software should only be generated where it directly generates revenue.
Let’s unpack that a bit.
There are plenty of models from within the realm of Enterprise Architecture and IT strategic management where 2×2 matrices define appropriate approaches to outsourcing, buying off the shelf products and services, or building from scratch (you can see my own interpretation on a whiteboard session here: http://www.youtube.com/watch?v=ATwNGNdZLjQ). My experience has see that those focus on the idea of “core business” and “market differentiation” and that’s where things get murky… whether something core to your business or not is remarkably subjective. More importantly, defining something as core today, and therefore building software around it, can lock your organisation into uncompetitive positions when you need to pivot into a new direction in the future.
Imagine, say, you run a taxi firm. You see that you can steal a march on your opposition by building your booking and dispatch system so that it is better than all your competitors. You implement, provide a better service to your customers, and therefore gain advantage over other cab companies. That’s great.
However, there are millions of cab companies across the world, so after a while a number of software companies start building booking and dispatch systems and selling them as commercial services. The software that you invested in so heavily is now out-dated and your competition now have access to better systems without the overhead of the management of the software… your competitive advantage has switched to being a disadvantage because your are a cab firm, not a software house…
So this is where my Extreme Enterprise Architecture position comes in… if you want to build software then it should directly generate revenue. In the taxi company example, build the software from day one in a way that it’s designed as a service to sell to others – a concept I’ve written about in the past here with the idea of spinning software initiatives out as real start ups. Skunkworks, or R&D ideas are fine, but incubate them, manage them as a portfolio, and set targets for how many ideas will be killed off because not all of them will work out.
There are some examples of software development that is revenue generating but not sold or designed as a product or service – some of the algorithmic trading code used by investment banks springs to mind – but those cases are few and far between, and getting rarer as the commoditised world of Cloud services continues to reduce the cost of successfully delivering software as a service on a global scale.
Remember, this is Green Field thinking… the legacy that most organisations hold will determine that certain software just has to be built in house. But what projects would have made the cut if this Extreme Enterprise Architecture had been adopted, and how many will in the future? What competitive advantage could be protected, costs saved, and revenues generated as a result?