My first job was working for Neville Jordan, one of New Zealand’s flying kiwis (my last job was working for Rod Drury, another flying kiwi). I worked in the embedded software team while studying computer science and I focused on problems like preventing deadlock and switching big endian with little endian — depending on the chip being used. Our code used to take an hour or more to compile and the day we discovered that we could hack the company network and get the internet direct to our desktops was very exciting!
One of my strongest memories though is the password to the company intranet: wdscsm (“why does software cost so much”). And I’ve been asking myself that question ever since.
As an industry, we’ve come a long way in the last 20 years. We’re starting to get really good at building software. But I hate to say it, we’re often just really good at building the wrong software.
Software used to cost a lot because we had basic tools and we spent our time worrying about the order of bits and memory leakage. Live debugging was a thing because it took so long to recompile.
Now we have fantastic tools, great high level languages and libraries and yet software is still too expensive.
So, how can we lower the cost of building software?
My goal is not to build cheap software, but I know that as I continue to solve difficult problems, hone my ability to take products to market and successfully execute business models — then I’ll be able to significantly lower the cost of bringing new software solutions to market.
Elon Musk knows that to reach Mars, the cost of launching rockets has to drop by 100x and rockets need to be re-usable so that 10,000 vessels can be launched.
It’s the same with software. We’re used to using these mega-million dollar apps — Uber, Facebook and Xero, but the day is coming when every small business will have their own app, their own bot, their own differentiation and innovation over their competitors.
But that day won’t come until we, the software industry, can honestly answer: “why are we so good at building the wrong software really well?” Once we can answer that, then perhaps we can lower the cost of building good software.
The great book Running Lean tries to address this by ensuring we test our assumptions early and often — but even this is expensive when the underlying cost of R&D is expensive. It really comes down to: how do we do R&D cheaper? How do we innovate faster and cheaper?
We’ve seen this problem solved before — operating systems were introduced so we could write software where our target customers already have a platform to run it. The Cloud is the next iteration of this, where we wrote software that our customers can run in a browser.
Today, APIs are necessary because we have a whole lot of disparate apps. But imagine if you could only run one app per computer — and connect all your computers together with cables so they could share data. It’s a broken model.
The next game changer will be when apps become the new operating system. Salesforce has already shown us that this works. For the cost of innovation to drop, we need to be able to deliver apps on a OS that our target customers are already using. But these OS’s are shifting from being Windows and OSX to being your bank, your accounting system , your CRM or project management system.
Over the next few months we’ll explore this shift further in an attempt to better understand how we can lower the cost of innovation and answer the question:
Why does software cost so much?
Because when we can lower the cost of software development, the opportunities are endless.