Requirements Maturation Flow: Shared Understanding, Bespoke Done, Ready - Episode Hero Image

Requirements Maturation Flow: Shared Understanding, Bespoke Done, Ready

Original Title: SE Radio 701: Max Guernsey, III and Luniel de Beer on Readiness in Software Engineering

The Unseen Friction: Why Readiness, Not Just Speed, Defines Software Project Success

The prevailing wisdom in software development often champions speed and iteration, pushing teams to deliver features rapidly. However, this conversation with Max Guernsey III and Luniel de Beer, co-authors of "Ready: Why Most Software Projects Fail and How to Fix It," reveals a critical, often overlooked truth: premature implementation is the silent killer of software projects. The hidden consequence of rushing into development without adequate preparation is a cascade of rework, escalating technical debt, and ultimately, a failure to achieve desired business outcomes. This analysis is crucial for engineering leaders, product managers, and developers who are tired of the churn and seek a more predictable, less stressful path to delivering true value. By understanding and implementing Requirements Maturation Flow (RMF), teams can gain a significant advantage by ensuring they build the right thing, not just something, before committing valuable development resources.

The Perilous Premise: Building Before Understanding

The software development landscape is littered with projects that, despite following agile methodologies, struggle to meet their goals. Max and Luniel pinpoint a common culprit: the assumption that a user story or backlog item is inherently "ready" for implementation simply because it's prioritized. This often leads to teams diving into coding with incomplete or ambiguous requirements, a practice that, while seemingly productive in the short term, sows the seeds of future chaos. The bank example vividly illustrates this: years spent on a rewrite yielded nothing tangible because the team and product stakeholders were locked in a cycle of finger-pointing, each correct in identifying the other’s flaws but unable to bridge the fundamental gap in understanding.

"The developers were not writing good code... with product it was like people who kind of didn't even know the domain and didn't really know how to learn the domain and didn't know how to articulate it... and there were leaders who were putting just crushing pressures onto the teams and to product that added energy to chaos."

-- Max Guernsey III

This scenario highlights a systemic issue where technical skills training or requirement articulation workshops alone fail to address the root cause. The true problem lies in the absence of a structured process that forces a shared understanding before implementation begins. Without this, even the most skilled developers can produce code that is fundamentally misaligned with business needs, leading to extensive rework and frustration. The consequence is not just wasted development time, but a erosion of trust between product and engineering, and a perpetual state of firefighting.

The Cost of "Done" Without "Ready": A Cascade of Rework

Luniel’s experience, particularly in validating implemented specifications, underscores the downstream effects of inadequate readiness. Teams would claim to have met specifications, only for the delivered product to be wildly different from what was intended. This disconnect wasn't a simple misinterpretation; it was a fundamental failure to grasp the requirements. The consequence of this lack of shared understanding is that "done" becomes a meaningless term. Without a clear, agreed-upon definition of what "done" truly entails for a specific work item, and without ensuring the item was "ready" to begin with, the cycle of rework becomes inevitable.

"We needed to find a way to ensure that the team actually implemented the specification as it was codified but we realized very quickly that the team i think they had an assumption that they understood the requirement but it became very clear very quickly that they really did not understand the specifications requirements."

-- Luniel de Beer

The implication here is profound: the agile practice of backlog refinement, often a brief, perfunctory meeting, is insufficient. It treats all backlog items as homogenous, failing to account for the vastly different levels of complexity and discussion required for each. This "cargo cult" adoption of agile practices, where the form is followed without understanding the underlying purpose, leads to a false sense of progress. The real cost is borne later, in sprints derailed by unforeseen complexities, defects, and the urgent need to revisit work that was prematurely declared "done."

The "Shared Understanding" Advantage: Building the Right Thing

Requirements Maturation Flow (RMF) introduces a crucial shift by making "readiness" an explicit work item. RMF One, focusing on shared understanding, directly combats the problem of teams building the wrong thing. This isn't about simply refining the backlog; it's about dedicating specific, time-boxed capacity to ensure a deep, shared comprehension of each significant work item. This upfront investment, which might take hours or even days for a single item, is precisely what conventional agile practices often skip. The consequence of this skipped step is that teams commit to implementation without a clear, aligned vision, leading to the "skateboard vs. dog leash" delivery failures.

