Software Development As Collective Learning With Hazel Weakly
John Cutler from The Beautiful Mess · email · 2024-04-28 Reader 🖥️
AI as AmplifierDeveloper Experience & FlowFeedback LoopsLegacy & Organizational ForgettingPsychological SafetySociotechnical ArchitectureTeam Autonomy
Effective software development is produced by the emergent, collective behavior of a system of collaborating people, not by maximizing any individual's personal output as a 'force multiplier'; the real job shared by architecture and leadership is building explicit, intentional structures for how people learn, decide, and check in with each other, so that many independent local decisions add up to globally coherent outcomes, and so that structural change (migrations, reorgs) can happen continuously and safely rather than through disruptive one-off events.
mixed · mixed — A podcast-interview transcript delivered as an email newsletter episode. Theoretical in its systems/emergence framing of software development; practical in its direct advice about migrations, architecture's role, and leadership introspection.
Structure
| Part | Role |
|---|---|
| Hazel's shift from 'individual force multiplier' to 'collective learning', triggered by thinking about emergent behavior in systems | context/thesis statement |
| Critique of 'developer productivity' as a frame; reframing knowledge work as 'fruitful' via Cat Hicks' Developer Thriving research | evidence |
| Architecture's role: building ways of working that make local decisions emergently coherent, as a peer discipline to people leadership | elaboration |
| Migrations: why big-bang stack migrations fail organizationally, and the de-risk/automate/last-mile 'migratory pattern' alternative (Stripe TypeScript case) | application/evidence |
| Organizational structure: fixing ways of working in place frees the org chart and architecture to stay fluid | conclusion |
| Leadership introspection: executive feedback-loop length and Hazel's own deep personal retrospective | application |
Key terms
- force multiplier AI as Amplifier
Hazel's rejected earlier self-concept: an individual whose outsized personal effectiveness drives organizational change directly -- rejected because the improvement is tied to that person's continued presence and vanishes once they leave. - emergent (coherent) autonomy
The property, deliberately built rather than left to chance, that many people's independent local decisions (architectural, product, personal) add up without central coordination to outcomes aligned with business goals. - fruitful (vs. productive) knowledge work
Hazel's reframing of 'developer productivity': knowledge work thrives under felt autonomy over what value means, validated recognition from the collective and leadership, and permission to experiment -- not under output-maximization pressure, drawing on Cat Hicks' Developer Thriving research. - migratory pattern
A reframing of 'migration' from a one-time, high-risk event into a repeatable, de-risked organizational capability, parallel to a business 'pivot' -- achieved through a de-risk (small-team proof), automate (~90% of mechanical work), and last-mile (finishing) sequence. - Done, Done Done, Done Done Done
Three escalating levels of completion on a change: shipped ('done'); fully finished including edge cases ('done done'); and so fully internalized as the organization's collective knowledge that the prior state is never thought about again ('done done done') -- a level most organizations never reach.
Propositions
- explicitBeing an individual 'force multiplier' or change agent is ultimately unsatisfying and not durably valuable at the organizational level, because the improvement is tied to that person's continued presence and disappears once they leave -- genuine system improvement comes from the interactions between people, not from any one person's actions.conf: highsupports9) Nils Brede Moe om AI-paradokset, autonomi, læringskultur og fremtidens team · p21 — Both make the same structural claim in different domains: individual-level gains (a force multiplier's personal effectiveness; AI-driven individual productivity) do not translate into durable organizational gains without a change to the system/practice itself, and vanish once the individual factor (the person, or unaccompanied individual AI use) is removed.
- explicitThe highest-value thing a leader or senior engineer can build is not faster/better individual output, but other people's ability to make local decisions autonomously (without needing to check in), paired with deliberately designed, intentional mechanisms for how the group does check in together -- so local decisions remain globally coherent.conf: high
- explicit'Developer productivity' is a flawed frame because it treats knowledge work (not just engineering, but product and other roles) like manufacturing throughput; knowledge work is 'fruitful' rather than 'productive' when people feel their work is valued, have autonomy over what value means, and can share learning and take risks with results recognized by the collective and by leadership -- drawing on Cat Hicks' Developer Thriving research.conf: high
- explicitAn architect's real role is not drawing diagrams but building the ways of working, deciding, and collaborating that make local architectural and development choices emergently align with business goals -- a peer discipline to people leadership, with architecture weighted more toward the technical side of the same socio-technical task and leadership more toward the social side.conf: high
- explicitPitching a large technology-stack migration (e.g., 'we need to move to Kubernetes') is a common way for an architect to earn a raise or promotion while being genuinely harmful to the company, because the resulting sunk-cost momentum pushes the migration through even when it leaves the underlying organizational problem untouched.conf: highsupportsTBM 423: Why Defining Teams Is So Hard · p20 — The same underlying critique -- that a visible, career-rewarded structural change (a reorg; a stack migration) can leave how work actually flows unchanged -- applied to architecture-level migrations here and to org-chart reorganizations there; both are from John Cutler, extending his own standard across time.
- explicitMigrations fail disproportionately often because they frame a multifaceted (often organizational or cultural) problem as a single, purely technical fix, and because the word 'migration' (unlike 'pivot') implies a one-time, one-shot event rather than a repeatable migratory pattern an organization can get good at.conf: highextendsThe Hard-Stop Rule: From 3 HCM Monoliths to 120 Domain Microservices · p1 — Hazel's call to treat migration as a routine, repeatable 'migratory pattern' rather than a one-shot event is given a concrete, funding-structural implementation in the HCM case, where migration becomes a side effect of ordinary roadmap work rather than a separately-scoped project.
- explicitA de-risk / automate / last-mile sequence (small-team proof-of-concept before commitment; automating roughly 90% of the mechanical migration work; a distinct finishing phase) converts a migration from an 'impossible slog' into something achievable -- exemplified by Stripe migrating four million lines of JavaScript to TypeScript in one execution weekend after six months of enablement work building a custom transformer tool.conf: high
- explicitThere are three qualitatively distinct levels of 'done' on a change: shipped ('done'); fully finished including edge cases ('done done'); and so fully internalized into the organization's collective knowledge that nobody needs to think about the prior state again ('done done done') -- most organizations never reach the third level.conf: high
- explicitOrganizations that explicitly and intentionally fix how they learn and work together (values, ways of working) as the one deliberately stable structure gain the ability to treat almost everything else -- org chart, software architecture -- as fluid and re-imaginable; organizations that instead fix their org chart in stone are left with reinventing or rebuilding the architecture as their only real lever for change.conf: high
- explicitAs a leader's position rises, the direct feedback loop on their own decisions lengthens drastically -- roughly 3-6 months for managers, 1-3 years for directors, 5-10 years for CTOs -- meaning an executive who only learns from observed outcomes will learn at most two lessons across an entire career, so leaders must build faster, deliberate introspection and alternative feedback mechanisms.conf: high
- implicitDeveloper productivity research splits into a business-outcomes-oriented strand and a cognitive-science-oriented strand that reach complementary but often different conclusions about how to think about, approach, and measure the same underlying phenomenon.conf: medium
Arguments
Individual force-multiplication is the wrong target for engineering leadership or architecture; the right target is building systems in which many people's local, autonomous decisions are emergently globally coherent. strength: medium
Explicit premises:
- A force multiplier's improvement vanishes when they leave, because the system itself was never changed
- True multiplication comes from the interactions between people, not any one person's output
- Giving people the ability to make unchecked local decisions, backed by deliberately-built check-in mechanisms, is 'true multiplication... of the system's synergy'
Implicit premises:
- Organizational improvement that depends on one specific person's continued presence is not actually improvement of the system
- The capacity to build coherent autonomy is a scarcer and more valuable leadership capability than raw individual technical output
Inferences:
- This reframes being a '10x engineer/architect' as a category error -- the goal should be building 10x teams/systems, a different and more durable skill than personal output
Large, big-bang technology migrations are frequently organizationally harmful even when professionally rewarded, because they misdiagnose a multifaceted (often organizational/cultural) problem as a single-faceted technical one. strength: high
Explicit premises:
- Adopting a popular stack is an easy sell that secures buy-in and then triggers sunk-cost-fueled commitment
- A multi-year Kubernetes migration can leave an organization with 'the same problems, twice the cloud bill'
- The actual underlying problem (e.g., a company that refuses to talk to its users) remains untouched by a purely technical migration
Implicit premises:
- Promotion/reward incentives favor visible, ambitious technical initiatives independent of whether they solve the real problem
- Stakeholders conflate 'we did something big' with 'we fixed the problem'
Inferences:
- An organization should treat a proposed migration's scope as a diagnostic question ('is this problem actually technical?') before treating it as an execution question ('how do we do this migration well?')
Migrations should be treated as a recurring organizational competency (a 'migratory pattern'), not as rare, disruptive, one-time projects. strength: medium
Explicit premises:
- A de-risk / automate-90% / last-mile sequence converts migrations from slog to achievable, as the Stripe TypeScript case shows
- Treating repeated migrations as a sign of failure (unlike repeated business pivots, which are treated as healthy) discourages the incremental practice that actually works
Implicit premises:
- The capability to migrate well is itself buildable and improvable with practice, like any other engineering competency
- The asymmetry in how people talk about change ('fine to pivot the business repeatedly, shameful to re-migrate the codebase') is a cultural framing problem, not a fact about software
Inferences:
- An organization's migration cadence (how comfortable and practiced it is at structural change) should itself be treated as a measurable, improvable organizational capability, parallel to deployment frequency in DORA-style metrics
Narratives
- Hazel describes coaching her past 'force multiplier hero' self: she would now tell that self to stop optimizing for others' speed/output and instead build ways of thinking, doing, and 'peopling' that make local decisions globally coherent.
→ Supports the proposition that individual force-multiplication is the wrong leadership target. - A company pitches and commits to a four-year Kubernetes migration to fix its development problems; the migration completes (or drags on), but the organization ends up with the same underlying problems and a doubled cloud bill, while the architect who pushed it gets a raise and promotion regardless.
→ Supports the proposition that big-bang technology migrations are frequently organizationally harmful even when professionally rewarded. - Stripe migrated four million lines of JavaScript to TypeScript in a single execution weekend, after six months of enablement work building a custom compiler/transformer that incorporated their existing type annotations and comments, followed by roughly 200-400 manual fixes.
→ Supports the de-risk/automate/last-mile migratory-pattern proposition as a concrete, successful instance. - Hazel's own unusually deep, introspective leadership retrospective (built on Cutler and Tom Kerwin's 18-competency uncertainty-navigation framework) is the very post that prompted this podcast episode, and she frames it as necessary precisely because her own learning rate outpaces the slow feedback loops leadership positions normally offer.
→ Supports the proposition that leaders need deliberate, faster introspection to compensate for multi-month-to-multi-year outcome feedback loops.
Questions addressed
- ✅ Is maximizing individual output or 'force-multiplication' the right goal for an engineer or architect trying to improve an organization?
No -- it produces fragile, person-dependent gains that vanish when the person leaves; the goal should be building systems where many people's local, autonomous decisions are emergently coherent. - ✅ What is an architect's actual job, if not drawing diagrams or designing systems directly?
Building the ways of working, deciding, and collaborating that make local technical choices emergently align with business goals -- a peer discipline to people leadership, not subordinate to it. - ✅ Why do big migrations so often fail to deliver the promised benefit even when they are technically completed?
They misdiagnose an organizational/cultural problem as a purely technical one, and sunk-cost momentum pushes them through regardless of whether the real problem gets solved. - ✅ How can migrations be made safe and routine rather than rare and organizationally disruptive?
Treat migration as a repeatable 'migratory pattern' with a de-risk / automate-the-mechanical-work / last-mile structure, as in Stripe's TypeScript migration. - ✅ How should leaders learn and improve when the real-world feedback loop on their decisions is far too slow (months to years) to learn from directly?
Build deliberate, faster introspection and alternative feedback-finding practices -- as Hazel does with her own retrospectives -- rather than waiting for outcomes to arrive. - ⭕ How much introspection/self-examination is appropriate for a leader, and when does it become excessive?
Gaps
- incompleteHazel never explains the actual mechanism by which an architect builds 'coherent autonomy' structures beyond restating the goal itself (give people decisions they don't need to check in on, while also building the mechanisms by which they check in 'naturally'); no concrete practice, cadence, or structure is named for how check-ins stay both 'natural' and 'intentional' at any real scale (a 10-person team vs. a 500-person org).
Read next: Team Topologies / sociotechnical-architecture material elsewhere in the corpus with concrete reverse-Conway and team-interaction-mode mechanisms, to see what specific structures operationalize the coherent-autonomy goal Hazel names but doesn't detail. - incompleteThe de-risk/automate-90%/last-mile migration model is illustrated by exactly one example (Stripe's TypeScript migration), a case with unusually favorable conditions -- a single codebase, a well-specified mechanical syntactic transformation, and deep engineering investment to build a custom transformer. There is no discussion of what changes when the '90% automatable' assumption doesn't hold, e.g. a cross-team domain/architecture migration rather than a syntactic one.
Read next: extract-hard-stop-rule-hcm-monoliths-microservices, a cross-team domain migration that succeeds via a different (funding-structural, not automation-heavy) mechanism, suggesting the automate-90% playbook is one of several valid shapes rather than the general solution. - uninformedRecorded in April 2024, before agentic coding tools were mainstream, the conversation's discussion of migrations and automating ~90% of mechanical migration work has nothing to say about what changes when a general-purpose coding agent -- rather than a custom one-off transformer tool like Stripe built -- is the thing doing that automation, and whether that shifts the balance between Hazel's 'de-risk' and 'automate' phases.
Read next: Corpus material on AI-assisted large-scale code migrations, e.g. extract-datadog-claude-cursor-tdd-migration or extract-bun-zig-to-rust-rewrite.
Related documents
- TBM 423: Why Defining Teams Is So Hard
- Scaling the Practice of Architecture, Conversationally
- AI Enthusiasts Are in a Race Against Time, AI Skeptics Are in a Race Against Entropy
- AI-Assisted Software Development: Team Profiles and Capabilities for Putting Research into Action
- Software Teaming: A Mob Programming, Whole-Team Approach
- Architecture Modernization: Aligning software, strategy, and structure • Nick Tune • CodeCrafts 2024
- Presentation: AI-First Software Delivery: Balancing Innovation with Proven Practices
- Beyond Autonomous Teams in Software Product Development
- DoorDash Used Copilot to Convert Its XCTest-Based iOS Test Suite to Swift Testing
- 2024_final_dora_report