Software is eating the world, and doing so using smaller and smaller teams. WhatsApp was able to disrupt the global SMS industry with only a few dozen engineers. Small teams can have a big impact because software development (and deployment) has improved dramatically over the past decade. Some improvements include:
- Infrastructure. Deploying a commercial website ten years ago required significant upfront capital. Now you can spin up virtual servers in minutes. Upfront costs are close to zero and ongoing costs are orders of magnitude lower than before.
- Services. Startups created simple APIs that abstract away complex back ends. Examples: Stripe (payments), Twilio (communications), Firebase (databases), Sift Science (fraud).
- Open Source. Open source dominates every level of the software stack, including operating systems (Linux), databases (MySql), web servers (Apache), and programming languages (Python, Ruby). These are not only free but generally also far higher quality than their commercial counterparts.
- Programming languages. Developers have steadily marched upwards from Assembly to C to Java to, today, scripting languages like Ruby and Python. Moore's Law gave us excess computing resources. We spent it making developers more effective.
- Special-purpose tools for non-programmers. These tools let non-programmers create software in certain pre-defined categories, thereby lowering costs and reducing the demand for developers. Examples: Shopify (e-commerce), Wordpress (blogging), and Weebly (small business websites).
- General-purpose tools for non-programmers. In the pre-Internet era, tools like Hypercard and Visual Basic allowed hundreds of millions of semi-technical people to become software developers. Since then, there hasn't been much work in these areas, but from what I've seen that might change soon. By allowing more people to program, these tools act as a force multiplier for the software industry.
In all likelihood, the demand for software development will continue to dramatically outpace the supply. If so, "software eats software development" will be an exciting area going forward, with lots of valuable startups created in the process.