Two modes of development
Two recent articles: Founder Mode and How to Ship in Big Companies got me thinking about two distinct approaches to software development I've observed in the past:
- Top-down (Enterprise Mode)
- Bottom-up (Founder Mode)
Big companies typically prefer the top-down approach, where multiple teams work on well-defined features with daily meetings and detailed release plans. This process is guided by a cohort of product managers, enterprise architects, scrum masters, compliance officers, and excellence trainers. Feature releases are planned years ahead, and a developer's life remains stable and predictable—at least until the next wave of performance optimizations hits.
In contrast, small companies and startups usually employ a bottom-up approach. Team members wear multiple hats, and features are developed and released on the fly, often in firefighting mode. Developers navigate an unpredictable landscape of rushed releases and unstable environments. In this dark world they dwell in ugly things, and surprising things, and sometimes little wondrous things, spill out in them constantly, and they can count on nothing.
These represent two extremes of the spectrum. In my view, the ideal approach lies in finding middle ground: establishing a well-aligned and clearly communicated vision while giving teams the freedom to experiment. Achieving this balance is more art than science.