Why Big Tech Companies Are So Slow - Article Recap
A recap of Sean Goedecke's article explaining why large tech companies appear slow—not due to incompetence but due to feature scale, complexity, and organizational challenges that make shipping anything extremely difficult.
- Common misconceptions: Many theories blame slowness on incompetence, unproductive engineers, cumbersome Agile processes, lazy employees, or coordination problems.
- Web scale myth: Some believe "web scale" complexity (traffic, users) is the main challenge, but this isn't the full story.
- Real challenge identified: The primary difficulty is the sheer number of interacting features within products, not just the number of users or traffic volume.
- Feature scale problem: Every new feature may interact with all previous features, creating a combinatorial explosion of possible side effects and edge cases.
- Technical constraints: Adding even a button can be hard if similar functions already exist, requiring careful integration with existing patterns.
- Design constraints: Reconciling new features with existing UI, UX patterns, and user expectations adds layers of complexity.
- Conceptual complexity: New features create edge cases or scenarios that are hard to reconcile with current business logic and system architecture.
- Increased cognitive load: Engineers must understand more context and more potential interactions, making every change mentally demanding.
- Quality degradation: As systems grow, they become harder to reason about and maintain, with quality declining despite engineering talent.
- Really difficult: Shipping anything substantial is "really, really difficult" at this scale due to accumulated complexity.
- Shipping as social construct: In big companies, a project is only considered shipped when leadership or decision-makers acknowledge it as such.
- Not just deployment: Shipping isn't simply about deploying code—it requires recognition and validation from management.
- DRI accountability: Often requires one person (technical lead or Directly Responsible Individual) to be accountable for the project end-to-end.
- Business value required: Projects must deliver value legible to management; endlessly tweaking code doesn't count unless it's seen and appreciated.
- Visibility matters: Work must be visible and appreciated up the management chain—not just technically good, but recognized as valuable.
- Coordination challenges: With many teams and dependencies, managing and aligning everyone is massively complex.
- Endless improvement trap: Competent engineers may keep iterating past the point of business impact, failing to declare projects "finished."
- Knowing when done: Understanding when to declare a project complete and move on is a critical skill often overlooked.
- Management perspective: "Done" is defined by management's perspective, not by closing all technical tasks or achieving technical perfection.
- Good teams assign leads: Effective teams assign clear technical leads; bad ones rely on individuals stepping up, which may not happen.
- Strategic prioritization: Shipping successfully requires prioritizing business and management satisfaction over pure technical polish.
- Not incompetence: The difficulty in big tech isn't due to individual engineers' incompetence or fundamentally flawed processes.
- Scale creates difficulty: Managing feature scale, complexity, and organizational expectations is inherently challenging.
- Different skills needed: The environment demands different skills—not just coding, but shipping, managing expectations, and navigating corporate complexity.
The full article is available here.