Introduction
- How Many Employees Does It Take to Make and Run a Scalable Social Network?
- Leveraging Technology as It Improves
- This Book Is For...
- This Book Is Not About...
- Structure of the Book
- References
The gap between the best software development teams and average software development teams is enormous. The best teams deliver delightful, scalable, stable software to users quickly and regularly. Average teams deliver acceptable software that works most of the time, with months or even years between significant improvements. Many teams even struggle to deliver anything but small, iterative changes, with even those taking surprising amounts of time. Software development and cloud services and tools make developing and deploying software increasingly cheaper, faster, and better—but very few organizations take advantage of these innovations. This book lays out the principles, strategies, and tactics that can propel your organization or teams to world-class output by harnessing a Serverless mindset.
Historically, to deliver web-scale applications with wonderful customer experience, organizations have had to hire expensive, superior talent in many disciplines: networking, infrastructure, systems administration, software architecture, back-end software development, API design, and front-end application design. The demand for these talented employees has always exceeded the number of them, and most companies have simply been unable to acquire talent that would enable them to build products such as a Google or Netflix.
That world has changed, and building web-scale, world-class applications is now possible without needing to hire any “ninja” or “rockstar” developers. Serverless applications leverage the immense talent within cloud providers and managed services to solve the hard problems of building and scaling complex infrastructure and software systems. The average developer today is more capable of delivering the next Gmail or TikTok than the most talented, expensive team of developers 10 years ago. Organizations with solid, attainable development teams can leapfrog their competitors by leveraging a Serverless approach and building applications differently, to deliver like the top-notch software teams in the world.
Perhaps most important, building Serverlessly enables organizations to concentrate on what makes them unique and to focus investments on differentiated projects. Organizations can stop spending enormous amounts of budget on projects that no one except the software development team can even understand. Customers do not care that an organization is running a world-class Kubernetes cluster with hundreds of thousands of lines of customization; customers want their experience to be world class. Just as cloud adoption over the past 15 years has enabled every organization to build web-scale applications, Serverless enables every organization to deliver software as efficiently and effectively as the best software teams in the world.
The winners will be the organizations that change their games by recognizing how to build Serverlessly first. These companies will be able to accelerate the delivery of new products, services, and features for their customers because they will not be focusing on the commodity plumbing that underpins world-class software. They will leverage managed services with the best software developers in the world for services that are non-differentiating for their business, to allow them to focus more on building highly specific interfaces and logic for their customers. Ultimately, they will outpace, outmaneuver, and create unmatchable cost structures over any competitors that are slow to adapt to this new way of working.
How Many Employees Does It Take to Make and Run a Scalable Social Network?
In the recent history of software development, one of the hardest services to build and launch has been a scalable social network. Social networks need to be fast, always be online, and scale to ever-increasing traffic as they become more successful. One of the first popular social networks, Friendster, famously lost its lead because of its inability to scale[1] and was subsequently eclipsed by Myspace and Facebook, both of which had hundreds of employees supporting their builds.
Fast-forward to 2014, and a curiously simple social network called Yo launched. Members could sign up quickly, choose people or organizations to follow, and send only one message: “Yo!” In the first few days after its public launch on both iOS and Android, Yo scaled successfully to more than a million users; more than 100 million “Yo!” messages were delivered before it shut down in 2016.[2]
Yo was built by one developer (initially in about 8 hours) and never needed systems administrators, operations teams, or even full-time developers for its initial ramp existence.[3] Somewhat ironically, all the Yo code was being run and scaled by Facebook, which had acquired one of the first Backend as a Service companies, Parse. Yo leveraged Facebook’s engineering and operational expertise in its Parse division, paying only $100 a month to handle 40 requests per second with 1 million unique push-notification recipients.[4, 5]
You can see this same leverage of managed services by Instagram, which had 13 employees at the time Facebook acquired it for $1 billion.[6] Of the 13, only 3 were full-time software developers; Instagram had no dedicated systems administrators or operations staff.
A relatively short time after Friendster was crushed by its inability to handle web traffic with hundreds of employees, two startups with only a handful of software developers conquered the same challenges with ease (see Figure 1.1).[7, 8] They did so by outsourcing much of the required expertise to newly created managed-service providers, who handled the “running and scaling infrastructure” expertise.[9]
Figure 1.1 Number of Employees Needed to Make and Run a Scalable Social Network over Time
An easy answer to the question posed by the title of this section, then, is that the number of employees needed to make and run a scalable social network approaches zero over time (absent moderation). Many components that both Instagram and Yo had to build are now much easier to handle, around a decade later. Many organizations spend so much time and effort building infrastructure, systems, and code that they could rent at a fraction of the price, with no dedicated personnel and with substantially better performance and uptime. It is amazing that organizations continue to compete on the playing field against Amazon, Google, or Microsoft when they could simply incorporate Amazon or Google’s great players into their own teams by going Serverless.