But What do we Mean by Software Company?
To be a software company, you're going to need to employ software engineers and other professionals. Applying that logic to a large number of companies at once, and looking at how existing software companies are set up, we find a few large problems.
Google as an Example
In my talk at Velocity, titled The Two Sides of Google Infrastructure for Everyone Else, I argued both for and against the idea of wholesale adoption of Google-like software and development/operations practices. What makes Google a software company? Even though they derive the lion's share of revenue from advertising, it's easy to argue that Google is a software company. But what does that look like?
From the Google Annual Report 2015:
61,814 full-time employees: 23,336 in research and development, 19,082 in sales and marketing, 10,944 in operations, and 8,452 in general and administrative functions
So, roughly 50% of Google is involved in building or running software. Glassdoor says salaries for engineers at Google average about $126,000-$162,000.
The US Bureau of Labor Statistics says that in 2014, the number of computer programming jobs in the US was 1,114,000, with median pay in 2015 of $100,690 a year. The total number of jobs in the US is about 143 million, with the average wages at $44,569.20 according to the Social Security Administration.
The Google Annual Report also states:
Competition for qualified personnel in our industry is intense, particularly for software engineers, computer scientists, and other technical staff
So, quick summary:
- Software engineers are expensive relative to others employees.
- Demand for the best engineers means even higher wages.
- There isn't a large surplus of unemployed software engineers.
Now the data above is mainly from US sources, although the Google data is from an international company with offices around the world. My experience says this is likely similar in Europe. Looking into data for India and China would be interesting.
One obvious problem is short-term supply and demand. Everyone wants experienced software folks for their transformation effort. But the more organizations that buy into the everyone is a software company story, the greater the demand for a finite supply of people. For most, that means you'll to able to find fewer people that you want because of competition. And you'll afford even fewer people because all that competition pushes up salaries.
I've seen that firsthand while working for the UK Government. People occasionally complained that the government was hampering commercial organizations' growth by employing lots of developers and operations people in London.
You're also immediately in competition for software professionals with existing software companies. Given the high salaries, most of those employers already have developer friendly working environments and established hiring practices suited to luring developers to work for them. This sort of special case is hard for large companies without an existing empowered developer organisation. I saw a lot of that at the government as well.
But the real macro problems are much more interesting. Even if you think 50% is a high mark for the ratio of software folk to others, you probably agree you need a lot more than you have today. And those developers just don't exist today to allow everyone to be a software company. Nor would I argue is higher education in the near-term producing enough skilled people to fill that gap tomorrow. So, what happens?
- Does everyone sort-of become a software company, but not quite?
- Do most organizations struggle to hire and maintain a software team and see the endeavour fail?
- Do increasing numbers of developers end up working for a small number of larger and larger software companies?
- Does outsourcing bounce back, adapt, and demonstrate innovation and transformation qualities to go along with the scale?
- Are countries like India or China able to produce enough software engineers at scale to allow their companies to act on everyone becoming a software company?
- Will we see clear winners and losers, i.e. companies that become software companies and accelerate away from those that don't?
The above is not a detailed analysis and undoubtedly has a few holes. It also doesn't overly question the advantage of being a software company or really question what we actually mean by everyone. But I think the central point holds: Everyone is NOT a software company, nor will everyone be a software company anytime soon.