Today’s IoT developer tools have just scratched the surface of what developers really need. The open source teams behind LAMP, SMACK, and DevOps toolchains provide us with a proven playbook that we can use to build a better, more standardized IoT stack and development environment.
A wave of IoT Platforms targeted at developers has emerged over the past year or two. However, ‘Platform’ is a loaded word, if not a confusing one, when talking about developer tools. What makes “Platform + IoT” even more confusing is that it almost implies that an IoT ‘platform’ could solve all of the problems with IoT all on its own.
You need only look at the growing pains of IoT technologies to realize that IoT developer tools are extremely immature and that a consolidated ‘do it all’ platform doesn’t yet exist. If a platform already existed, would many IoT systems still be waiting in limbo to break out of the pre-production pilot phase? Or would millions of devices still be plagued with insecure firmware and hodgepodge networks? A bit of online research will yield numerous references to the immaturity of IoT ecosystem development.
In this article, I want to set the context for how industries mature to really understand what the IoT developers’ future looks like, what tools are needed, and what a ‘platform’ is. Then, I’ll map the industry maturation cycle to what I’ve experienced in the software development industry. Finally, paint a picture of where I see IoT development going.
How Industries Mature Through the Vision, Specialization, and Consolidation Phases
Phase One: Vision
When an industry or product cycle is brand new, the visionary company that leads must be fully vertically integrated. This means that the firm must design, test, build, and sell their product to a market. Since they’re (probably) the only company that has a vision for a new industry or product, they must be fully self-sufficient to bring the product to market. If they are successful and find product-market fit, then the product takes flight and a new industry (or sub-industry) is born.
Eventually, the original vision for the product is limited by the expertise of that one firm. At some point, specialty component players emerge to accelerate the development of the product or industry. Even though these new entrants disrupt full control of the product category from the vertically oriented incumbent, they greatly increase product benefits for the customer and thus increase the total value of the market. Or to put it another way, during the specialty phase in an industry maturity cycle, specialty entrants organize horizontally and collaborate to build the category.
The net result is that through this collaboration, the industry becomes so large that most slices of the market could become large sub-industries. In fact, these sub-industries can be much larger than the original firm could ever have been if it had tried to maintain tight vertical control of their entire product. This is partially due to the increase in customer utility that a steep innovation curve provides.
Phase Two: Specialization
For example, imagine trying to build the first cars in the early 1900s. An auto startup needed to design every aspect from the car from the tires to the engine, from the seats to the structure. Tire, windshield, seat, and electronics—specialty OEMs would eventually innovate components that go into the automobile.
Ford Motor Company inevitably integrated suppliers into their design and manufacturing as the automotive industry organized into horizontal layers. This specialization flourished by the time the Model-T was released. Ford was able to innovate with the modern assembly line. The sum of these parts, in a horizontally organized industry with specialist vendors, helped to create better customer products and drove innovation forward at a rapid pace.
Phase Three: Consolidation
There is a third phase—consolidation—which occurs when an industry matures and innovation flattens. In order to continue to drive value, the major players in the industry adopt a vertical integration strategy, focus on operational efficiencies and consume the horizontally-organized suppliers through direct competition or acquisition. We can pass over this phase for the purpose of this article since developer tooling is still at the early, high-growth, horizontal organizing stage.
Application Innovation Breakthroughs Happen When Developer Tool Stacks Emerge
The cloud software industry is in the horizontally organized specialization phase. However, we typically refer to the horizontal layers as components in a ‘stack’. In the 2000s, the cloud software development industry was accelerated by the LAMP stack. This stack of Operating system (Linux), Web Server (Apache), Database (MySQL, etc.), and Programing Language (PHP, etc.) became the basis that unlocked innovation for most born-in-the-cloud applications that thrive today. Instead of needing to create an entire platform to build a modern app, a product engineer could use the tools in the LAMP stack as a foundation upon which to build.
Another reference stack emerged as specialty technologies began to solve problems in ‘big data’. The SMACK stack includes the essential tools needed to build applications around big data: Analytics (Spark), Datacenter resource management (Mesos), Concurrency in messaging (Akka), Database (Cassandra), Data ingestion (Kafka).
Finally, if we look at DevOps, we have code versioning and repositories (Git), code delivery (Jenkins), and infrastructure as code (Terraform, Chef, etc.), containerization (Docker), container orchestration (Mesos and Kubernetes) and many, many more, which can be put together to form DevOps toolchains.
The Best And Most Successful Developer Toolsets are Open Source
Open Source developer tools were my core focus while I was on the Microsoft Azure team. I worked with dozens of companies that built enterprises around developer tools so that Azure’s Open Source Software (OSS) developers would be empowered to innovate at the application layer—quickly. The dev. tool companies that were most successful not only produced a beautifully simple developer experience but also understood how their products would integrate into broader developer tool ecosystems. This further drove developer productivity when developers built their applications around stacks.
Azure pivoted from a tightly coupled, a vertically integrated Windows app platform into a horizontally organized, open infrastructure provider. Azure exploded into a market leading business that now generates billions in revenue each year, young OSS tool companies matured into unicorns, and app developers got to narrow their focus to their line of business applications.
Cloud Infrastructure-as-a-Service, LAMP, SMACK, DevOps, et al., stacks have enabled a cloud-native app ecosystem by allowing application developers to focus on their line of business apps. As a result, those app companies have created billions of dollars of market value in an exceptionally short time span.
Equally interesting is how each of the layers in these stacks contain numerous examples of wildly successful enterprises that have found a niche horizontal problem and excelled at it. We’ve seen exits from the LAMP, SMACK, and DevOps stacks already. RedHat was recently purchased for $34B, MongoDB IPO’d and now has a $4B market cap, Cloudera and HortonWorks are in the unicorn club, and GitHub was nabbed by Microsoft for $7.5B. There are dozens of other privately held unicorn-scale companies that are thriving as developer tool specialists. Finally, I want to point out explicitly that each of these commercial successes is based on an open source code base.
Not only do IoT stacks need to be better defined and standardized but so do the companies that make up the specialized developer tools for those stacks. I’m certain that over the next several years, dozens of newly formed companies, OSS code bases, and industry standards will emerge as developer toolchains are built for IoT. There is certainly an abundance of untapped demand, stemming from the problems that all developers experience when building and scaling IoT systems.
Where Is IoT in the Maturation Cycle?
It’s just getting started…
Existing products that are classified as ‘IoT + Platform’ are the first entrants in the market. At best, they’re analogous to the very first automobiles (as discussed above). These IoT ‘platforms’ / vehicles solve incomplete and highly generalized problems. No single solution solves the full-stack IoT developer problem. We need specialty new market entrants to build the horizontally organized tools that will eventually be grouped into standardized reference stacks.
It’s probably important to specifically call out the Azure, Google IoT Core, and AWS IoT platforms for why they were built by the infrastructure giants. These products exist because they solve a customer retention problem for cloud providers. The cloud giants are in the business of turning on virtual machines (VMs). IoT devices generate a lot of data.
‘Data gravity’ is a strategic sticking point that helps to keep the lights turned on and the dials spinning in data centers. That being said, I don’t fault the cloud providers for their strategy. I see them as part of the IoT and application stack.
Today’s IoT developer tools are just the tip of the iceberg for what’s to come. Specialized OSS tools will be built. They’ll organize horizontally as IoT matures. Dozens of companies will be built, and billions of dollars of value will be created over the next decade. IoT is undoubtedly as compelling as cloud-native applications and ‘big data’ ecosystem stacks. We should expect similar outcomes and massive value to be created matching or surpassing both the depth and scope we saw with LAMP, SMACK and DevOps tooling companies.
Fortunately, the aforementioned developer tool stacks provide us with a proven playbook that we already know inside and out.