The Modernization Imperative: Shifting left is for suckers. Shift down instead
Richard Seroter
Director of Outbound Strategy and Engagement
Welcome to the inaugural edition of The Modernization Imperative, also known as ‘TMI’ — an acronym perfectly capturing our mission: to enthusiastically over-share on all things tech. This column from Google Cloud leaders is dedicated to software development, distributed systems, serverless, microservices, DevOps & SRE, platform operations, or whatever buzzword du jour is sparking the columnist’s imagination. Today we hear from Richard Seroter, Director of Outbound Strategy and Engagement for Google Cloud’s Modern Infrastructure team, and who’s been thinking about these topics for the better part of two decades. Remember, dear readers, when it comes to modern infrastructure, there’s no such thing as too much information.
Seated alone in the driver’s seat of a freezing car, ten-year-old Richard thought he was a king. “Look at me, I’m driving!” I would exclaim to the fictitious passenger next to me. It was only years later that I realized my crafty mother would “let” me start our car. I was too enthralled by my shockingly-good driving skills to realize that I was doing a job she didn’t want to take on: warming the car engine for our morning commute.
Today? Nothing’s really changed with the exception of my awareness. Forty-something-year-old Richard is frantically jabbing a self-checkout touch screen, looking up the code for “seedless grapes” at the grocery store while enjoying the “privilege” of scanning and bagging his own produce.
From my mother to my local market to software development, redistributing workloads from one group to another is a critical step in optimizing resources. Today, we ask our developers to “shift left” and adapt to evolving methodologies. But that’s a heavy burden. Rather than force more on our developers, we can instead maximize their talents by leveraging the full breadth of their available tools and services.
To be sure, “shift left” — the practice of incorporating security and QA reviews earlier in the development process — is a perfectly sound idea. But over the years, more types of work not traditionally part of a developer’s job description have been sliding left in the name of empowering “full stack engineers.” And that needs to stop.
[Mini, but justified, rant: There are like nine actual “full stack engineers” on planet Earth. Virtually nobody writes a frontend in React, sets up Kubernetes, configures a RabbitMQ instance, provisions space on the SAN, and lights up the top-of-rack switch. Today’s developers are asked to know web frameworks, architecture patterns, testing strategies, build systems, multiple types of databases, caches, automation tools, container orchestrators, L4-L7 networking concepts, SaaS APIs, monitoring systems, numerous public clouds, and oh, maybe a little machine learning. I just flipped through Indeed.com, and it’s remarkable to see what we’re asking of junior and senior developers. It’s too much.]
Shift down!
As an industry, we need to help out. First, instead of telling devs (and their managers!) to shift everything left, we need to encourage them to “shift down” by taking full advantage of the technology available to them, and push more workloads down onto the platforms they’re already using. Compress your tech stack. Don’t force people to know so much to do their jobs. Offer platform abstractions. I recently did a talk for a customer about “how Google does DevOps' and it highlighted how many platforms we offer our engineers. We offer managed experiences for coding, testing, building, releases, rollouts, hosting, alerting and more. Dedicated Google teams support these critical platforms so our product engineers can focus on what they need to do without knowing about or operating a “full stack” of infrastructure. Every organization should be doing the same.
Rather than demanding more from their current engineering resources — learning new languages, platforms, and clouds — technology leaders need to stand up platform engineering teams that treat their platforms like products. Optimization begins with reducing the cognitive load on developers, and removing unnecessary obligations that distract them from innovating. Concurrently, providing them with the tools and infrastructure necessary to leverage the power of AI and large language models (LLMs) means your developers are devising rather than grinding. We’re currently spinning up more coaching and materials to help everyone embrace platform engineering, so stay tuned.
Empowerment through opinions
The second thing we can do as cloud providers is bake opinions into our products. Even if developers are compelled to use a wide range of products and services to do their job, we can meet them where they are with universal “shift down” principles that share the infrastructure management load. I like that GKE Autopilot gives me a properly hardened, managed Kubernetes cluster on demand, with no hindrance to my workflow. If you need to use Kubernetes, you should do it the Autopilot way, and remove all the hassles and heartache of provisioning a cluster that diverts your time from developing. Want a secure supply chain? Don’t ask a live human to parse Supply chain Levels for Software Architects (SLSA) manifests. Automatically add attestations to builds (like we do with Cloud Build) and make the runtime checks a… checkbox. We do. Make services highly-available by default instead of asking a developer to figure that out. Our services like Pub/Sub, Firestore, Spanner, Cloud Storage, or Cloud Logging all “just work” that way. Opinions can also be at a lower level where we help someone parse CloudEvents in their code instead of forcing them to figure that out. Using tools such as Generative AI App Builder, developers can quickly ship engaging new experiences such as digital assistants, custom search engines, chat interfaces, and more. Providing customers with opinionated but extensible frameworks that they can use to maximize their technology investment is the key to a successful (cloud) experience.
At Google Cloud, we’re helping people use incredible technologies to build amazing things. To achieve this, we create tools and services that provide developers with a secure-by-design hardware and software experience. This lets them implement many "shift left" best practices by default, accelerating development. Efficiently assigning workloads ensures engineering resources remain highly available and perform at their peak when you need them most.
Being a software developer in 2023 is truly remarkable, yet it comes with one of the most significant cognitive loads of any profession. Rather than burdening development teams with ever-growing responsibilities in the software lifecycle, we assist our customers in establishing a platform practice that fosters a sustainable and innovative engineering culture. By adopting "shift down" practices and fully leveraging the benefits of a technology stack, innovation flourishes through well-configured automations and managed services. As we stand on the precipice of a new phase of AI-assisted technologies, truncating code creation for developers turning to natural language chatbots for real-time guidance, we are empowering developers everywhere to drive business and technological success. And unlike ten-year-old Richard, they may even get somewhere.