I like what Eric Kidd is saying about the software industry. And I agree, a Microsoft world would be a bleak place to live. But he misses an important question: Do software companies have to exist at all?
I’m not saying software itself doesn’t have to exist, it certainly does and will be critical to the functioning of almost everything in the future. But do companies that make it have to exist? Can’t it just be made out of necessity by people doing other, higher-level, things? In other words, can the programmers of the future just be do-it-yourselfers?
Let’s think about this from a variety of angles. Lawn-mowing. Yard care companies do exist, but they aren’t big companies. The vast majority of people cut their own lawns by buying a lawn mower and just getting out there and doing it. And many people do a great job at it. They just need the right tools, a little knowledge and it’s a pretty easy job. Most Americans don’t need or even want a specialized lawn-mowing company.
Cooking. The vast majority of people are not professional chefs yet people are not starving to death (at least, not in America, at least not significantly) nor are they dying from food poisoning due to improperly-cooked meals. All they need is some information, some ingredients and some time. Some people even make a hobby out of cooking. There are multi-billion dollar businesses devoted to helping people cook. But there is no company you can call to prepare you a steak tonight. Restaurants make food and you could call them food companies, but they’re each very small local businesses. Fast food chains are the exception, but (hopefully) all your meals don’t come from fast food restaurants. With all these people doing their own cooking, are any good at it? Definitely. The best food I eat regularly comes from amateurs.
Writing. When people communicate with the written word, they write the words themselves. Whether it’s a personal or business letter, a newspaper article, a magazine article or a full-blown book, writers do it themselves. There is no “writing company” anyone can hire to write things for them. Many years ago, this was not true. Most people could not read or write so they had to have someone else write for them if they wanted to communicate with written words. Today, there are people who make money from writing for other people (ghost writers, staff journalists, etc.) but, in general, people do their own writing. It’s not terribly easy to write either. It’s even harder than lawn-mowing or cooking. You have to go to school for at least 6 years, maybe even 16 years or more, to learn to write well. And it takes a considerable amount of practice. Yet people do it all by themselves. And no one would ever think of starting a “writing company” today.
So can the average person write their own software? Not today, but in 2031, I suspect they will. Just a few years ago the average person couldn’t edit photos on their computer with any degree of skill, but Adobe introduced a great tool (Photoshop) and now there are many amateurs who handle Photoshop very well (yours truly, even). Why can’t programming tools do the same thing to bring “programming” to the masses? When the average person can make a computer do something interesting by “programming” it, the world will be an amazing place. Imagine going to a friend’s house and seeing a beautifully landscaped yard, having a delicious meal, reading an article on the web written by “a nobody” and using your own software to do it. The first two have happened for years. The third happens today on blogs all over the web. The fourth seems inevitable.
Aside from individuals writing their own utility software or enhancing other software in interesting ways, companies that are not software companies do make software. Most Fortune 500 companies employ some number of programmers to help their business. This software never leaves the company – it’s part of their competitive advantage. In other cases, they employ people to contribute to open source software projects (Apache, Linux, etc.) because they use these software products in-house as well and don’t want to reinvent the wheel for basic infrastructure.
This model makes economic sense for these companies too. It’s cheaper to employ one programmer at $200,000 year (including salary, benefits, office space, supplies, etc) to help others work on this GPL’d software than it is to pay a software vendor, like Microsoft, millions of dollars each year for the same thing. Plus, they have ownership of the software – they are in control of their own destiny.
Although I believe this vision of the world is a positive one, I doubt it’ll be the only one. I think there will be a number of dedicated small software companies, open source will continue to thrive, and the average person will be writing their own software.