Google-Scale Development 🧗🏻♀️
In previous weeks, I wrote about the basic elements of invention or how people create things by copying, then combining and ultimately transforming. In the early years of the software development journey, developers should strive to understand and implement existing, proven processes instead of creating new ways to develop. This will allow to, later on, combine and adapt these models to suit development needs better.
According to John Micco, in 2012, Google had around 15,000 developers in 40+ offices worldwide. Currently, this figure is unclear (see note below.) However, what’s noteworthy about this is that 95% of these thousands of developers commit changes to exactly one monolithic repository. This trunk base development strategy was adopted by Google in 1995. And, ever since then, the model has incorporated different support systems to improve their workflow, including streamlined code review and testing coverage.
Google’s development model it’s not for everyone. However, the support systems incorporated into their workflow can serve any size of development. For example, the code review process can serve to mitigate the risk associated with developers changing code. And, the testing coverage tools can provide objective code testing metrics with actionable data.
Another example of a support system is Netflix’s Chaos Engineering which is “the disciplined approach of identifying failures before they become outages.” By implementing proactive testing and injecting failure into production systems, a development team can address the uncertainty of failure. This system is available and ready to implement through Gremlin’s Chaos Monkey guide for Engineers or Netflix’s Chaos Monkey software. These tools allow developers to strive for resilient and anti-fragile services without building a solution from scratch.
Note: Google was restructured in 2015, and now it’s one of the subsidiaries in the conglomerate Alphabet Inc. (X, Sidewalk Labs, DeepMind). This means that Google’s Annual Report is filed alongside other companies. Therefore, nowadays, it’s unclear how many developers work at Google per se. However, previous employees from Google report that the current figure is around 20,000 developers.
Before, I used to think that being a software development apprentice in 2020 felt particularly overwhelming because of the endless wiki of things to learn. However, in the past week I have been thinking that developing in 2020 has a significant upside. By standing upon the shoulders of giants I can implement tested tools, software, methodologies, and support systems that have emerged over the years.
Then, what’s left for me to do?
My job now it’s to learn, understand and implement these technologies. Eventually, even transforming them to suit future developing needs.