How Big Tech Runs Tech Projects and the Curious Absence of Scrum
👋 This is Gergely with this month’s free edition of the Pragmatic Engineer Newsletter. In every issue, I cover challenges at big tech and high-growth startups through the lens of engineering managers and senior engineers. Issues you’ve missed this month, that subscribers have access to:
Subscribe to get issues every week. Many subscribers expense this newsletter to their team’s learning and development budget. The launch offer of $100 for an annual subscription is ending 30 Sep - claim it before it’s gone.👇 How Big Tech Runs Tech Projects and the Curious Absence of ScrumA survey of how tech projects run across the industry highlights Scrum being absent from Big Tech. Why is this, and are there takeaways others should take note of?
Project management is a topic most people have strong opinions on, and I’m no exception. To answer this question, I pulled in help from across the industry as well. In this issue we’ll cover:
Before we jump in, here’s a personal story about why it’s sometimes hard to put a finger on how important project management approaches are. Skype, Scrum, and the Reminder of What MattersWhen I joined Skype in 2012, the company had gone all-in on Scrum. All engineers and product people were sent to best-in-class Scrum training, facilitated by one of the Agile manifesto’s founders. Skype went all-in on Scrum, moving all teams to this methodology over a few quarters. And the move to Scrum was seen as a success at Skype. We went from shipping the flagship Windows app once-a-quarter at best, to monthly shipping. Most teams delivered something every 2-4 weeks. Teams rotated Scrum Master roles, agile coaches dropped in to give feedback on the teams, and Microsoft – which had just acquired Skype – was interested in taking inspiration from the speedup in delivery. However, while Skype moved over to Scrum, a competitor was executing ruthlessly: Whatsapp. Though a much smaller organization, Whatsapp chipped away market share month after month, becoming the leading communications platform. Unlike Skype, Whatsapp never bothered with a framework like Scrum. Early employees shared how they never even muttered the word and deliberately ignored all heavyweight processes. Whatsapp out-executed Skype, built a more reliable messaging experience than Skype, and ultimately won the battle of messaging and communication apps. The success of companies and project management approaches is not always correlated and this story is a reminder of this. I’m not saying how you run projects is not important: it is. But there are other things that might have a greater impact on outcomes, such as focus, leadership approaches, how people work even without a process, and so on. Project management is a piece in a complex and ever-changing puzzle. However, it is not – and should not be – an end goal, only an enabler to reach that goal quicker. Project Management Approaches in the IndustryHow do companies run projects? I ran a survey with close to 100 responses. The results are interesting. The summary of how companies manage projects is “it depends”. And this should not be very surprising. A newly founded startup with five people will see success in different ways from a 1,000-person, slowly growing non-tech company. Even within the group of large non-tech companies, some experiment with novel approaches, while others stick to doing the same thing that has been working well enough for years. I segregated the companies based on whether tech was at their core, and their funding model. Methodologies used by companies in this survey were:
The survey revealed a few interesting findings, some of which related to the question: “On a scale of 1 (not satisfied) to 5 (very satisfied) how satisfied/happy are you with the current project management methodology?” Insights that are worth thinking about are below. I advise to treat these carefully, given the survey is non-representative in sample size. Nevertheless, they are observations I can confirm.
Project management approaches that do not work well share a few characteristics, according to respondents who left a rating of a 1 or a 2:
Browse all anonymized responses here. How Big Tech Runs ProjectsBig Tech differ in how they approach executing tech projects, compared to the rest of the industry. I gathered data by talking with people at well-known publicly traded tech companies. Here is how they typically get things done: Big Tech shares several characteristics in how engineers execute on projects:
For people who have worked in Big Tech, much of this is familiar. However, if you were to try to copy this same approach in a more traditional company, it would likely fail. This is because the organizational structure of Big Tech greatly impacts how teams can – and do – execute. Big Tech Organizational Structure that Impacts ProjectsIn order to understand how Big Tech manages projects, let’s take a step back and look at the environment most of these companies operate in, which I dive deeper into, in the article What Silicon Valley "Gets" about Software Engineers that Traditional Companies Do Not.
Empowered and autonomous teams are the building blocks of all these companies. They are also the key differentiator between many companies in the tech industry. While not all teams within Big Tech will be fully empowered, these organizations – along with progressive thinking startups – are closest to implementing ways that ensure teams are as empowered as possible. Teams with clear ownership is another building block of Big Tech. Each team of 5-15 people has a clear vision and mission, and the skills and autonomy to execute on it. The mission could be “Build a world-class booking experience for seniors” for a product team on a hospitality product, or “Empower teams to integrate rating experiences with close to zero effort” for a product platform team. Product-focused teams are typically composed of cross-functional team members like backend, frontend and/or mobile engineers, with product managers, data scientists and designers often also on the team. Platform-focused teams tend to not be cross-functional or tied to a specific domain. Note that even though engineers have high-level specialization, in Big Tech most experienced software engineers are expected to be able to pick a broad range of engineering work, and the interview process also reflects this generalist approach. Product Managers: Yes, Project Managers: NoAnother curious difference between Big Tech and everyone else is the role of Product Managers, and the lack of Project Managers or Product Owners who are dedicated to teams. The role of product managers at these companies is defining the strategy at the team – the “why” – and the steps to execute this strategy – the “how”. As Facebook product manager Will Lawrence phrases this:
Product Managers ensure that the team keeps working on the right thing. This means working with the business, with data science and with design to build a roadmap, create plans, prioritize work and escalate where needed. At large companies, this itself is a full-time job already. In many cases, Product Managers do not own project management at Big Tech. The team is responsible for the execution, and the team lead – usually the Engineering Manager – is responsible for making this happen. With empowered and autonomous teams, managing a project is rarely a top down exercise. Each team will vary, but I’ve found great success in rotating the project lead role among engineers, helping everyone on the team grow their leadership muscle. The lack of dedicated project managers raises several questions. Are engineers overloaded with project management? Is managing projects a good use of engineering time? All of these are possible, and here is my take.
Product-Focused Environments and Dropping ScrumI witnessed first-hand how a Scrum team dropped Scrum altogether when working at Skype. When I joined the Skype for Web team, we initially did two-week sprints, and followed the usual Scrum processes. We also had a split of software engineers and QA engineers. However, our shipping pace was only every two weeks, but we wanted to ship more frequently. The first thing we did was make QA part of engineering. In the “old world”, an engineer would finish their work, check into their branch, update a ticket, and let the QA know it’s ready for review. The QA would take this ticket a day or two later, review it, and reopen the ticket if they found issues. This was a long delay. We made a quiet, unofficial, change where all QA engineers did software engineering, and all software engineers became responsible for testing their own code. Now we no longer had to wait days for feedback before shipping code to production. However, the bi-weekly sprints and the numerous Scrum rituals became the next problem. Scrum got in the way of shipping on a daily basis. The whole idea of Scrum revolves around Sprints, of committing to tasks at the beginning of the sprint, working on these during the sprint, and demoing what we did at the end. The process felt unnatural and like it had been forced on a fast-moving web team. We soon moved to a more fluid way of working, taking the Kanban approach. We stopped caring about sprints, and dropped most rituals that come with Scrum. We just cared about knowing what we’re working on now, and what it was we’d get done next. Infrastructure and developer tooling removed the need for many Scrum rituals. Scrum rituals like demoing to the Product Owner, signing off the work and then shipping it, assumes a few things:
However, in our environment, these assumptions were often flawed. All code we wrote was tested with unit tests and, where needed, with integration and end-to-end tests. We shipped our code behind feature flags, and validated them with staged rollouts, starting with a rollout to the team. A lot of the “specs” – or tickets – were also written by engineers, who could then validate if they worked as expected. CI/CD, feature flags and experimentation tooling allowed us to have faster feedback cycles than relying on a Product Owner. Much of Big Tech has recognized how first-class infrastructure and developer tooling make a big difference to the productivity for engineering teams. This is why 30-40% of engineering often works on platform teams and is why Uber invested heavily in platform teams. With first-class infrastructure and platforms ready to use, teams can focus on their core work goals, over figuring out how to set up infrastructure, or how to make a service compliant. All members of the team were very clear on what we were building. Our end goal was to ship Skype’s web functionality. This approach was made up of several sub-projects, but the big picture was clear to the team. The Product Managers helped set the high-level strategy, and us engineers picked up the work to be done, and ran with it. We were empowered enough to chip away parts of Scrum that got in our way. After a while, what was left did not represent Scrum at all. Beyond ScrumWhen talking to engineers at Facebook, Whatsapp, Google, Netflix and similar organizations, most of them have never used Scrum. Why? It’s because of a few things:
Scaling an engineering organization goes well beyond team-level processes, which is another reason most of Big Tech does not push heavyweight team processes. This is not to say these organizations don’t have challenges with productivity, but most of these challenges are not ones that a heavyweight process would solve. Challenges that these companies are working on include:
In Defense of ScrumShould companies dismiss Scrum and other methodologies just because most of Big Tech has done so? This would be a mistake. There are many contexts in which switching to Scrum makes perfect sense and will result in better productivity. Skype was an example where this change did help the company, and Whatsapp would have likely won the consumer calling space, regardless of what methodology Skype used. A few situations where Scrum can be a good alternative: 1. “Kitchen sink teams” which have everything thrown at them, typically find that managing stakeholders with a heavyweight process like Scrum is a win. Stakeholders are educated to understand that an ongoing sprint cannot be interrupted and that new feature requests need to be groomed. Teams with conflicting priorities get to execute with fewer interruptions, thanks to the sprint structure giving space for the team to ignore these interruptions. “Kitchen sink teams” are typical non-tech companies, where the business has no understanding of how engineering works. Scrum helps rein in the stakeholders and educates them on software development processes, while giving the engineering team breathing room to execute. They are also common in early-stage startups, where there is one engineering team to build everything. “Kitchen sink teams” occasionally appear in Big Tech, when a product team gets too many responsibilities. In all cases, moving over to a process that gives the team space to breathe, like Scrum, makes perfect sense. However, as teams are autonomous and empowered, more often than not they instead update their team charter, so team members can immediately say no to work the team does not own. 2. “Forming” and “storming” stages of new teams. Psychologist Bruce Tuckman came up with the phrase "forming, storming, norming, and performing” as phases on how groups work. This model very much fits how most engineering teams evolve as well. When a new team is assembled, that team needs to decide how it will work. Reaching for an off-the-shelf approach like Scrum is almost always a better choice to start with, than group members who are unfamiliar with each other coming up with custom processes – or none at all. Going with a well-documented approach like Scrum can also be useful if team members have conflicting, non-compatible opinions on “the right way to work.” The nice thing about Scrum is how retrospectives are part of the process. This allows teams to reflect on their ways of working. Over time, teams with autonomy to change their working style usually end up dropping heavyweight Scrum rules they don’t need and develop a custom working style. 3. Speeding up shipping to once every few weeks, from a cadence less frequent than this. Scrum, together with weeks-long sprints can help teams move to more frequent shipping, so long as this frequency is not above the sprint length. For many non digital-first organizations, this type of acceleration is a big win. Speeding up shipping was one of the major reasons Skype moved to Scrum in 2012. Before the transition, the teams shipped once every few months. After the transition, each team shipped once or twice a month. Note that the teams that ended up shipping more frequently than this were ones which decided to drop Scrum, as the process makes little sense with short sprint lengths. 4. Companies where uniformized project progress reporting is considered a must-have. Scrum and JIRA tend to go hand-in-hand, and there is no better tool for org-level reporting than JIRA. I have observed many organizations introducing Scrum with the expectation that leadership teams would get more visibility into teams, and be able to pinpoint teams that need help. Unified reporting and drilling down to team-level priorities was one of the benefits Skype’s leadership also saw with the move to Scrum. Chris Matts, who was an agile coach at Skype at the time, shares how they implemented a Strawberry-Jam-O-Meter and a Wrong-Order-O-Meter, which would have been difficult to do, had not all teams used Scrum and JIRA:
My personal view is that in organizations with empowered teams, objectives and key results (OKRs), key performance indicators (KPIs) and goals are far better tools for aligning teams, than rolling out a rigid methodology like Scrum for the sake of reporting. However, in organizations that are not empowered, where teams and individuals are not autonomous, Scrum might work better than alternatives. How Should You Run Teams?We’ve seen how companies at various stages tend to run projects with different approaches, and how Big Tech generally does not mandate a single approach, though big firms have lots of organizational support to make this process work. How you run teams should depend on your context. Relevant factors include your organizational structure, the people you work with, the autonomy and skills of those people, your competition, whether you’re operating in “wartime” or “peacetime.” The list goes on. I’ll leave you with the following ideas as food for thoughts.
I recommend getting inspiration from others, experiment, iterate, and move towards a high-trust environment where people are motivated. This is what I did, and how I put a structure in place that helped every person on the team grow, for the benefit of everyone: the team, the company, and myself. Up next: in next week’s 🔒subscriber-only issue🔒 we’ll cover advice to prepare for promotions with months to spare, and why you should start early. Thanks to Adriaan, Alexandra, Alex, David, and Steve for their help in reviewing this article. You’re on the free list for The Pragmatic Engineer. For the full experience, become a paying subscriber. Many readers expense this newsletter within their company’s education/learning and development budget. |
Key phrases
Older messages
Advice for Tech Workers to Navigate the Most Heated Job Market of All Time
Wednesday, September 15, 2021
The job market is on fire across the globe. Here's advice on how to make the most out of it.
You Might Also Like
📲 Why Is It Called Bluetooth? — Check Out This AI Text to Song Generator
Sunday, April 28, 2024
Also: What to Know About Emulating Games on iPhone, and More! How-To Geek Logo April 28, 2024 📩 Get expert reviews, the hottest deals, how-to's, breaking news, and more delivered directly to your
Daily Coding Problem: Problem #1425 [Easy]
Sunday, April 28, 2024
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Microsoft. Suppose an arithmetic expression is given as a binary tree. Each leaf is an
PD#571 Software Design Principles I Learned the Hard Way
Sunday, April 28, 2024
If there's two sources of truth, one is probably wrong. And yes, please repeat yourself.
When Procrastination is Productive & Ghost integrating with ActivityPub
Sunday, April 28, 2024
Automattic, Texts, and Beeper join forces to build world's best inbox, Reflect launches its iOS app, how to start small rituals, and a lot more in this week's issue of Creativerly. Creativerly
C#503 Building pipelines with System.Threading.Channels
Sunday, April 28, 2024
Concurrent programming challenges can be effectively addressed using channels
RD#453 Get your codebase ready for React 19
Sunday, April 28, 2024
Is your app ready for what's coming up in React 19's release
☁️ Azure Weekly #464 - 28th April 2024
Sunday, April 28, 2024
Azure Weekly Newsletter Issue #464 powered by endjin Welcome to issue 464 of the Azure Weekly Newsletter. In AI we have a good mix of high-level and deep-dive technical articles. Next-Gen Customer
Tesla profits tumble, Fisker flatlines, and California cities battle for control of AVs
Sunday, April 28, 2024
Plus, an up-close look at the all-electric Mercedes G-Wagen and more View this email online in your browser By Kirsten Korosec Sunday, April 28, 2024 Welcome back to TechCrunch Mobility — your central
Sunday Digest | Featuring 'The Countries With the Most Air Pollution in 2023' 📊
Sunday, April 28, 2024
Every visualization published this week, in one place. Visual Capitalist Sunday Digest logo Apr 28, 2024 | View Online | Subscribe | VC+ The Best of This Week's Visuals Presented by Voronoi: The
Android Weekly #620
Sunday, April 28, 2024
View in web browser 620 April 28th, 2024 Articles & Tutorials Sponsored How DoorDash Manages Mobile Releases Ever wonder how the big names in mobile engineering manage the human side of their app