While Stripe is a widely admired company for things like its creation of the Sorbet typer project , I personally think that Stripe’s most interesting strategy work is also among its most subtle: its willingness to significantly prioritize API stability. This strategy is almost invisible externally. Internally, discussions around it were frequent and detailed, but mostly confined to dedicated…
In How should Stripe deprecate APIs? , the diagnosis depends on the claim that deprecating APIs is a significant cause of customer churn. While there is internal data that can be used to correlate deprecation with churn, it’s also valuable to build a model to help us decide if we believe that correlation and causation are aligned in this case. In this chapter, we’ll cover: What we…
Many hypergrowth companies of the 2010s battled increasing complexity in their codebase by decomposing their monoliths . Stripe was somewhat of an exception, largely delaying decomposition until it had grown beyond three thousand engineers and had accumulated a decade of development in its core Ruby monolith. Even now, significant portions of their product are maintained in the monolithic…
One of the most memorable quotes in Arthur Miller’s The Death of a Salesman comes from Uncle Ben, who describes his path to becoming wealthy as, “When I was seventeen, I walked into the jungle, and when I was twenty-one I walked out. And by God I was rich.” I wish I could describe the path to learning engineering strategy in similar terms, but by all accounts it’s a much…
In Uber’s 2014 service migration strategy , we explore how to navigate the move from a Python monolith to a services-oriented architecture while also scaling with user traffic that doubled every six months. This Wardley map explores how orchestration frameworks were evolving during that period to be used as an input into determining the most effective path forward for Uber’s…
One of the recurring challenges in any organization is how to split your attention across long-term and short-term problems. Your software might be struggling to scale with ramping user load while also knowing that you have a series of meaningful security vulnerabilities that need to be closed sooner than later. How do you balance across them? These sorts of balance questions occur at every level…
We’ve read a lot of strategy at this point in the book. We can judge a strategy’s format, and its construction: both are useful things. However, format is a predictor of quality, not quality itself. The remaining question is, how should we assess whether a strategy is any good? Uber’s service migration strategy unlocked the entire organization to make rapid progress. It also led…
Often you’ll see a disorganized collection of ideas labeled as a “strategy.” Even when they’re dense with ideas, such documents can be hard to parse, and are a major reason why most engineers will claim their company doesn’t have a clear strategy even though in my experience, all companies follow some strategy, even if it’s undocumented. This chapter lays out a…
Even the best policies fail if they aren’t adopted by the teams they’re intended to serve. Can we persistently change our company’s behaviors with a one-time announcement? No, probably not. I refer to the art of making policies work as “operations” or “strategy operations.” The good news is that effectively operating a policy is two-thirds avoiding common…
In order to reach this final chapter of the AI Companion to Crafting Engineering Strategy , you’ve co-written and revised a strategy with an LLM. We’ve also used both in-context learning examples and Model Context Protocol servers to prime an LLM to work on complex, domain-specific problems such as creating a systems model or Wardley map. The two biggest remaining questions to engage…
When I was drafting the first chapters of Crafting Engineering Strategy , I thought I might write a chapter on GitLab’s strategy. GitLab is interesting because it has publicly shared so much of how they operate, that I figured it might be possible to write an interesting strategy document about them despite never having worked there. In the end, I decided not to write that chapter, but I did…
Crafting Engineering Strategy has a chapter on systems modeling along with a number of examples. Those examples focus on using the lethain/systems python library to generate models using a Jupyter notebook , with examples in lethain/eng-strategy-models . That is a reasonable approach, but it also requires learning the systems library’s syntax for modeling. This chapter looks at how to use an…
In the last chapter, we co-wrote a strategy with an LLM . Now, we’re going to review that strategy, looking for areas that we can improve. Ideally, every organization would have someone ready to provide feedback on your documents quickly, but that’s often not the case whether they’re busy or simply don’t exist, and these techniques are a useful stand-in during those cases.…
With your environment working, the obvious task to start with is co-writing a strategy document with an LLM. A good strategy document is not just readable, but has a clear view of your current challenge and how to address it. This chapter will cover: Using meta prompting to optimize our initial prompt for writing a strategy Incrementally building a strategy document by prompting each step with our…
There are many things that LLMs are not particularly good at, and generating a great engineering strategy is one of them. If you ask an LLM to generate your company’s engineering strategy, I’m quite confident you are going to be disappointed with what it generates. However, I am extremely confident that an LLM is already an excellent companion to help you develop an effective…
As someone who writes books, I am continually grateful to the fact that there are people who buy a book, and then actually read that book. It’s equally clear to me that there’s a second, large group who like the idea of books, but would much prefer a project-based approach to learning the book’s content. As the technology sector applies Large Language Models (LLMs) to everything…
In 2015, the Mini Sky City skyscraper, with 57 floors, was built in Changsha, China, in 19 days. Driving to work over the past few years, I’ve watched a nine-story building in San Francisco get built over three years. There’s some argument that Mini Sky City’s record isn’t legitimate because it relied heavily on modular, pre-built architecture, but I can assure you that the…
This book’s introduction started by defining strategy as “making decisions.” Then we dug into exploration , diagnosis , and refinement . Those are three chapters where you could argue that we didn’t decide anything at all. Clarifying the problem to be solved is the prerequisite of effective decision making, but eventually decisions do have to be made. Here in this chapter…
If you talk to enough aspiring leaders, you’ll become familiar with the prevalent idea that they need to be promoted before they can work on strategy. It’s widely accepted as true, but I’ve found this idea fundamentally incorrect: you can work on strategy from anywhere in an organization. It just requires different tactics to do so. Both Staff Engineer and The Engineering…
Discussions around acquisitions often focus on technical diligence and deciding whether to make the acquisition. However, the integration that follows afterwards can be even more complex. There are few irreversible trapdoor decisions in engineering, but decisions made early in an integration tend to be surprisingly durable. This engineering strategy explores Stripe’s approach to integrating…
Once you’ve written your strategy’s exploration , the next step is working on its diagnosis. Diagnosis is understanding the constraints and challenges your strategy needs to address. In particular, it’s about slowing yourself down from jumping to solutions before fully understanding the nuances and constraints of the problem. If you ever find yourself wanting to skip the diagnosis…
A surprising number of strategies are doomed from inception because their authors get attached to one particular approach without considering alternatives that would work better for their current circumstances. This happens when engineers want to pick tools solely because they are trending, and when executives insist on adopting the tech stack from their prior organization where they felt…
At some point in a startup’s lifecycle, they decide that they need to be ready to go public in 18 months, and a flurry of IPO-readiness activity kicks off. This strategy focuses on a company working on IPO readiness, which has identified a gap in internal controls for managing user data access. It’s a company that wants to meaningfully improve their security posture around user data…
While I frequently hear engineers bemoan a missing strategy, their complaints rarely articulate why the missing strategy matters. Instead, it serves as more of a truism: the economy used to be better, children used to respect their parents, and engineering organizations used to have an engineering strategy. This chapter starts by exploring something I believe quite strongly: there’s always…
In my career, the majority of the strategy work I’ve done has been in non-executive roles, things like Uber’s service migration . Joining Calm was my first executive role, where I was able to not only propose but also mandate strategy. Like almost all startups, the engineering team was scattered when I joined. Was our most important work creating more scalable infrastructure? Was our…
Some people I’ve worked with have lost hope that engineering strategy actually exists within any engineering organizations. I imagine that they, reading through the steps to build engineering strategy , or the strategy for resourcing Engineering-driven projects , are not impressed. Instead, these ideas probably come across as theoretical at best. In less polite company, they might describe…
In early 2014, I joined as an engineering manager for Uber’s Infrastructure team. We were responsible for a wide number of things, including provisioning new services. While the overall team I led grew significantly over time, the subset working on service provisioning never grew beyond four engineers. Those four engineers successfully migrated 1,000+ services onto a new, future-proofed…
At the core of Uber’s service migration strategy (2014) is understanding the service onboarding process, and identifying the levers to speed up that process. Here we’ll develop a system model representing that onboarding process, and exercise the model to test a number of hypotheses about how to best speed up provisioning. In this chapter, we’ll cover: Where the model of service…
The first time I heard about Wardley Mapping was from Charity Majors discussing it on Twitter. Of the three core strategy refinement techniques , this is the technique that I’ve personally used the least. Despite that, I decided to include it in this book because it highlights how many different techniques can be used for refining strategy, and also because it’s particularly effective…
In Jim Collins’ Great by Choice , he develops the concept of Fire Bullets, Then Cannonballs . His premise is that you should cheaply test new ideas before fully committing to them. Your organization can only afford firing a small number of cannonballs, but it can bankroll far more bullets. Why not use bullets to derisk your cannonballs’ trajectories? This chapter presents a series of…
In How should you adopt LLMs? , we explore how a theoretical ride sharing company, Theoretical Ride Sharing, should adopt Large Language Models (LLMs). Part of that strategy’s diagnosis depends on understanding the expected evolution of the LLM ecosystem, which we’ve built a Wardley map to better explore. This map of the LLM space focuses on how product companies should address the…
In 2020, you could credibly argue that ZIRP explains the world , but that’s an impossible argument to make in 2024 when zero-interest rate policy is only a fond memory. Instead, we’re seeing a number of companies designed for rapid expansion, learning to adapt to a world that expects immediate free cash flow rather than accepting the sweet promise of discounted future cash flow. This…
While I was probably late to learn the concept of strategy testing , I might have learned about systems modeling too early in my career, stumbling on Donella Meadows’ Thinking in Systems: A Primer before I began my career in software. Over the years, I’ve discovered a number of ways to misuse systems modeling, but it remains the most effective, flexible tool I’ve found to…
One of the trademarks of private equity ownership is the expectation that either the company maintains their current margin and grows revenue at 25-30%, or they instead grow slower and increase their free cash flow year over year. In many organizations, engineering costs have a major impact on their free cash flow. There are many costs to reduce, cloud hosting and such, but inevitably part of the…
The How should you adopt LLMs? strategy explores how Theoretical Ride Sharing might adopt LLMs. It builds on several models, the first is about LLMs impact on Developer Experience . The second model, documented here, looks at whether LLMs might improve a core product and business problem: maximizing active drivers on their ridesharing platform. In this chapter, we’ll cover: Where the model…
In How should you adopt Large Language Models? (LLMs), we considered how LLMs might impact a company’s developer experience. To support that exploration, I’ve developed a system model of the software development process at the company. In this chapter, we’ll work through: Summary results from this model How the model was developed, both sketching and building the model in a…
If I could only popularize one idea about technical strategy, it would be that prematurely applying pressure to a strategy’s rollout prevents evaluating whether the strategy is effective. Pressure changes behavior in profound ways, and many of those changes are intended to make you believe your strategy is working while minimizing change to the status quo (if you’re an executive) or…
From their first introduction in 2005 , the debate between adopting a microservices architecture, a monolithic service architecture, or a hybrid between the two has become one of the least-reversible decisions that most engineering organizations make. Even migrating to a different database technology is generally a less expensive change than moving from monolith to microservices or from…
Even if you believe that strategy is generally useful, it is difficult to decide that today is the day to start writing engineering strategy. When you do start writing strategy, it’s easy to write so much strategy that your organization is overwhelmed and ignores your strategy rather than investing time into understanding it. Fortunately, these are universal problems, and there are a handful…
As discussed in Components of engineering strategy , a complete engineering strategy has five components: explore, diagnose, refine (map & model), policy, and operation. However, it’s actually quite challenging to read a strategy document written that way. That’s an effective sequence for creating a strategy, but it’s a challenging sequence for those trying to quickly read and…
Whether you’re a product engineer, a product manager, or an engineering executive, you’ve probably been pushed to consider using Large Language Models (LLMs) to extend your product or enhance your processes. 2023-2024 is an interesting era for LLM adoption, where these capabilities have transitioned into the mainstream, with many companies worrying that they’re falling behind despite the fact that…
This book’s Introduction started with a commitment to grounding its approach in concrete case studies. In this section, we’re living up to that commitment by presenting ten real-world strategies I’ve directly worked on or observed. These strategies take the somewhat abstract concepts we’ve covered thus far and materialize them into concrete ideas, hopefully making them…
Perhaps the most important piece of the Steps to build an engineering strategy is strategy refinement. As we already worked through the overview of strategy refinement in the “Steps” section of this book, the goal of the “Refinement” section is to go into much greater detail about the three core mapping techniques: strategy testing , systems modeling , and Wardley mapping .…
I’ve worked alongside many talented people who spent years waiting for a chance to finally “do strategy.” My hope is this book convinces you—and maybe them—that waiting is optional. Strategy isn’t reserved for executives. It’s the art of making thoughtful decisions, and is accessible to everyone–including you. Even if you’d prefer to avoid strategy, it’s…