Advance warning: while this article is about business and the future, it gets a bit technical in nature. Apologies to those without engineering backgrounds.
Over the last few years, we have seen a trend towards reduced-cost and commoditization of hardware. You can buy a standard programmable mini-computer, an Arduino, on Amazon for around $30. You can buy a programmable quadcopter consumer drone for $300. The cost of customizable hardware has come down dramatically, to the point where individual engineers can afford to buy them and design products that can eventually be produced and sold. Hardware development that used to be available only to well-funded or large companies, or wealthy individuals, is becoming available to the masses.
But the masses were not ready. Because the ability to engineer, design and build products requires two prerequisites, not one:
- Cost: The cost of the raw materials, both those used for development and for actual production and delivery, must be acceptable.
- Skills: The skills required to work with the raw materials must be acquirable.
Looking at the cloud infrastructure world, services developed as follows:
- Buy your own servers: only a few could afford to spend the $10k on a server (now much less) plus the hosting, rack, power, network; led to:
- Lease your servers, which still had the same fully loaded costs, but spread the payments; led to:
- Virtual servers, which allowed one to lease/rent a fraction of a server; led to:
- Infrastructure-as-a-Service (IaaS), Amazon Web Services, which allowed one to rent exactly as much computing power as one needed.
The problem was that all of the above still required the fairly limited skills of a systems engineer and/or administrator, as well as database administrator, and even network administrator, to set them up. Each step made them somewhat easier, but in the end, you needed the skills to run the systems. Those skills are somewhat more diverse and more complex (subject to dispute) than those of developing a Web application that does something useful for customers. All of the above steps primarily addressed cost issues, but, for the most part, the skills issue remained. Larger shops are likely to need and have those skills anyways, but for the far, far larger market of small companies and individual developers, you needed to learn all of the infrastructure skills or pay good money for someone else to do them.
Platform-as-a-Service (PaaS) services stepped in to address the skills: Google App Engine (GAE), Heroku, nodejitsu, etc. These firms recognized that most of the administration skills are repeated and identical across all of the installations. And so, they standardized the services and wrapped them up in tools with which the average developer was comfortable . Lo and behold, for the overwhelming majority of small development and software shops and almost all individual developers, a bridge over the “gorge of skills” was built by eliminating the need for those skills at all. This is the democratization of Internet infrastructure: putting it in the hands of the masses.
In the hardware world, we are standing towards the right edge of the affordability scale, but at the precipice of the gorge of skills. When I can buy a fully programmable micro-computer for $30 that can do, well, anything, and can be the basis of a new smart lamp, or smart power meter, or remote flight controller, or doorbell system, cost is no longer an issue. But the skills to program these items are still limited.