Why Are Companies So Bad At Deploying Capital For Software?
Think about it. Obviously, there are some companies that are great at trading cash for software—Facebook, Apple, Amazon, Google, etc. But, given the value that those companies are able to capture by doing so, it is extremely odd that more companies haven't figured out how to do it yet. Banks, big-box retailers, insurance companies, airlines: their software all sucks, more-or-less. (They are admittedly improving, but at a glacial pace.)
The facile answer points to complexity as the main barrier, but I'm not sure I buy that. Manufacturing processes, construction projects, and accounting are also complex, and yet they are routinely and efficiently procured by companies all around the world, every day, in exchange for money.
Here are my best guesses as to why this is the case:
- Businesses are inclined to think of software requirements as “projects to be completed” rather than “departments to be staffed.” Software products are rarely “finished,” especially within the context of an evolving company. The great software giants understand this (Google is said to rewrite their entire codebase every few years) but dinosaurs don't.
- Management does not have a very good sense for where the biggest gains may be realized from software. The software giants are all run by, well, software giants. I think anyone in the core leadership team at Facebook could serve as the CIO of any F500 company, while the inverse is not true. This is not a disparagement of intelligence or ability; it's a question of focus and education. Leaders need to understand not just that software is valuable, but where and how.