Software Engineering Principles
Channel: CoreCppIL
Date: 2020-10-15

By Titus Winters, presented at Core C++ online meetup, September 2020 [https://www.meetup.com/CoreCpp/events/273364861/].

What is the secret to software engineering at Google? Over the years, we’ve come to recognize three key principles that guide our practices and decisions: Time, Scale, and Tradeoffs. We recently published a book with O'Reilly on those principles, and we'll share the key ideas here.

Software engineering and programming are related but different problems. If programming is about producing code, software engineering is about maintaining that code for the duration of its usefulness. It is about the practices, policies, and decisions that support robust and reliable code. It is about building for growth and for the ability to manage change, sustainably.

At Google, we have learned many lessons related to the sustainability of software. Google arguably maintains one of the largest codebases ever. The expected lifespan of the codebase is at least another couple of decades. We’ve needed to figure out how to operate at a scale previously unattempted for a timespan longer than most others have considered. Learning from the difficulties that we have encountered along the way while wrangling with this unprecedented problem, we have developed practices around time, scaling, and evidence-based decision making. This is what has enabled us to operate as we do.

This talk will explore the themes of time, scale, and tradeoffs in the context of sustainable software engineering. We will discuss the impact that each of these factors has on the process of software development and maintenance and how Google has shaped its engineering practices to take these principles into account.

*Titus Winters* is a Senior Staff Software Engineer at Google, C++ Libraries Lead, and the founder of Abseil (http://abseil.io).
He is an esteemed C++ Standards Committee member and the former chair of Library Evolution Working Group (design for the C++ standard library).
Titus is also a teacher and an author of Software Engineering at Google.