The advantage of this approach is twofold. Firstly, it drastically reduces the likelihood of building the wrong feature, thereby minimizing costly rework. Secondly, it fosters a more collaborative and less adversarial relationship between product and engineering. When teams actively participate in defining what "done" and "ready" mean for each item, they gain ownership and confidence. This shared ownership means that when the team declares an item "done," there's a high degree of certainty that it meets stakeholder expectations, leading to smoother handoffs and increased trust. The resistance to this, often stemming from a fear of slowing down, masks the far greater cost of building the wrong thing.

The Power of Bespoke Definitions: Clarity in "Done" and "Ready"

RMF Two and Three tackle the ambiguity of "Definition of Done" (DoD) and "Definition of Ready" (DoR) by insisting on bespoke, work-item-specific definitions. A generic DoD, often forgotten or misapplied, fails to capture the unique criteria for completion for each specific task. Similarly, a generic DoR is insufficient to ensure that all necessary prerequisites--from clarified requirements to architectural considerations--are met. The consequence of not having bespoke definitions is that "done" remains subjective, and "ready" is a moving target. This leads to the product owner’s frustration with implied requirements or the engineering team’s struggle with undefined scope.

By creating specific DoDs and DoRs, teams establish clear, shared expectations. This process forces difficult conversations upfront, clarifying scope, dependencies, and acceptance criteria. The tension created by this upfront agreement--the pressure to define "done" precisely for handoff, and the pressure to ensure "ready" conditions are met for efficient implementation--is precisely what drives quality and predictability. For instance, a "foreign exchange rate warning" feature requires specific criteria for "done" (e.g., specific error message, logging, user notification) and "ready" (e.g., clear FX rate range definition, availability of daily range data). Without this explicit definition, the implementation could easily diverge, leading to rework. This upfront clarity, while requiring deliberate effort, builds a robust foundation, enabling teams to deliver with confidence and significantly reducing the downstream costs of ambiguity.

Key Action Items: Building Readiness into Your Workflow

  • Implement Readiness as a First-Class Work Item: Introduce a distinct work item type in your backlog specifically for "Readiness Activities" or "Analysis." This signals that preparing for implementation is as important as the implementation itself.
    • Immediate Action: Create this new work item type in your backlog management tool.
  • Mandate Bespoke Definitions of Done (DoD) and Ready (DoR): For each significant work item, dedicate time to collaboratively define what "done" and "ready" specifically mean for that item. Do not rely on generic templates without customization.
    • Immediate Action: For the next sprint, select 2-3 key backlog items and facilitate a session to create bespoke DoDs and DoRs.
  • Time-Box Readiness Activities: Allocate specific, time-boxed capacity within sprints for these readiness activities. This ensures that understanding and preparation are prioritized alongside development.
    • Over the next quarter: Experiment with allocating 10-15% of sprint capacity to readiness work.
  • Foster Shared Understanding Sessions: Schedule dedicated sessions for product owners and engineering teams to deeply discuss and clarify requirements for upcoming work items.
    • Immediate Action: Schedule a 2-hour session for the highest priority item in the next sprint.
  • Establish Responsibility Transfer Points: Clearly define when responsibility for a work item transfers from product to engineering and back again, using the bespoke DoD and DoR as the gate.
    • This pays off in 12-18 months: As teams mature in this process, the smooth handoffs will significantly reduce cycle time and rework, leading to predictable delivery.
  • Use Readiness Work for Technical Debt: For teams struggling with legacy code, use readiness work items to manage necessary refactoring or architectural preparation before attempting to implement new features.
    • Over the next 6 months: Identify one significant feature that requires architectural changes and create readiness work items to prepare the codebase.
  • Train and Coach on Readiness Principles: Ensure that product owners and engineering teams understand why readiness is critical and how to effectively conduct these preparation activities.
    • Immediate Action: Share this analysis and the core concepts of RMF with your product and engineering leads.

---
Handpicked links, AI-assisted summaries. Human judgment, machine efficiency.
This content is a personally curated review and synopsis derived from the original podcast episode.