<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
  <channel>
    <title>Articles on Martin Hinshelwood on Engineering Leadership</title>
    <link>https://engineering-leadership.hinshelwood.com/articles/</link>
    <description>Recent content in Articles on Martin Hinshelwood on Engineering Leadership</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 26 Aug 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://engineering-leadership.hinshelwood.com/articles/index.xml" rel="self" type="application/rss+xml"/>
    <itunes:explicit>no</itunes:explicit><itunes:subtitle>Recent content in Articles on Martin Hinshelwood on Engineering Leadership</itunes:subtitle><itunes:category text="Technology"/><item>
      <title>Don’t Manage Dependencies, Remove Them</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/don-t-manage-dependencies-remove-them/</link>
      <pubDate>Mon, 29 Sep 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/don-t-manage-dependencies-remove-them/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Engineering Excellence</category>
      <category>Product Development</category>
      <category>Technical Leadership</category>
      <description>Dependencies are not inevitable, but a symptom of poor system design. Rather than managing dependencies through coordination overhead and politics, focus on removing them by aligning work, teams, and architecture so each team delivers end-to-end value without waiting for others. Make contracts between teams explicit, clarify ownership for every feature and service, and treat any remaining dependencies as design flaws to be escalated and resolved, not as routine work. One recognisable sign of poor alignment is teams blocked, waiting on another group for a component. Organisations that eliminate dependencies see faster delivery, fewer defects, and higher team morale. The answer is not to manage dependencies, but to redesign systems so they disappear.</description>
      <content:encoded>&lt;p&gt;&lt;em&gt;Answering the question: How do you manage dependencies?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Every large-scale delivery conversation eventually drifts into the same dead-end: &lt;em&gt;“How do you manage dependencies?”&lt;/em&gt; The assumption is baked in, that dependencies are inevitable, so the best you can do is build a Gantt chart, track them, and hope for the best.&lt;/p&gt;
&lt;p&gt;That assumption is wrong. Dependencies are not a law of nature. They are, as a rule, a symptom of poor system design. The ethos you should adopt is simple: &lt;strong&gt;don’t manage dependencies, remove them.&lt;/strong&gt; Dependencies are systemic problems, not individual failings. Blaming teams or people misses the point; the system itself is what generates dependency waste.&lt;/p&gt;
&lt;p&gt;When you manage dependencies, you’re committing to ongoing overhead: coordination meetings, dependency boards, artificial milestones, and cross-team politics. When you remove them, you restore autonomy, accelerate flow, and reduce risk. The cost of managing dependencies grows exponentially with every new team and integration point. The benefit of removing these compounds.&lt;/p&gt;
&lt;p&gt;This post reframes the question. Instead of asking how to manage dependencies, let’s explore how to &lt;strong&gt;design systems of work that eliminate them.&lt;/strong&gt;&lt;/p&gt;

    
    

  
&lt;h2 id="step-1-align-work-teams-and-architecture"&gt;Step 1: Align Work, Teams, and Architecture&lt;/h2&gt;
&lt;p&gt;Dependencies don’t just appear by accident; they are often created when work, team structures, and architecture are misaligned. Without clear alignment, every piece of work risks bouncing between silos, waiting on specialists, and suffering from endless handoffs. That is the problem: dependencies are the tax you pay for poor organisational design. Getting alignment between the work coming in, the teams who own it, and the architecture they work within is the single most effective lever to reduce this tax. Start by examining the flow of work into the system and then design accordingly. Misalignment creates dependencies, which in turn generate delay and rework. Alignment is not optional; it is the prerequisite for autonomy and predictable flow. Leadership must own this alignment, teams cannot fix systemic misalignment by themselves.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What you’d observe:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Teams blocked waiting for another group to deliver a component.&lt;/li&gt;
&lt;li&gt;Integration schedules instead of continuous delivery.&lt;/li&gt;
&lt;li&gt;Architects handing down plans disconnected from the team topology.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Delays compound as work zig-zags across silos.&lt;/li&gt;
&lt;li&gt;Teams cannot deliver end-to-end value.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h3 id="design-your-organisation-so-that-work-teams-and-architecture-line-up"&gt;Design your organisation so that work, teams, and architecture line up&lt;/h3&gt;
&lt;p&gt;When teams can deliver value without waiting for others, most “dependencies” vanish. Dependencies are often just silos masquerading as inevitabilities.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Structure teams to own a vertical slice of customer value, not a horizontal layer of technology.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Conway’s Law&lt;/strong&gt; as guidance: your architecture will mirror your communication structure. Intentionally shape both.&lt;/li&gt;
&lt;li&gt;Collapse handoffs. Give each team persistent ownership of the product or service they deliver.&lt;/li&gt;
&lt;/ul&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="step-2-make-contracts-explicit"&gt;Step 2: Make Contracts Explicit&lt;/h2&gt;
&lt;p&gt;Many teams have other teams that depend on them, yet the terms of those dependencies are often left implicit. Each capability should provide a clear published contract that others can rely on. When changes are required, subscribers must be engaged to avoid breakage. In practice, this can mean maintaining multiple versions of contracts or APIs so that legacy consumers continue to work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What you’d observe:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Teams are guessing at how another service behaves.&lt;/li&gt;
&lt;li&gt;Breaking changes are introduced without warning.&lt;/li&gt;
&lt;li&gt;Communication channels are full of “who owns this API?” questions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Surprise defects at integration time.&lt;/li&gt;
&lt;li&gt;Long cycles of rework.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h3 id="document-contracts-between-capabilities"&gt;Document contracts between capabilities&lt;/h3&gt;
&lt;p&gt;Explicit contracts turn invisible risks into manageable, testable agreements. Teams understand who relies on them and what will break if they make changes. This makes coordination predictable and largely automated.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Define &lt;strong&gt;service contracts&lt;/strong&gt; for every API, integration, or shared capability.&lt;/li&gt;
&lt;li&gt;Use patterns like &lt;strong&gt;consumer-driven contracts&lt;/strong&gt; and the &lt;strong&gt;tolerant reader&lt;/strong&gt; to protect against breakage.&lt;/li&gt;
&lt;li&gt;Maintain a catalogue of who depends on what, visible and owned.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h2 id="step-3-clarify-ownership"&gt;Step 3: Clarify Ownership&lt;/h2&gt;
&lt;p&gt;It should be clear which team owns each feature, component, or integration point, and exactly how to reach them. Ownership is more than a name on a slide; it means team-level accountability for decision‑making, maintenance, and evolution. Teams across the organisation should know which team to approach for changes, who approves modifications, and how issues will be triaged. Without this clarity, features drift, defects bounce between groups, and hidden dependencies multiply. Stable ownership over time is crucial; frequent changes in ownership create systemic churn.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What you’d observe:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple teams touching the same codebase.&lt;/li&gt;
&lt;li&gt;Bugs bouncing between groups.&lt;/li&gt;
&lt;li&gt;Nobody is sure who can approve a change.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confusion, delay, and political friction.&lt;/li&gt;
&lt;li&gt;Hidden dependencies on individuals or “shadow owners.”&lt;/li&gt;
&lt;/ul&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="resolve-by-establishing-clear-ownership-lines"&gt;Resolve by establishing clear ownership lines&lt;/h3&gt;
&lt;p&gt;Ambiguity is the breeding ground for dependencies. Clarity lets others adapt or negotiate when overlap is unavoidable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Map every application, service, and integration to a single accountable team.&lt;/li&gt;
&lt;li&gt;Make ownership visible in tooling (Wiki, Whiteboard, Azure DevOps, GitHub, etc.).&lt;/li&gt;
&lt;li&gt;Establish communication paths to clarify who to engage with when non-contract dependencies arise.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h2 id="step-4-actively-manage-the-rare-remainders"&gt;Step 4: Actively Manage the Rare Remainders&lt;/h2&gt;
&lt;p&gt;After all of that, there are still going to be some dependencies that are inescapable. These need to be actively managed by the feature team that is the subscriber and raised to leadership as signals of systemic weakness that require intervention and redesign.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What you’d observe:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A handful of dependencies remain despite alignment, contracts, and ownership.&lt;/li&gt;
&lt;li&gt;Work items in one team are directly blocked by delivery from another.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Delivery risk where elimination wasn’t possible.&lt;/li&gt;
&lt;li&gt;Leadership attention consumed by coordination rather than improvement.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h3 id="manage-only-these"&gt;Manage &lt;em&gt;only these&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;Dependencies you can’t remove should be visible, owned, and tracked. But the point is to treat them as defects in your organisational design, not facts of life. They are alarms that something still needs to change. They represent system design debt, not normal work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Track explicit dependencies between backlog items.&lt;/li&gt;
&lt;li&gt;Use shared reviews or joint planning where strictly necessary.&lt;/li&gt;
&lt;li&gt;Escalate them so leadership sees them as design flaws to resolve, not work items to shuffle.&lt;/li&gt;
&lt;li&gt;Treat them as exceptions to be removed long-term, not normal operating procedure.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h2 id="systemic-view"&gt;Systemic View&lt;/h2&gt;
&lt;p&gt;Dependencies exist because of how you design systems of work. A flawed system will always overpower the best intentions of the people inside it. The behaviours you see are simply the consequences of the structures you created.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Siloed teams generate handoffs and queues that slow everything down.&lt;/li&gt;
&lt;li&gt;Ambiguous ownership breeds uncertainty and political friction.&lt;/li&gt;
&lt;li&gt;Implicit contracts guarantee surprises and rework.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are not accidents; they are deliberate design choices, even if unacknowledged. Left unchecked, they act as amplifiers of waste, magnifying delay, variability, and risk across the organisation. Dependencies are one of the clearest forms of systemic waste and delay, and every appearance of them is a call to redesign.&lt;/p&gt;
&lt;p&gt;The answer is not to manage harder but to redesign. You remove the cause rather than chase the symptom. That is the work of stewardship: shaping structures, policies, and boundaries so that flow becomes natural and dependencies are engineered out of existence.&lt;/p&gt;
&lt;p&gt;Organisations that aggressively eliminate dependencies consistently show:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Faster cycle times.&lt;/li&gt;
&lt;li&gt;Fewer integration defects.&lt;/li&gt;
&lt;li&gt;Higher team morale due to autonomy.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Frameworks like &lt;strong&gt;Nexus&lt;/strong&gt; put dependency management front and centre, but the real lesson is that dependencies are signals of poor alignment. The &lt;strong&gt;Kanban Guide&lt;/strong&gt; emphasises WIP limits and flow efficiency; dependencies are often the hidden WIP that destroys predictability. &lt;strong&gt;Evidence-Based Management&lt;/strong&gt; encourages us to inspect value delivery capability; dependencies are one of the clearest capability killers.&lt;/p&gt;


  
&lt;h2 id="closing-the-loop"&gt;Closing the Loop&lt;/h2&gt;
&lt;p&gt;When someone asks, &lt;em&gt;“How do you manage dependencies?”&lt;/em&gt;, the radical answer is: &lt;strong&gt;you don’t.&lt;/strong&gt; You redesign your teams, architecture, and workflow to eliminate dependencies from the outset. You only manage what’s left when all else fails, and you treat every remaining dependency as a design flaw to be removed. That’s how you maximise autonomy, accelerate flow, and reduce risk.&lt;/p&gt;
&lt;p&gt;Stop normalising dependency management as a project management activity. Managing dependencies is treating the symptom. Leadership must instead redesign the system to eliminate the cause. Every dependency you remove is a gift to your teams and your customers. So next time someone asks you how you manage dependencies, give them the only honest answer: &lt;strong&gt;we don’t; we remove them.&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Is Agile Really Just a Mindset?</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/is-agile-really-just-a-mindset/</link>
      <pubDate>Mon, 11 Aug 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/is-agile-really-just-a-mindset/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Ethos</category>
      <category>Technical Leadership</category>
      <category>Engineering Excellence</category>
      <description>Agile is not a mindset or just a set of behaviours; it is a disciplined system of work rooted in technical leadership, engineering excellence, and empirical control. True Agile requires that the system—codebase, infrastructure, deployment pipelines, and product strategy—supports frequent, reliable delivery, not just collaborative behaviour or feel-good language. Foundational engineering practices like CI/CD, automated checking, telemetry, and modular system design are non-negotiable; without them, Agile efforts are just theatre. Outsourcing Agile to non-technical coaches dilutes its reality and impact, as systems, not individuals, determine outcomes. As Deming said, “A bad system will beat a good person every time.” Agile only exists where systems continuously enable delivery of real value.</description>
      <content:encoded>&lt;p&gt;Let’s get one thing straight: &lt;strong&gt;Agile is not a mindset.&lt;/strong&gt; And it’s certainly not just about behaviour. That lazy framing dilutes the discipline, ignores the engineering reality, and gives cover to incompetence.&lt;/p&gt;
&lt;p&gt;Agile for software development is a &lt;strong&gt;delivery discipline grounded in technical leadership, empirical control, and engineering excellence&lt;/strong&gt;. If your so-called “Agile transformation” doesn’t touch your code, your infrastructure, your deployment pipelines, or your product strategy, then you’re not Agile, you’re just busy.&lt;/p&gt;

    
    

  
&lt;h2 id="agile-isnt-a-mindset-its-a-system-of-work"&gt;Agile Isn’t a Mindset. It’s a System of Work.&lt;/h2&gt;
&lt;p&gt;The term “Agile mindset” has become a smoke screen for vague, feel-good language that conveniently ignores the hard parts: architecture, observability, checkability, and releasability. A mindset doesn’t ship working software. A system does.&lt;/p&gt;
&lt;p&gt;Agile is a &lt;strong&gt;strategy for managing complexity&lt;/strong&gt;. It draws on an &lt;strong&gt;empirical ethos&lt;/strong&gt; to deal with uncertainty. While Agile principles support this ethos through practices like continuous delivery, frequent reflection, and embracing change, they stop short of formalising it. Agile leaves room for interpretation, which is both its power and its weakness.&lt;/p&gt;
&lt;p&gt;Instead of prescription, Agile encourages conditions that make learning and adaptation possible:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Deliver working software frequently.&lt;/li&gt;
&lt;li&gt;Reflect regularly on how to become more effective.&lt;/li&gt;
&lt;li&gt;Embrace change, even late in development.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This isn’t methodology. It’s operational discipline.&lt;/p&gt;


  
&lt;h2 id="behaviour-is-necessary-but-not-sufficient"&gt;Behaviour Is Necessary, but Not Sufficient&lt;/h2&gt;
&lt;p&gt;Yes, agility requires certain behaviours: collaboration, openness to change, and continuous learning. But those behaviours are not the whole picture. They’re the byproducts of &lt;strong&gt;well-designed systems&lt;/strong&gt;, not the system itself.&lt;/p&gt;
&lt;p&gt;If you want teams to behave “agile,” you need to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Give them working CI/CD pipelines.&lt;/li&gt;
&lt;li&gt;Define a clear and realistic shared quality standard.&lt;/li&gt;
&lt;li&gt;Stop flooding them with WIP and start managing flow.&lt;/li&gt;
&lt;li&gt;Align work to meaningful goals with clear delivery expectations.&lt;/li&gt;
&lt;li&gt;Enable them to ship to production regularly and reliably.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Without engineering and system design, Agile behaviours collapse under pressure.&lt;/strong&gt;&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="engineering-practices-are-the-backbone-of-agility"&gt;Engineering Practices Are the Backbone of Agility&lt;/h2&gt;
&lt;p&gt;Agile without engineering is theatre. You might have sticky notes and daily standups, but if you can’t deliver reliable, high-quality software frequently, you&amp;rsquo;re not Agile.&lt;/p&gt;
&lt;p&gt;Here’s what engineering excellence looks like in Agile:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Continuous Integration &amp;amp; Deployment (CI/CD)&lt;/strong&gt;: Small, safe, frequent releases.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automated Checking&lt;/strong&gt;: Fast, repeatable validation that gives developers confidence.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure as Code&lt;/strong&gt;: Reproducible environments with version control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Telemetry and Observability&lt;/strong&gt;: Insight into live systems for fast feedback and debugging.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design for Replaceability&lt;/strong&gt;: Modular, cohesive systems you can change without fear.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are not “nice-to-haves.” They are foundational. If your teams can’t ship to production at regular, sustainable intervals, you’re not Agile, you’re just going through the motions.&lt;/p&gt;


  
&lt;h2 id="stop-outsourcing-agile-to-coaches-who-dont-code"&gt;Stop Outsourcing Agile to Coaches Who Don’t Code&lt;/h2&gt;
&lt;p&gt;A big part of the problem is that we’ve allowed Agile to be colonised by people with no engineering background. They talk about collaboration, but not architecture. They push for psychological safety, but ignore version control hygiene. They love retrospectives but can’t read a cycle time chart.&lt;/p&gt;
&lt;p&gt;This isn’t a personal attack. It’s a &lt;strong&gt;call for accountability&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re coaching Agile teams and you don’t understand modern engineering practices, DevOps, CI/CD, telemetry, checkability, you’re not equipped to lead agility in software.&lt;/p&gt;
&lt;p&gt;Agile is not a therapy session. It’s not a motivational poster. It is a &lt;strong&gt;system of delivery&lt;/strong&gt; designed to maximise value under conditions of uncertainty. And if we want to keep calling it that, we’d better start treating it with the rigour it deserves.&lt;/p&gt;


  
&lt;h2 id="a-bad-system-will-beat-a-good-person-every-time"&gt;&amp;ldquo;A bad system will beat a good person every time.&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;Deming’s insight isn’t a philosophical quip, it’s a brutal truth. In Agile environments, we often celebrate the heroics of individuals, when we should be interrogating the design of the system. Good people trapped in bad systems burn out, give up, or conform.&lt;/p&gt;
&lt;p&gt;This is where &lt;strong&gt;Larman’s Law&lt;/strong&gt; comes in: &lt;em&gt;“Organisations are implicitly optimised to avoid changing the status quo middle-management and specialist roles, power structures and political boundaries.”&lt;/em&gt; It explains why many Agile initiatives fail. Not because people resist Agile, but because the system resists accountability.&lt;/p&gt;
&lt;p&gt;Agile invites change, but organisations repel it. Instead of redesigning systems of work, they repurpose Agile into just another management fad. Sticky notes go up. Certifications get handed out. But the constraints, silos, and dysfunction remain untouched.&lt;/p&gt;
&lt;p&gt;If your structure still depends on project gates, command hierarchies, and stage approvals, you haven’t adopted Agile. You’ve institutionalised waste.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Systems produce outcomes. Not individuals.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Want to see agility? Look at the architecture. Look at how teams form, flow, and deliver. Look at what the system makes &lt;em&gt;easy&lt;/em&gt; and what it makes &lt;em&gt;hard&lt;/em&gt;. If it’s easier to follow process than to deliver value, your system is broken, no matter how agile your people are.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="finally"&gt;Finally&lt;/h2&gt;
&lt;p&gt;Let’s kill the myth:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agile is &lt;strong&gt;not a mindset&lt;/strong&gt;. It is a discipline.&lt;/li&gt;
&lt;li&gt;Agile is &lt;strong&gt;not only about behaviour&lt;/strong&gt;. It’s about delivery.&lt;/li&gt;
&lt;li&gt;Agile is &lt;strong&gt;not a feeling&lt;/strong&gt;. It’s a feedback-driven engineering strategy.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Agile is the deliberate design of systems that enable autonomy, accountability, and continuous delivery of value.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you’re not delivering, you’re not Agile. Period.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Stop Building Silos. Start Building Systems</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/stop-building-silos-start-building-systems/</link>
      <pubDate>Mon, 07 Jul 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/stop-building-silos-start-building-systems/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Tool</category>
      <category>DevOps</category>
      <category>Engineering Excellence</category>
      <category>Technical Leadership</category>
      <description>Fragmented, ad-hoc automation stitched together across multiple tools creates a fragile, inefficient, and risky delivery process that slows software teams and leads to inconsistent results. Delivering quality at speed requires consolidating tools into a unified, observable system, such as One Engineering System (1ES) pioneered at Microsoft, which brings together Azure Pipelines, Repos, Boards, Artifacts, and integrated policy and telemetry. Platform Engineering is the strategy to deliver this, providing internal developer platforms that automate compliance, security, and operations, and boost developer self-sufficiency through templates and reusable services. A well-engineered system defines clear boundaries and supports team autonomy within them, leading to safer, faster, and more reliable delivery—no handoffs, no black-box deploys, one clear path from idea to production. Engineering excellence comes from systems that minimise friction and confusion, allowing teams to focus on product value instead of plumbing.</description>
      <content:encoded>&lt;p&gt;You can’t deliver quality at speed when your automation is duct-taped together. If your pipelines are stitched across multiple systems, your deployments depend on human rituals, and your tests run in the shadows, you don’t have a delivery system, you have a liability.&lt;/p&gt;
&lt;p&gt;If your automation strategy looks something like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Manual SQL deployments from someone’s laptop&lt;/li&gt;
&lt;li&gt;Azure Pipelines building unversioned assemblies&lt;/li&gt;
&lt;li&gt;Manual deployment to dev and test environments&lt;/li&gt;
&lt;li&gt;TeamCity rebuilding new unversioned assemblies&lt;/li&gt;
&lt;li&gt;Octopus Deploy is deploying from Team City to staging and production&lt;/li&gt;
&lt;li&gt;Selenium tests running on a black-box scripted node that only one person monitors&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You’re not building a product. You’re building chaos. You’re not &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scaling/"&gt;scaling&lt;/a&gt; a team. You’re scaling dysfunction.&lt;/p&gt;

    
    

  
&lt;h2 id="fragmentation-is-not-an-engineering-strategy"&gt;Fragmentation Is Not an Engineering Strategy&lt;/h2&gt;
&lt;p&gt;When every team uses a different deployment tool, stores secrets in a personal vault, and runs tests on unmonitored boxes, you’ve created a system that &lt;em&gt;no one&lt;/em&gt; understands and &lt;em&gt;no one&lt;/em&gt; can change safely.&lt;/p&gt;
&lt;p&gt;This isn’t flexibility. It’s fragility.&lt;/p&gt;
&lt;p&gt;Fragmentation leads to duplication of effort, inconsistent results, increased cognitive load, and slower delivery. You waste time debugging pipeline differences instead of building product value. And every deviation from a shared system adds risk to quality, security, and compliance.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/categories/engineering-excellence/"&gt;Engineering excellence&lt;/a&gt; comes from enabling consistency where it matters, creating common foundations that support autonomy without sacrificing reliability. It comes from designing systems that are observable, changeable, and resilient, systems that empower teams through clarity, not confusion.&lt;/p&gt;
&lt;p&gt;This kind of fragmentation also violates the core ethos of &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt;: &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;continuous delivery&lt;/a&gt; of value through the union of people, processes, and products. If your toolchain is stitched together by tribal knowledge and Slack messages, you’re not enabling flow. You’re creating friction.&lt;/p&gt;


  
&lt;h2 id="devops-is-not-tooling-its-feedback-flow-and-learning"&gt;DevOps Is Not Tooling. It&amp;rsquo;s Feedback, Flow, and Learning&lt;/h2&gt;
&lt;p&gt;DevOps isn’t a toolkit war. It’s the discipline of enabling feedback, flow, and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-learning/"&gt;continuous learning&lt;/a&gt; across the entire product lifecycle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It’s about &lt;strong&gt;amplifying feedback loops&lt;/strong&gt;, build, test, and release systems that surface issues early and often.&lt;/li&gt;
&lt;li&gt;It’s about &lt;strong&gt;enabling flow&lt;/strong&gt;, removing friction between commit and customer, reducing handoffs and rework.&lt;/li&gt;
&lt;li&gt;It’s about &lt;strong&gt;fostering learning&lt;/strong&gt;, capturing telemetry, responding to incidents, and improving from every iteration.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DevOps without visibility is cargo cult. DevOps across disconnected systems is just automation theatre. And DevOps without learning is just &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt; in fast-forward.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="building-one-engineering-system-1es-through-platform-engineering"&gt;Building One Engineering System (1ES) through Platform Engineering&lt;/h2&gt;
&lt;p&gt;If DevOps is the ethos, then &lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/platform-engineering/"&gt;Platform Engineering&lt;/a&gt;&lt;/strong&gt; is the strategy, and &lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/one-engineering-system/"&gt;One Engineering System&lt;/a&gt; (1ES)&lt;/strong&gt; is the execution model.&lt;/p&gt;
&lt;p&gt;Platform Engineering is not just infrastructure automation. It&amp;rsquo;s a practice grounded in DevOps principles that aims to improve every development team&amp;rsquo;s time-to-value, compliance, cost control, and security through &lt;strong&gt;improved developer experiences&lt;/strong&gt; and &lt;strong&gt;governed self-service&lt;/strong&gt;. It&amp;rsquo;s both a mindset shift and a system of reusable tools and services.&lt;/p&gt;
&lt;p&gt;Platform Engineering teams build and evolve &lt;strong&gt;Internal Developer Platforms (IDPs)&lt;/strong&gt;, paved paths that reduce cognitive load, eliminate manual gates, and guide teams safely toward production.&lt;/p&gt;
&lt;p&gt;These platforms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Help developers be self-sufficient (e.g. starter kits, templates, IDE integrations)&lt;/li&gt;
&lt;li&gt;Encapsulate patterns into reusable services&lt;/li&gt;
&lt;li&gt;Automate security and compliance checks&lt;/li&gt;
&lt;li&gt;Streamline operations and infrastructure management&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;1ES, pioneered at Microsoft, embodies this by unifying:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/azure-pipelines/"&gt;Azure Pipelines&lt;/a&gt;&lt;/strong&gt; for end-to-end CI/CD&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/azure-repos/"&gt;Azure Repos&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;Boards&lt;/strong&gt;, and &lt;strong&gt;Artifacts&lt;/strong&gt; as a single source of truth&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure as Code&lt;/strong&gt;, &lt;strong&gt;Policy as Code&lt;/strong&gt;, and integrated telemetry&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The result: a secure, observable, scalable system where guardrails are built in and teams can move fast &lt;em&gt;without creating risk&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;No handoffs. No tool silos. No black-box deploys. One path from idea to production that every team and every skillset contributes to.&lt;/p&gt;
&lt;p&gt;You may be thinking that &amp;ldquo;this breaks self-management&amp;rdquo; and the agency of the teams. But self-management in Agile doesn’t mean chaos. &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; Teams don’t self-manage in a vacuum, they operate within the boundaries defined by the organisation. Self-management means giving teams the autonomy to solve problems within a clearly defined system of constraints. That system of constraints, your engineering boundaries, your compliance requirements, your platform capabilities, is your Platform Engineering strategy, and your 1ES is your implementation of that strategy. It defines what good looks like. Those boundaries must be engineered and not left to tribal knowledge. If you want consistent results, define the edges and let the teams operate freely &lt;em&gt;within&lt;/em&gt; them.&lt;/p&gt;


  
&lt;h2 id="consolidate-standardise-enable"&gt;Consolidate. Standardise. Enable.&lt;/h2&gt;
&lt;p&gt;If you want scale, you must design for it. That means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One build system.&lt;/li&gt;
&lt;li&gt;One deployment path.&lt;/li&gt;
&lt;li&gt;One way of managing secrets, tests, telemetry, and deployments.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Azure Pipelines&lt;/strong&gt; is capable of it all. With templates, approvals, gates, agents, deployment groups, and environment strategies, everything you need to build a 1ES-style delivery platform is already there. Yes, there are other tools, but if you are already rooted in the Microsoft stack, then these purpose-built tools fit like a glove.&lt;/p&gt;
&lt;p&gt;Stop spreading your delivery process across half a dozen tools with no visibility. Pick a platform. Make it great. And let your teams focus on product, not plumbing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Engineering excellence isn’t about choosing the coolest tools.&lt;/strong&gt;&lt;br&gt;
It’s about building a system of work that enables every team to deliver safely, sustainably, and continuously.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stop optimising for familiarity. Start optimising for flow.&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Telling People What to Do Is Not Leadership. It’s a Failure of System Design</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/telling-people-what-to-do-is-not-leadership-it-s-a-failure-of-system-design/</link>
      <pubDate>Mon, 04 Aug 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/telling-people-what-to-do-is-not-leadership-it-s-a-failure-of-system-design/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Product Development</category>
      <category>Leadership</category>
      <category>Engineering Excellence</category>
      <description>Measuring leadership by a manager’s number of decisions signals a broken system, not effective management. Telling people exactly what to do reflects a Taylorist mindset that undermines autonomy, creates bottlenecks, and wastes value in complex, cognitive work like software development. Real leadership means creating systems where teams pull work, operate against clear goals, and are accountable for outcomes without micromanagement. For example, frequent delivery to production—shipping valuable increments every Sprint—creates fast feedback, trust, and continuous improvement. Managers should focus on designing systems that support flow, self-management, and evidence-based decisions, then get out of the way; otherwise, assigning tasks is just an expensive workaround for deeper organisational design failures.</description>
      <content:encoded>&lt;p&gt;If your organisation still measures leadership by how many decisions a manager makes, you are not leading. You are leaking value.&lt;/p&gt;
&lt;p&gt;There is a stubborn, Taylorist holdover in many companies, the belief that work gets done when someone is told exactly what to do. The assumption is that certainty comes from control, clarity comes from instruction, and delivery comes from compliance.&lt;/p&gt;
&lt;p&gt;It doesn’t.&lt;/p&gt;
&lt;p&gt;In complex systems, command-and-control is not just ineffective, it’s a bottleneck. The moment you start “assigning tasks,” you’ve already failed to design a system that enables flow, autonomy, and accountability.&lt;/p&gt;

    
    

  
&lt;h2 id="you-dont-need-to-tell-people-what-to-do-in-a-well-designed-system"&gt;You Don’t Need to Tell People What to Do in a Well-Designed System&lt;/h2&gt;
&lt;p&gt;In organisations grounded in empirical process control, leadership isn’t about orchestrating every move. It’s about creating the conditions where teams can inspect, adapt, and deliver value continuously.&lt;/p&gt;
&lt;p&gt;Modern management is not about allocating tasks. It’s about removing the need for anyone to allocate tasks in the first place.&lt;/p&gt;
&lt;p&gt;When teams are working against clear goals, with shared understanding, visibility of work-in-progress, and constraints that enable, not restrict, decision-making, they don’t need instructions. They need clarity, context, and trust.&lt;/p&gt;
&lt;p&gt;Great systems aren’t static. They evolve through structured feedback loops, Sprint Reviews, Retrospectives, operational telemetry, and small experiments. Inspection and adaptation are what make systems empirical, not just idealistic.&lt;/p&gt;


  
&lt;h2 id="taylorism-is-for-factories-you-run-a-cognitive-organisation"&gt;Taylorism Is for Factories. You Run a Cognitive Organisation.&lt;/h2&gt;
&lt;p&gt;If you’re still managing by job title, project plans, and hour-counting, you’re not running a professional organisation. You’re running a factory LARP. The playbook you’re using was written for physical labour and linear processes. Not software. Not services. Not strategy.&lt;/p&gt;
&lt;p&gt;And yet, I still see it everywhere:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Product Managers dictating solutions instead of problems.&lt;/li&gt;
&lt;li&gt;“Team leads” reviewing every commit instead of enabling continuous integration.&lt;/li&gt;
&lt;li&gt;Managers handing out tasks like Halloween sweets and then wondering why delivery is unpredictable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You don’t need more control. You need a better system.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="leadership-is-creating-systems-that-dont-need-you"&gt;Leadership Is Creating Systems That Don’t Need You&lt;/h2&gt;
&lt;p&gt;Real leadership isn’t about your presence. It’s about what happens in your absence.&lt;/p&gt;
&lt;p&gt;This is the ethos behind Scrum, Kanban, and DevOps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scrum&lt;/strong&gt; gives you a social technology for solving complex problems adaptively.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kanban&lt;/strong&gt; gives you observability of the value stream and how work flows, or doesn’t.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DevOps&lt;/strong&gt; ensures the loop from idea to value is short, safe, and inspectable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Together, they form a coherent strategy for managing systems of work without resorting to micromanagement. When teams understand their constraints, have the tools to respond to change, and are accountable for outcomes, not just activity, they no longer need to be told what to do.&lt;/p&gt;
&lt;p&gt;Speed is not the goal, but it is a critical capability. In a competitive environment, reducing time-to-market isn’t just about efficiency, it’s how organisations learn faster, respond sooner, and stay ahead of disruption. For a deeper dive into why frequent delivery is a competitive advantage, read &lt;a href="https://engineering-leadership.hinshelwood.com/articles/there-is-no-place-like-production/"&gt;There Is No Place Like Production&lt;/a&gt;.&lt;/p&gt;


  
&lt;h2 id="telling-people-what-to-do-is-an-expensive-workaround"&gt;Telling People What to Do is an Expensive Workaround&lt;/h2&gt;
&lt;p&gt;Every time you assign a task manually, you’re compensating for a failure upstream:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lack of a clear Product Goal.&lt;/li&gt;
&lt;li&gt;Incomplete or incoherent Backlog.&lt;/li&gt;
&lt;li&gt;Pushing work into the system until it overloads&lt;/li&gt;
&lt;li&gt;No service-level expectations.&lt;/li&gt;
&lt;li&gt;No WIP limits.&lt;/li&gt;
&lt;li&gt;No autonomy in the team.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You’re treating the symptom instead of fixing the system.&lt;/p&gt;
&lt;p&gt;And let’s be honest, if you have to tell people what to do, why did you hire professionals?&lt;/p&gt;


  
&lt;h2 id="design-the-system-get-out-of-the-way"&gt;Design the System. Get Out of the Way.&lt;/h2&gt;
&lt;p&gt;If your team is waiting for instructions, your system has no intelligence. If you’re managing to utilisation, your system has no flow. If your engineers are busy but not delivering, your system has no value.&lt;/p&gt;
&lt;p&gt;Stop focusing on the people. Start focusing on the system.&lt;/p&gt;
&lt;p&gt;Scrum is not about rituals. DevOps is not about pipelines. These are practices that expose the health of your system. And if your system requires constant intervention, it’s not a system. It’s a mess.&lt;/p&gt;
&lt;p&gt;So stop telling people what to do. Instead, design a system where people know what to do, and have the freedom, clarity, and support to do it. Here are 10 things that you can do to augment your system:&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="1-establish-intermediate--tactical-goals"&gt;1. &lt;strong&gt;Establish Intermediate &amp;amp; Tactical Goals&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Without goals, people default to following orders or invent their own. Goals create the shared context necessary for autonomous decision-making and are the foundation for meaningful self-management.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Action:&lt;/strong&gt; Define a clear Intermediate Goal (Product Goal) that articulates a compelling direction over multiple deliveries, and Tactical Goals (Sprint Goals) for each delivery that anchor short-term decisions in purpose.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;How&lt;/strong&gt;: Use Sprint Planning to make the Sprint Goal explicit and transparent. Ensure the Product Goal is visible in the content and context of the Product Backlog and re-validated during each Sprint Review. Use our &lt;a href="https://engineering-leadership.hinshelwood.com/recipes/sprint-planning-recipe/"&gt;Sprint Planning Recipe&lt;/a&gt; to get started and then adapt it as needed. Write Sprint Goals as meaningful, outcome-focused objectives that can be met incrementally. If every Sprint ends with &amp;ldquo;we worked on some tickets,&amp;rdquo; then your Product Goal is either missing, or worse, meaningless.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Why&lt;/strong&gt;: Without shared goals, teams wait for direction. With them, they can negotiate scope, prioritise wisely, and confidently navigate complexity. For more depth read: &lt;a href="https://a.co/d/aZwT7jy" target="_blank" rel="external noopener noreferrer"&gt;The Goal – Eliyahu M. Goldratt &amp;amp; Jeff Cox &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, &lt;a href="https://a.co/d/jbqOFcX" target="_blank" rel="external noopener noreferrer"&gt;Measure What Matters – John Doerr &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, &lt;a href="https://engineering-leadership.hinshelwood.com/guides/evidence-based-management-guide/"&gt;Evidence-based Management Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Too often, the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-backlog/"&gt;Product Backlog&lt;/a&gt; becomes a list of features instead of a narrative arc that advances a meaningful goal. When you write backlog items without a Product Goal, you are setting the team up to deliver outputs instead of outcomes.&lt;/p&gt;
&lt;p&gt;Product Goals are not aspirational fluff. They are intermediate strategic goals that define value in a complex system. When absent, the result is drift. When present, they unlock focus, flow, and accountability.&lt;/p&gt;


  
&lt;h3 id="2-enable-self-management-with-constraints"&gt;2. &lt;strong&gt;Enable Self-Management with Constraints&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Agency without boundaries is chaos. But command-and-control masquerading as clarity is just as destructive. Real autonomy comes from deliberate constraints that define how freedom is expressed, not whether it exists.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;: Clarify and operationalise constraints through an explicit Definition of Workflow, and clear organisational boundaries of responsibility and accountability.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt;: Codify these boundaries collaboratively with the team; it&amp;rsquo;s their workflow. Then, create a Definition of Workflow that defines the way that work flows through their system. Don&amp;rsquo;t worry about every edge case; create based on the common case of work. This DoW forms part of your Use Working Agreements that express how the team will self-manage within organisational expectations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why&lt;/strong&gt;: Teams can’t be accountable for outcomes if they’re not authorised to choose how they deliver. But without boundaries, chaos replaces clarity. Autonomy is not abdication, it’s engineered through deliberate, negotiated constraints.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Professionalism is rooted in clear, shared expectations, delivered through disapline. A team that understands how work flows, where decisions are made, and what quality signals readiness at each stage doesn&amp;rsquo;t need micromanagement, they already operate within a system that tells them what excellence looks like.&lt;/p&gt;


  
&lt;h3 id="3-stop-misusing-estimation-start-right-sizing"&gt;3. &lt;strong&gt;Stop Misusing Estimation, Start Right-Sizing&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Telling people what to build, in what order, and how long it should take kills creativity and accountability. It fragments ownership and encourages compliance over curiosity. Worse, it masks the real problem: your system doesn&amp;rsquo;t support flow, so you fall back to control.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;: Move away from abstract estimation rituals and fixed task assignments. Instead, introduce right-sizing practices, splitting work based on historical flow metrics like cycle time and throughput and Scatter Plot analysis.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt;: As a team, regularly review a scatter plot of your cycle times and investigate outliers to deepen your understanding of what &amp;lsquo;small enough&amp;rsquo; looks like. Use that insight to reduce batch sizes where possible and provide stakeholder clarity where constraints exist. Visualise blocked or ageing work daily to keep flow visible, and use backlog refinement to slice work for predictability, not precision. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why&lt;/strong&gt;: The issue isn&amp;rsquo;t estimation itself, it&amp;rsquo;s turning estimation into something it was never meant to be. Right-sizing is still estimation, just done in a simpler and more honest way. When teams right-size work to match their flow and capacity, they ship more consistently, adapt faster, and own their commitments.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Traditional estimation is often misused as a proxy for distrust or certainty in uncertain domains. When you right-size instead, grounding delivery in data and observability, you shift from permission-based planning to capability-based planning. That&amp;rsquo;s not just more efficient. It&amp;rsquo;s fundamentally more respectful of the people doing the work.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Under pressure to show AI progress, unsure where it starts?&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;AI doesn&amp;#39;t fix a system of work. It reveals one. If you&amp;#39;re under pressure to show progress and can&amp;#39;t yet say where to start, that&amp;#39;s the problem I help organisations work out: which problem is actually worth pointing AI at, before anyone picks the technology.&lt;/p&gt;
        &lt;a href="https://ai.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="ai" data-ga-value="3" data-ga-param-position="9" data-ga-param-item-type="cross-sell"&gt;Find a validated starting point →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="4-introduce-pull-systems-with-wip-limits"&gt;4. &lt;strong&gt;Introduce Pull Systems with WIP Limits&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Introducing a work-limited pull system is key to &lt;a href="https://engineering-leadership.hinshelwood.com/articles/rethinking-capacity-planning/"&gt;understanding capacity and planning for a successful delivery&lt;/a&gt;. Push systems undermine accountability, responsibility, and ownership by enforcing direction from above. When teams have work pushed onto them without control or influence over the timing or readiness, their sense of ownership evaporates. This loss of autonomy directly stifles self-organisation and self-management, leaving teams disempowered and reactive.&lt;/p&gt;
&lt;p&gt;Push systems flood teams, forcing them into reactive firefighting and constant context-switching. The focus becomes merely &amp;ldquo;showing progress&amp;rdquo; rather than genuinely delivering value. This model not only overwhelms teams but also actively erodes their ability to take responsibility for outcomes, as decisions are stripped away from those who do the work.&lt;/p&gt;
&lt;p&gt;In contrast, pull systems enhance accountability and ownership by starting with readiness. Teams pull work into their systems only when they have the capacity, when tasks are right-sized, and when the system is genuinely ready to support the flow of work.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;: Implement explicit WIP limits and establish pull-based workflows at strategic, product, and team levels. Start with clear team-level WIP limits and a robust Definition of Workflow to outline readiness. Expand this discipline to portfolio and category levels, ensuring system-level flow is protected.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt;: Regularly inspect cumulative flow diagrams, throughput run charts, and ageing WIP. Use these insights to identify bottlenecks and overloaded stages. Rising ageing WIP is your signal that the system has shifted back to push dynamics.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why&lt;/strong&gt;: Genuine ownership and accountability flourish when teams have autonomy over their workflow, responding to actual system conditions rather than artificial deadlines. This approach enhances predictability, reduces burnout, and creates sustainable delivery. Deadlines are met naturally as work is continuously delivered, not forced through the system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;WIP limits are not about control, they are about providing meaningful feedback. They indicate when your system reaches capacity, signaling the team to focus and prioritise effectively. Pull-based systems are essential for sustainable, predictable value delivery. If your teams constantly feel overwhelmed and lack autonomy, it’s time to recognise this as a systemic issue: your organisation is pushing rather than enabling.&lt;/p&gt;


  
&lt;h3 id="5-use-evidence-based-management-practices"&gt;5. &lt;strong&gt;Use evidence-based management practices&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Measuring hours worked or tasks completed tells you nothing about whether the work mattered. Effort is not value. Activity is not improvement. Velocity is not progress.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;: Replace effort-based reporting with outcome-oriented metrics. Use the four key dimensions of Evidence-Based Management, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/time-to-market/"&gt;Time to Market (TTM)&lt;/a&gt;, Current Value (CV), &lt;a href="https://engineering-leadership.hinshelwood.com/tags/ability-to-innovate/"&gt;Ability to Innovate (A2I)&lt;/a&gt;, and Unrealised Value (UV), to inspect delivery capability and guide improvement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt;: Start simple. Use your existing delivery tools (like Azure DevOps or Jira) to extract basic data, Cycle Time, Throughput, and Lead Time. These give you data for Time to Market (TTM). For Current Value (CV), talk to customer support, review NPS data, or run basic satisfaction surveys. To identify Unrealised Value (UV), review abandoned roadmap items, market research, or competitor offerings. For Ability to Innovate (A2I), look at how often your work is blocked, how long code sits before being merged, and how frequently you ship. Use this data in Sprint Reviews and Retrospectives to track system health, not individual effort. Bring these insights into planning conversations to anchor decisions in reality, not assumptions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why&lt;/strong&gt;: Teams that understand the outcomes of their work, how long it takes, how it impacts customers, what’s left unrealised, and where they’re blocked, are far more likely to own both the delivery and the improvement. If you want teams to care about the product, show them how it performs. Without evidence, we fall back to opinion, status, and hierarchy. With evidence, we can act with purpose.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Evidence-Based Management replaces arbitrary judgement with actionable data. It doesn’t just measure outcomes, it enables accountability for them.&lt;/p&gt;


  
&lt;h3 id="6-deploy-frequently-to-production"&gt;6. &lt;strong&gt;Deploy Frequently to Production&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Nothing signals trust like letting teams ship. But more than that, frequent delivery to production is the fastest path to feedback, accountability, and customer impact.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;: Enable teams to release a usable, production-grade increment every Sprint, including the first. This doesn’t mean a perfect product, it means a valuable step forward, hardened enough to be used.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt;: Establish CI/CD pipelines with automated quality gates (unit tests, integration checks, security scanning). Use feature toggles, dark launches, and audience-based rollout to mitigate risk. Set a working agreement that “done” means releasable. If it’s not going to production, it’s not done.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why&lt;/strong&gt;: When teams ship regularly, feedback cycles shorten, risk is reduced, and decision latency collapses. They see real impact and adapt quickly. You stop debating hypotheticals and start responding to evidence. Most importantly, you stop managing perception and start managing product.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There’s &lt;a href="https://engineering-leadership.hinshelwood.com/articles/there-is-no-place-like-production/"&gt;no place like production&lt;/a&gt;. Everything else is theatre.&lt;/p&gt;


  
&lt;h3 id="7-invest-in-professional-scrum-masters--product-owners"&gt;7. &lt;strong&gt;Invest in Professional Scrum Masters &amp;amp; Product Owners&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Most Scrum Masters and Product Owners are either appointed without preparation or promoted into the role without development. The result? They don’t coach, guide, or lead, they coordinate. And when those roles fail to create clarity and enable delivery, managers step in to fill the vacuum with control.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;: Hire or develop Scrum Masters and Product Owners who demonstrate competence across three domains: technical fluency, business acumen, and organisational change leadership.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt;: Provide structured learning journeys that combine high quality training with hands-on mentorship from experienced practitioners. Assess candidates or internal staff on their ability to enable delivery systems, not just facilitate meetings or write stories. Require evidence of contribution to system improvement, cross-team alignment, and customer impact.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why&lt;/strong&gt;: Competent SMs and POs anchor the Scrum Team in purpose and delivery. The Scrum Master builds capability, encourages flow, and fosters empiricism, and modern engineering practices. The &lt;a href="https://engineering-leadership.hinshelwood.com/articles/hiring-a-professional-product-owner/"&gt;Product Owner sets the tone for product leadership&lt;/a&gt; and modern product development practices. When these roles function well, the team no longer needs daily direction from management, because the system is aligned, and delivery is deliberate.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Scrum Masters are not passive facilitators. They are system stewards, accountable for enabling transparency, optimising flow, and coaching both teams and managers to operate within an empirical system. If they’re not improving the system, they’re part of the dysfunction. If you want to understand what separates a competent Scrum Master from a glorified coordinator, read &lt;a href="https://engineering-leadership.hinshelwood.com/articles/why-most-scrum-masters-are-failing-and-what-they-should-know/"&gt;Why Most Scrum Masters Are Failing, and What They Should Know&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The problem isn’t Scrum. The problem is that we keep filling these roles with &lt;a href="https://engineering-leadership.hinshelwood.com/articles/why-most-scrum-masters-are-failing-and-what-they-should-know/"&gt;people who aren’t ready&lt;/a&gt; or worse never will be. Raise the bar, or get out of the way.&lt;/p&gt;


  
&lt;h3 id="8-collapse-siloed-structures"&gt;8. &lt;strong&gt;Collapse Siloed Structures&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Separate roles create handoffs, and &lt;a href="https://engineering-leadership.hinshelwood.com/articles/stop-building-silos-start-building-systems/"&gt;handoffs create dependency&lt;/a&gt;. Dependency creates delay. Delay kills flow.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;: Form cross-functional, preferably longer-lived teams with full accountability for discovery, delivery, and validation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt;: Restructure teams so they include the skills necessary to take work from idea to production: business analysis, UX, engineering, QA, and operations. Co-locate (physically or virtually) these disciplines inside a single team and ensure they share the same Sprint cadence, goals, and delivery responsibility. Use the Definition of Workflow to clarify interaction points and shared responsibilities within the team and eliminate those outside it. Audit each department and reassign specialists to teams where they can contribute continuously, not sporadically.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why&lt;/strong&gt;: You can’t ask for autonomy while forcing work through stage-gated departments. Real teams don&amp;rsquo;t wait for someone else to finish, they swarm. They co-create. They ship. When you eliminate silos, you eliminate the excuses that justify command-and-control. What’s left is a team that owns its outcomes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Structure should follow flow, not function. Organise around value creation, not roles. That’s how you collapse the gap between intent and impact.&lt;/p&gt;


  
&lt;h3 id="9-use-sprint-reviews-for-stakeholder-alignment"&gt;9. &lt;strong&gt;Use Sprint Reviews for Stakeholder Alignment&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/sprint-review/"&gt;Sprint Reviews&lt;/a&gt; aren’t demos. They’re not a PowerPoint parade or a status update. They are working sessions with stakeholders, strategic checkpoints to make decisions based on what we’ve learned.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;: Use Sprint Reviews to inspect the working increment, review delivery data (T2M, CV), gather market feedback, and adapt the Product Backlog collaboratively with stakeholders present.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt;: Set the expectation that each Sprint Review includes real stakeholders, not just internal roles. Open with a restatement of the Product Goal and the Sprint Goal. Show working software, not slides. Invite feedback that informs priority and scope decisions. Use evidence, customer feedback, analytics, cycle time charts, to frame the discussion. End with a shared agreement on what’s next and update the Product Backlog live.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why&lt;/strong&gt;: Involving stakeholders early and often surfaces assumptions, shortens feedback loops, and reduces the need for managers to chase status. It shifts product delivery from projection to inspection. When everyone sees the same data and the same increment, there’s no room for spin. There’s just the truth, and the next step.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h3 id="10-teach-managers-to-serve-systems-not-direct-people"&gt;10. &lt;strong&gt;Teach Managers to Serve Systems, Not Direct People&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Managers clinging to authority are a bottleneck. They inject delay, decision paralysis, and unnecessary oversight. If you&amp;rsquo;re telling people what to do every day, you&amp;rsquo;re not leading, you&amp;rsquo;re throttling flow.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;: Shift managers away from individual oversight and toward system stewardship. Equip them to visualise flow, reduce friction, and amplify team autonomy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How&lt;/strong&gt;: Train managers to read and act on delivery metrics, cycle time scatterplots, cumulative flow, WIP ageing. Introduce them to the constraints that enable team performance: WIP limits, service-level expectations, clear definitions of workflow. Encourage regular system health checks, where are delays? What blockers repeat? Where are policies implicit when they should be explicit? In retrospectives, ask managers not &amp;ldquo;who failed?&amp;rdquo; but &amp;ldquo;what failed in the system?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why&lt;/strong&gt;: You don’t scale impact by managing more people. You scale it by creating an environment where people don’t need to be managed. When managers see themselves as designers of flow rather than allocators of effort, the entire system becomes more resilient, more responsive, and more humane.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This isn’t about &lt;a href="https://engineering-leadership.hinshelwood.com/articles/human-and-ai-agency-in-adaptive-systems-strategy-before-optimisation/"&gt;abdicating control&lt;/a&gt;. It’s about relocating it into the system where it belongs.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>How to Build for Business Resilience and Continuity</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/how-to-build-for-business-resilience-and-continuity/</link>
      <pubDate>Mon, 26 May 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/how-to-build-for-business-resilience-and-continuity/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Capability</category>
      <category>DevOps</category>
      <category>Engineering Excellence</category>
      <category>Technical Leadership</category>
      <description>Business resilience must be built intentionally through intelligent systems design and disciplined operational practices. Effective resilience starts with comprehensive observability, including embedding telemetry everywhere and defining service level objectives for critical systems. Loose coupling of systems is essential, as shown by a real incident where the failure of Azure DevOps’ Profile Service crippled the platform due to tight integration; after this, circuit breakers and decoupling were aggressively implemented across services to prevent repeat failures. Deployments should be routine through continuous delivery, and teams must be empowered to act swiftly during incidents without hierarchical delays. True resilience requires designing for partial failures, embracing chaos engineering, and continuously measuring recovery and deployment metrics; anything less is gambling with business continuity.</description>
      <content:encoded>&lt;p&gt;Business resilience is not an accident. It is the deliberate outcome of intelligent systems design, pragmatic decision-making, and organisational discipline. If you want resilience, you must build for it, &lt;strong&gt;upfront, consistently, and aggressively&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Here is a pragmatic checklist for engineering true business resilience and continuity:&lt;/p&gt;

    
    

  
&lt;h2 id="observability-and-telemetry-first"&gt;Observability and Telemetry First&lt;/h2&gt;
&lt;p&gt;You cannot manage what you cannot see. You cannot fix what you cannot detect.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Embed telemetry at every level&lt;/strong&gt;: application, infrastructure, business processes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define service level objectives (SLOs)&lt;/strong&gt; for your critical systems and actually measure against them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monitor leading indicators&lt;/strong&gt;, not just trailing failures.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Establish a live site culture&lt;/strong&gt;, not a &amp;ldquo;we’ll find out when customers call&amp;rdquo; culture.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your systems are invisible until they explode, you are not resilient; you are negligent.&lt;/p&gt;


  
&lt;h2 id="decouple-systems-aggressively"&gt;Decouple Systems Aggressively&lt;/h2&gt;
&lt;p&gt;Coupling is a time bomb. When one piece falls, everything else falls with it.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bounded contexts&lt;/strong&gt; are non-negotiable. Embrace them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No logic in the data tier.&lt;/strong&gt; Databases store data, not behaviour. If your business rules are locked in SQL, you are one outage away from a complete operational collapse.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Avoid shared databases&lt;/strong&gt;. Duplicate data if necessary. Loose coupling beats data purity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prefer asynchronous messaging&lt;/strong&gt;. Synchronous systems are brittle under load and fail catastrophically.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Resilience comes from isolation. Systems must fail independently, not cascade like dominoes.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="when-the-user-profile-service-takes-out-the-entire-system"&gt;When the User Profile Service takes out the entire system&lt;/h3&gt;
&lt;p&gt;For a long time I have worked with the Azure &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; teams at Microsoft as an strategic customer and MVP and I have witnessed this lesson firsthand. One of the major outages of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/azure-devops/"&gt;Azure DevOps&lt;/a&gt; was triggered by something that, at first glance, seemed trivial: the Profile Service. When the Profile Service went down, developers could no longer commit code, and product owners could not update backlog items. Why? Because the system could not resolve your friendly name from your authenticated ID.&lt;/p&gt;
&lt;p&gt;The service was so tightly coupled into critical user flows that its failure crippled the entire platform.&lt;/p&gt;
&lt;p&gt;In response, the teams created &amp;ldquo;live site incident&amp;rdquo; repair work and moved the Profile Service behind a &lt;strong&gt;circuit breaker&lt;/strong&gt;. If the Profile Service went down again, it would degrade gracefully, not drag down the entire experience.&lt;/p&gt;
&lt;p&gt;As an anecdotal aside, a few months later another unrelated service failed, and, unsurprisingly, it also took down large parts of the system. That was the final straw. The teams went on a full-scale mission to introduce the &lt;strong&gt;circuit breaker pattern&lt;/strong&gt; across &lt;strong&gt;every service&lt;/strong&gt;, making sure no single point of failure could collapse the platform again.&lt;/p&gt;
&lt;p&gt;Decoupling and graceful degradation are not academic exercises. They are mandatory if you value continuity.&lt;/p&gt;


  
&lt;h2 id="treat-deployments-as-routine-not-special"&gt;Treat Deployments as Routine, Not Special&lt;/h2&gt;
&lt;p&gt;Every deployment is a practice run for disaster recovery. If deployment is a risky, complex, orchestrated event, you have already failed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Implement &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;Continuous Delivery&lt;/a&gt; (CD)&lt;/strong&gt; so that deployments happen safely, frequently, and predictably.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use feature toggles&lt;/strong&gt; to separate code deployment from feature release.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automate rollbacks&lt;/strong&gt;. A failed deployment should not require heroics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your organisation fears deployment day, it is structurally fragile.&lt;/p&gt;


  
&lt;h2 id="empower-teams-to-act-without-hierarchy-paralysis"&gt;Empower Teams to Act Without Hierarchy Paralysis&lt;/h2&gt;
&lt;p&gt;In a crisis, the last thing you want is a command-and-control bottleneck. Empowerment is a precondition to survival.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pre-delegate authority&lt;/strong&gt; for critical systems response.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Train teams&lt;/strong&gt; on incident management procedures, disaster recovery, and failover operations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decentralise decision-making&lt;/strong&gt; to the people closest to the work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In crisis, minutes matter. Top-down control costs lives and revenue.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="assume-everything-will-fail-design-to-recover-fast"&gt;Assume Everything Will Fail; Design to Recover Fast&lt;/h2&gt;
&lt;p&gt;Hope is not a strategy. Failure is inevitable. Recovery speed determines survival.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chaos engineering&lt;/strong&gt; is not optional; it is responsible practice.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design for graceful degradation&lt;/strong&gt;. Partial failure is better than total failure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Practice recovery drills&lt;/strong&gt;. Don&amp;rsquo;t just have a DR plan; rehearse it until it is boring.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are not recovering faster than your competitors, you are losing.&lt;/p&gt;


  
&lt;h2 id="devops-site-reliability-engineering-and-evidence-based-management"&gt;DevOps, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/site-reliability-engineering/"&gt;Site Reliability Engineering&lt;/a&gt;, and Evidence-Based Management&lt;/h2&gt;
&lt;p&gt;Business resilience is &lt;strong&gt;DevOps in action&lt;/strong&gt;: the union of people, process, and products to enable continuous delivery of value to end users. Resilient systems emerge from the daily discipline of CI/CD, Infrastructure as Code (IaC), and monitoring as first-class citizens.&lt;/p&gt;
&lt;p&gt;It is &lt;strong&gt;Site Reliability Engineering (SRE)&lt;/strong&gt; lived, not aspirational. SRE teaches us that availability, latency, performance, efficiency, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/change-management/"&gt;change management&lt;/a&gt;, monitoring, and emergency response are all product features, just as important as the user-facing ones.&lt;/p&gt;
&lt;p&gt;It is &lt;strong&gt;Evidence-Based Management (EBM)&lt;/strong&gt; made real. Metrics like Mean Time to Recovery (MTTR), &lt;a href="https://engineering-leadership.hinshelwood.com/tags/deployment-frequency/"&gt;Deployment Frequency&lt;/a&gt;, and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/customer-satisfaction/"&gt;Customer Satisfaction&lt;/a&gt; are not vanity measures; they are survival metrics. They inform whether your investment in resilience is paying off or just theatre.&lt;/p&gt;
&lt;p&gt;Resilience is not a project. It is an ethos. You must architect it into your systems, invest in it continuously, and operationalise it ruthlessly.&lt;/p&gt;
&lt;p&gt;Otherwise, you are gambling with your business and calling it strategy.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Resilience is Part of the Product, Not an Afterthought</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/resilience-is-part-of-the-product-not-an-afterthought/</link>
      <pubDate>Mon, 09 Jun 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/resilience-is-part-of-the-product-not-an-afterthought/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Product Development</category>
      <category>Engineering Excellence</category>
      <category>Technical Leadership</category>
      <description>Resilience is a fundamental feature of any serious product and must be deliberately designed from the beginning, not added as an afterthought. Relying on heroes or separate departments creates hidden risks and undermines quality; instead, engineers must own resilience as part of their end-to-end responsibility, as demonstrated by Azure DevOps teams at Microsoft. Building resilience requires embedding telemetry, rapid roll-forward, observability, and containment into both architecture and culture, with failures expected and contained, not blamed or ignored. Key practices include instrumenting everything, making changes reversible, isolating failures, and treating incidents as signals for improvement. Neglecting resilience is gambling with your business, while engineering it into every layer protects customer trust and business continuity.</description>
      <content:encoded>&lt;p&gt;Resilience is not a nice-to-have. It is not a department. It is not something you bolt on later if you get around to it. Resilience is part of the product. If you are serious about delivering value, you design resilience deliberately from day one. Any other approach is just gambling with your business, and is adding to your &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Real resilience is not about having good people with pagers. It is not about heroes. Heroes emerge when systems lack resilience. They hoard work, avoid &lt;a href="https://engineering-leadership.hinshelwood.com/tags/transparency/"&gt;transparency&lt;/a&gt;, and justify cutting corners by claiming they are &amp;ldquo;doing whatever it takes.&amp;rdquo; In reality, they introduce silent risks, undermine teamwork, and erode quality standards.&lt;/p&gt;
&lt;p&gt;If your resilience depends on a hero, you are not resilient. You are vulnerable and you just have not been exposed yet.&lt;/p&gt;

    
    

  
&lt;h2 id="resilience-is-a-core-feature"&gt;Resilience is a Core Feature&lt;/h2&gt;
&lt;p&gt;Resilience must be treated like any other core feature. It must be designed, built, and continuously improved. It must be part of your product definition, your architecture, and your engineering culture. It must be owned by the same people who build the product. At Microsoft, the Azure &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; engineering teams did exactly that, they built resilience which was engineered into every layer of their system , not handed off to a separate Ops team, not left to wishful thinking. Engineers owned their live site experience end-to-end form &lt;em&gt;ideation&lt;/em&gt; to &lt;em&gt;validation&lt;/em&gt; and all of the &lt;em&gt;design&lt;/em&gt;, &lt;em&gt;build&lt;/em&gt;, &lt;em&gt;test&lt;/em&gt;, &lt;em&gt;release&lt;/em&gt; and &lt;em&gt;run&lt;/em&gt; in between.&lt;/p&gt;
&lt;p&gt;Incidents were expected, contained, and learned from, not blamed on individuals. They did not hope for resilience. They built it.&lt;/p&gt;
&lt;p&gt;If they did have an incident, they would own it, not just fix the problem and sweep it under the rug.&lt;/p&gt;


  
&lt;h2 id="build-for-containment-not-perfection"&gt;Build for Containment, Not Perfection&lt;/h2&gt;
&lt;p&gt;Every serious product needs resilience capabilities: telemetry, rapid roll-forward, observability, and risk containment.&lt;/p&gt;
&lt;p&gt;Without telemetry, you cannot see what is happening. Without rapid roll-forward, you cannot respond fast enough. Without observability, you cannot understand why things are happening. Without risk containment, small failures turn into major outages.&lt;br&gt;
If you have to shut down your entire platform to fix one feature, you have already failed.&lt;/p&gt;
&lt;p&gt;Microsoft’s teams built telemetry into everything. They measured customer experience directly , failed or slow user minutes , not just server uptime. They tuned alerts to detect real-world impact. They used safe deployment rings with deliberate bake times to catch problems early. They separated deployment from exposure using feature flags, and stopped cascading failures with circuit breakers and throttling.&lt;/p&gt;
&lt;p&gt;Failures were not exceptional. Failures were normal.&lt;br&gt;
Resilience was not improvised. It was engineered.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="treat-resilience-as-a-first-class-investment"&gt;Treat Resilience as a First-Class Investment&lt;/h2&gt;
&lt;p&gt;Resilience is not free, but the cost of neglecting it is far higher. Downtime kills customer trust. Outages cost revenue. Slow recovery wrecks morale. Ignoring resilience is gambling with your business.&lt;/p&gt;
&lt;p&gt;Treat resilience like a feature. Design it. Engineer it. Continuously improve it. Put it in your &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt;. Make it part of every code review, every architecture discussion, every release decision. If you are not actively designing for resilience, you are designing for fragility whether you mean to or not.&lt;/p&gt;
&lt;p&gt;Build for failure. Measure resilience empirically. Improve relentlessly.&lt;/p&gt;


  
&lt;h2 id="pragmatic-steps-to-build-resilience"&gt;Pragmatic Steps to Build Resilience&lt;/h2&gt;
&lt;p&gt;You do not need permission to start. You do not need to fix everything at once. You just need to move with intent:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Instrument everything. If you cannot measure it, you cannot manage it.&lt;/li&gt;
&lt;li&gt;Make every change reversible or overridable. Progressive delivery, feature flags, and automated deployments are minimum standards.&lt;/li&gt;
&lt;li&gt;Build for isolation. Cells, circuit breakers, and throttling prevent one failure from taking down the system.&lt;/li&gt;
&lt;li&gt;Treat incidents as system signals, not team failures. Every incident is feedback for your product and your organisation.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h2 id="failure-is-inevitable-your-response-is-optional"&gt;Failure is Inevitable. Your Response is Optional.&lt;/h2&gt;
&lt;p&gt;You will never eliminate failure. That is not the goal.&lt;br&gt;
The goal is to ensure that failures are small, contained, quickly detected, and rapidly recovered without compromising your product or your business.&lt;/p&gt;
&lt;p&gt;If you want resilience, build it deliberately. Make it part of your product. Treat it with the same seriousness as security, scalability, and usability. Anything less is just gambling that the next crisis will not be the one that takes you down.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resilience is not heroism. Resilience is system design.&lt;/strong&gt;&lt;br&gt;
Own it as you would any other critical feature. Because it is one.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Release planning and predictable delivery</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/release-planning-and-predictable-delivery/</link>
      <pubDate>Tue, 24 Nov 2020 13:00:01 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/release-planning-and-predictable-delivery/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Tenet</category>
      <category>Product Development</category>
      <category>Engineering Excellence</category>
      <category>Scrum</category>
      <description>Agile and release management are not inherently incompatible; predictable delivery is achievable with an organisational commitment to continuous quality and transparency. Trust and predictability depend on the regular delivery of working software, making quality a non-negotiable priority decided at the executive level. Software development differs fundamentally from manufacturing because each feature is new and inherently unpredictable, much like creating a film, where plans, budgets, and cross-functional collaboration guide production but do not guarantee certainty. Teams must stop creating technical debt, ensure clear minimum standards for "done", and continuously improve with fixed-length iterations, test-first practices, and development teams that own the whole lifecycle. The distinctive idea is that if you cannot ship at the end of each sprint, you should pause feature work—"Scrumble"—to address quality, pay back technical debt, and restore the ability to deliver working software.</description>
      <content:encoded>&lt;p&gt;Many organisations wrestle with the seeming incompatibility between agile and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/release-management/"&gt;release management&lt;/a&gt;, and they struggle with release planning and predictable delivery.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nkdagility.com/the-2020-scrum-guide/" target="_blank" rel="external noopener noreferrer"&gt;Updated to reflect the 2020 Scrum Guide! &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

    
    

  
&lt;h2 id="tldr"&gt;TL;DR;&lt;/h2&gt;
&lt;p&gt;Without &lt;a href="https://engineering-leadership.hinshelwood.com/tags/working-software/"&gt;working software&lt;/a&gt;, you can&amp;rsquo;t build trust and you don&amp;rsquo;t know when you will get the next piece of working software.&lt;/p&gt;
&lt;p&gt;Any software that you create is an organisational asset and decisions to cut quality need to be reflected in your company accounts and as such those decisions need to made by your executive &lt;a href="https://engineering-leadership.hinshelwood.com/categories/leadership/"&gt;leadership&lt;/a&gt; and should not be made by &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt;. Once you accept this, and quality becomes non-negotiable, your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Dev&lt;/a&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;e&lt;/a&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;lopers&lt;/a&gt; can focus on creating usable increments of working software. Once you have usable increments of working software, you can then start to look with interest at the progress being made on features and goals.&lt;/p&gt;
&lt;p&gt;Without a regular cadence of delivery of working software any belief that you will get a usable &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;increment&lt;/a&gt; is misguided at best. &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Professional Developers&lt;/a&gt; create working software.&lt;/p&gt;


  
&lt;h2 id="release-planning-and-predictable-delivery"&gt;Release planning and predictable delivery&lt;/h2&gt;
&lt;p&gt;The incompatibility between predictable delivery and agility is fictitious (&lt;a href="http://clicktotweet.com/Ub4K3" target="_blank" rel="external noopener noreferrer"&gt;tweet this &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;) and while usually created by an organisation and structure that is unwilling to let go of the old ways and embrace the tenants of agile it can also be the result of a &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#scrum-team"&gt;Scrum Teams&lt;/a&gt; fervour to divest themselves of all things that smack of prior planning. There is a lack of understanding that agile and the path to agility is far more than just a change in the way that you build software, it is a fundamental shift in the way that you run your business. Much like the &lt;a href="https://engineering-leadership.hinshelwood.com/categories/lean/"&gt;lean&lt;/a&gt; movement in manufacturing, companies that embraced it wholeheartedly were the ones that ultimately see the competitive edge that it provides. If one is unwilling to let go of the old ways, then one can’t attain the value of the new. This change will take hard work and courage as the fundamental &lt;a href="https://engineering-leadership.hinshelwood.com/tags/transparency/"&gt;transparency&lt;/a&gt; required to inspect and adapt effectively is at odds with the measures of the past. The lack of predictability of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/software-development/"&gt;software development&lt;/a&gt; is the key to understanding the new model.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="why-is-software-so-unpredictable"&gt;Why is software so unpredictable&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;All software development is &lt;a href="https://engineering-leadership.hinshelwood.com/categories/product-development/"&gt;product development&lt;/a&gt;.&lt;/strong&gt; In lean manufacturing, we can optimise the production of pre-developed products through the nature of its predictable production. Each unit of work takes the same amount of materials and time to produce so any changes that we make to the process, time, or materials can easily be qualified and the benefit demonstrated. &lt;strong&gt;Manufacturing lives in the predictive world.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With software everything that we create takes its own amount of time: You can really only know how long something took after it has been completed. Even in manufacturing if you asked an engineer how long it would take to develop a new type of unit of work they would not be able to tell you with any certainty. Once they have developed it however they can tell you exactly how long it will take to make each one, and then systematically optimise the process that you use to make it. In software development we are always doing new product design, therefore, we have no certainty&amp;hellip;and this often results in chaos. &lt;strong&gt;Software lives in the empirical world.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;All is not lost however as we can, by looking at our history of delivery for similar things, make a pretty good &lt;strong&gt;forecast&lt;/strong&gt;…&lt;/p&gt;
&lt;p&gt;The best thing we can then do is to expend effort to make that forecast as accurate as possible while accepting that more time spent planning does not necessarily affect the accuracy of that forecast.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image80-1-1.png" class="post-img-link" data-toggle="lightbox" data-caption="image"&gt;
  &lt;img src="images/image80-1-1.png" loading="lazy" alt="image" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Figure: Diminishing returns from &lt;a href="http://leadinganswers.typepad.com/leading_answers/2007/11/agile-estimatin.html" target="_blank" rel="external noopener noreferrer"&gt;Agile Estimating – Estimation Approaches &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ultimately Software Development is a creative endeavour and has the same lack of predictability that painting a picture, writing a book or making a movie has. Yet movies get made all of the time. How can that possibly be! Well, they have a Director (&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-owner"&gt;Product Owner&lt;/a&gt;) that has a bunch of money and a delivery plan, a Producer (&lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; Master) to make sure that everyone has the skills, knowledge and assets available at the right time and place and one or more Units (Scrum Teams) that have all of the skills necessary to turn the Directors ideas into a working movie. They create Storyboards of what they expect to create so that they can run it past the stakeholders and get feedback. They take those storyboards to the Units who collaboratively work together with the stunt, prop, lighting, camera, sound and wardrobe crews to get estimates and costs and ultimately coordinating to create the movie. Sometimes they don’t know how to do stuff and have to have a go and see what they get.&lt;/p&gt;
&lt;p&gt;Making a movie is just like building software, you need a budget, you need a plan, and you are trying to reach a ship date. And just like making a movie, you have to make money at the end of the day so that you can do it all over again.&lt;/p&gt;


  
&lt;h2 id="accept-the-lack-of-predictability"&gt;Accept the lack of predictability&lt;/h2&gt;
&lt;p&gt;While I hope by now you understand that the lack of predictability is part of the nature of building software, there are many things that we can do to lessen the impact of that chaos. Indeed if you were to estimate all of the discreet things that you need to do to achieve a goal (let us call them backlog items) in Small, Medium and Large what would your standard deviation of actual hours be? I would wager that it is fairly large. So large in fact that at least half of all mediums would be more accurately classified as Large. But that reclassification can only be done with hindsight. This is indeed one of the tenants of the No-Estimates movement, as really there are only three classifications of size: &lt;strong&gt;small,&lt;/strong&gt; &lt;strong&gt;fits&lt;/strong&gt; in a Sprint, or &lt;strong&gt;too big&lt;/strong&gt; to fit in a Sprint.&lt;/p&gt;
&lt;p&gt;This difficulty in &lt;a href="https://engineering-leadership.hinshelwood.com/tags/estimation/"&gt;estimation&lt;/a&gt; is normal for organisations that move towards agility as the transparency that it brings uncovers these sorts of problems. In order to increase the accuracies of our forecasts, there are a number of simple activities that we can perform. These activities, while easy to understand, are very hard to do as they require a culture shift within your organisation as well as the courage of the participants to make them work.&lt;/p&gt;


  
&lt;h2 id="focus-on-continuous-quality"&gt;Focus on continuous quality&lt;/h2&gt;
&lt;p&gt;Most software lacks quality for the simple reason that you can not easily see the quality in software like you could with a table or a painting. I am not talking about the quality of the User Interface, but the quality under the covers; the quality of the code.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;If you put developers under pressure to deliver they will continuously and increasingly cut quality to meet deadlines.-Unknown (&lt;a href="http://clicktotweet.com/0U2be" target="_blank" rel="external noopener noreferrer"&gt;Tweet this &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;)&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;A lack of quality of the code results in an increase in &lt;a href="https://engineering-leadership.hinshelwood.com/blog/professional-scrum-teams-build-software-works/"&gt;Technical Debt&lt;/a&gt; (or more accurately an unhedged fund) which in turn results in two nasties. The first is the teams increasingly have to spend more time struggling with the complexity of your software rather than on new features. If you are still pushing your teams to deliver the same feature level every year you are only encouraging them to cut more quality and thus incurring more &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt; which becomes a vicious cycle. The second is an increasing number of bugs found in production. Bugs found in production also directly impact on the number of features that the team can deliver and any bug, no matter how small, costs ten times and much to fix in production than it does in development.&lt;/p&gt;
&lt;p&gt;The only way to handle technical debt is to stop creating it, and then pay a little back each iteration. If however, you are so drowning in technical debt that you cant create working software at the end of the iteration then:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a &lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/blog/getting-started-definition-done-dod/"&gt;short measurable checklist&lt;/a&gt;&lt;/strong&gt; that mirrors minimum releasable product (&lt;a href="https://engineering-leadership.hinshelwood.com/blog/getting-started-definition-done-dod/"&gt;Defenition of Done&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Stop adding new features and &lt;strong&gt;make your product meet that checklist&lt;/strong&gt; and release your product&lt;/li&gt;
&lt;li&gt;While you have an increment of working software (&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#the-sprint"&gt;Sprint&lt;/a&gt;)
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Work to create something of value (&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#increment"&gt;Increment&lt;/a&gt;)&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Work towards a new goal while meeting the DOD (&lt;a href="https://engineering-leadership.hinshelwood.com/blog/the-sprint-goal-is-a-commitment-for-the-sprint-backlog/"&gt;Sprint Goal&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Leave things better than you found them (&lt;a href="https://engineering-leadership.hinshelwood.com/categories/engineering-excellence/"&gt;Engineering Excellence&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review that thing of value with your stakeholders (&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#sprint-review"&gt;Sprint Review&lt;/a&gt;, Backlog Adaption)&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Get feedback on at least one new thing for stakeholders&lt;/li&gt;
&lt;li&gt;Update the Backlog to reflect this new information&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reflect on how you worked with your entire team (&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#sprint-retrospective"&gt;Sprint Retrospective&lt;/a&gt;, Kaizen)&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;Is quality increasing?&lt;/li&gt;
&lt;li&gt;Is the DOD increasing?&lt;/li&gt;
&lt;li&gt;What can we change to make things better?&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Go to #1&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can call the activity that results from dropping out of the while loop of working software to be a &lt;strong&gt;Scrumble&lt;/strong&gt;; You need to stop piling more features on top of the features that don’t work and fix things so that you can make new things. Ultimately &lt;a href="https://engineering-leadership.hinshelwood.com/blog/professional-scrum-teams-build-software-works/"&gt;professional teams build software that works&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are a number of strategies that can help you both stop creating and start paying back technical-debt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sufficient requirements&lt;/strong&gt; – If your backlog has things in it that are too big or too vague then your team will not really be able to understand them and this, in turn, creates a multiplier for uncertainty. Follow the INVEST (Independent, Negotiable, Valued, Estimable, Small, Testable ) model for every single thing that you ask the team to deliver. If you invest in you backlog in this way you will find it much easier to deliver the contents and thus predict that delivery. This will require you to spend a significant amount of time in refinement. &lt;a href="https://engineering-leadership.hinshelwood.com/tags/backlog-refinement/"&gt;Backlog refinement&lt;/a&gt; is key to facilitating a flow of actionable Backlog Items to your team.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; choose what they can deliver&lt;/strong&gt; – this implies that the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; can reject any item on the backlog that they do not understand. If we accept that every &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developer&lt;/a&gt; is trying to do their best to deliver for their &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-owner"&gt;Product Owner&lt;/a&gt; then the only reason to reject anything would be if an item is too big or does not have enough detail to understand. These Backlog Items can be put on the queue for refinement and refined over the next Sprint. Remember that there is &lt;a href="https://engineering-leadership.hinshelwood.com/blog/the-fallacy-of-the-rejected-backlog-item/"&gt;no such thing as a rejected backlog item&lt;/a&gt;, only actionable feedback and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-improvement/"&gt;continuous improvement&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt; (DoD)&lt;/strong&gt; – Along with having sufficient requirements the single biggest blocker to predictability is a lack of common understanding of DONE. Done for &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; should equal what it means to complete an item with no further work required to ship it. If &lt;a href="https://engineering-leadership.hinshelwood.com/blog/professional-scrum-teams-build-software-works/"&gt;you cant ship working software&lt;/a&gt; then you need to stop sprinting, Scrumble, and focus on getting your software into a shape that can be delivered in a Sprint.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test First&lt;/strong&gt; - Focus on &lt;a href="https://engineering-leadership.hinshelwood.com/blog/you-are-doing-it-wrong-if-you-are-not-using-test-first/"&gt;Test First practices like TDD or ATDD&lt;/a&gt; to help you make sure that not only did your engineers build what they expect, but that you ultimately built what the customer expects.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fixed length iterations&lt;/strong&gt; – If you have variable length iterations you can’t be sure what you can do in a particular timeframe. How much decomposition do you need to do to the backlog? How much can the team deliver in a single iteration? You can’t be sure unless you have fixed length iteration, and &lt;a href="https://engineering-leadership.hinshelwood.com/blog/a-better-way-than-staggered-iterations-for-delivery/"&gt;you reject the idea of staggered iterations&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No separate teams&lt;/strong&gt; – This means no separate test teams, configuration management teams and definitely no separate maintenance teams. It&amp;rsquo;s hard for folks to grasp, especially with the recent focus on &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; but if you have separate teams then why would your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt;, those best placed to fix any problems, care about the problems of other teams. The most successful organisations at creating software have development teams that own the entire application lifecycle (Amazon AWS | Visual Studio | &lt;a href="https://engineering-leadership.hinshelwood.com/tags/azure-devops/"&gt;Azure DevOps&lt;/a&gt;.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manage dependencies&lt;/strong&gt; - Managing dependencies is a hard task and my advice would always be to minimise the number of dependencies that you have. &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; should have all of the skills required to deliver what you want at the quality level that you want. So if you need to have productionised databases or scripting for production delivery then you might need a DBA or an Operations administrator or two. This can be hard for many teams or organisations but you will have far less success creating silos like Configuration Management or DevOps. Rather add those individuals that you need to the team. However, if you have a dependency on a separate team, maybe you have an application upon which all of your other applications depend, then you may need another way. This is not a silo of types of individual skills, but of a domain and that team just has something in their backlog upon which you are dependent. It is up to the team&amp;rsquo;s respective &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-owner"&gt;Product Owners&lt;/a&gt; to fight negotiate over when these things get done.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/modern-source-control/"&gt;modern source control&lt;/a&gt; system&lt;/strong&gt; - A &lt;a href="https://engineering-leadership.hinshelwood.com/blog/getting-started-with-modern-source-control-system-and-devops/"&gt;modern source control system is more than just code management&lt;/a&gt;, it should include all of the goodies talked about in DevOps practices and beyond.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you can, do them all, and many more…&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Work can flow across the Sprint boundary</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/work-can-flow-across-the-sprint-boundary/</link>
      <pubDate>Tue, 30 Jan 2018 20:12:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/work-can-flow-across-the-sprint-boundary/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Method</category>
      <category>Product Development</category>
      <category>Scrum</category>
      <category>Engineering Excellence</category>
      <description>Scrum does not prohibit work from flowing across Sprint boundaries; enabling such flow, when it does not compromise the Sprint Goal, increases delivery speed, throughput, and adaptability to feedback. The Sprint is mainly a planning container, not always a delivery boundary, and advanced techniques like Continuous Delivery and use of Kanban can strengthen Scrum practices. Strategic Sprint Goals must focus on measurable customer or business outcomes, with clear, Done increments ensuring transparency and supporting informed investment decisions. Critical engineering practices such as feature toggles, refactoring, and Test Driven Development enable frequent validation, early delivery, and manage unfinished work crossing Sprints. In Scrum, incomplete Backlog Items are not the same as "undone" work, and work can flow between Sprints as long as transparency, empirical control, and the achievement of Sprint Goals are maintained.</description>
      <content:encoded>&lt;p&gt;There is nothing in the &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; Guide that explicitly prevents work from flowing across the Sprint boundary. In fact, allowing flow across Sprints, without compromising the Sprint Goal, is a pragmatic strategy that enhances delivery, throughput, and responsiveness to customer feedback.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For practical guidance, explore the&lt;/strong&gt; &lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/guides/kanban-guide-for-scrum-teams/"&gt;Kanban Guide for Scrum Teams&lt;/a&gt;&lt;/strong&gt;, and consider attending a &lt;strong&gt;&lt;a href="https://courses.nkdagility.com/professional-scrum-with-kanban/"&gt;Professional Scrum with Kanban&lt;/a&gt;&lt;/strong&gt; class.&lt;/p&gt;

    
    

  
&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;The Definition of Done ensures transparency and quality and is non-negotiable. The Sprint Goal must articulate clear, measurable business outcomes or customer benefits. Effective flow requires reducing batch sizes, allowing unfinished work to cross Sprint boundaries strategically. Professional &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Teams&lt;/a&gt; adept at consistently delivering &lt;a href="https://engineering-leadership.hinshelwood.com/articles/the-definition-of-done-is-a-commitment-to-quality/"&gt;Done increments&lt;/a&gt; significantly enhance their &lt;a href="https://engineering-leadership.hinshelwood.com/tags/throughput/"&gt;throughput&lt;/a&gt; by embracing flow principles and rapid feedback cycles.&lt;/p&gt;
&lt;p&gt;&lt;a href="images/nkdagility-cross-sprint-boundary-800x390-1-2.png" class="post-img-link" data-toggle="lightbox"&gt;
  &lt;img src="images/nkdagility-cross-sprint-boundary-800x390-1-2.png" loading="lazy" alt="Work can flow across the Sprint boundary" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A Sprint serves primarily as a container for planning, not always for delivery. Just as &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;Continuous Delivery&lt;/a&gt; integrates seamlessly with Scrum, incorporating flow through &lt;a href="https://engineering-leadership.hinshelwood.com/categories/kanban/"&gt;Kanban&lt;/a&gt; complements and strengthens Scrum practices. All teams can benefit from this approach, provided they consistently achieve clear, outcome-focused Sprint Goals and maintain transparent, Done increments.&lt;/p&gt;


  
&lt;h2 id="managing-work-across-sprint-boundaries"&gt;Managing Work Across Sprint Boundaries&lt;/h2&gt;
&lt;p&gt;Allowing work to flow across Sprint boundaries is an advanced yet beneficial technique. Initially, many teams struggle as they rarely achieve truly &lt;a href="https://engineering-leadership.hinshelwood.com/tags/working-software/"&gt;Working Software&lt;/a&gt; or fully meet their Sprint Goals by Sprint&amp;rsquo;s end. Transitioning to a mindset of flow and continuous validation is crucial for agile maturity.&lt;/p&gt;
&lt;p&gt;My early scepticism around flowing work across Sprints shifted through deeper discussions with colleagues like Steve and Daniel. The critical insight was distinguishing the necessity of a Done &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;Increment&lt;/a&gt; from the expectation that all Product Backlog Items (PBIs) must be completed by Sprint&amp;rsquo;s end.&lt;/p&gt;
&lt;p&gt;Teams practicing Continuous Delivery (CD) inherently create working software incrementally and continuously. Such teams typically automate every aspect of their &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt;. Thus, by the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/sprint-review/"&gt;Sprint Review&lt;/a&gt;, presenting completed increments is straightforward and predictable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For a professional Scrum Team, adopting CD is foundational, not optional.&lt;/strong&gt;&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="strategic-sprint-goals-and-continuous-value"&gt;Strategic Sprint Goals and Continuous Value&lt;/h2&gt;
&lt;p&gt;Good Sprint Goals clearly articulate measurable outcomes or customer benefits rather than listing features or technical tasks. These goals act as strategic stepping stones toward your broader product or business roadmap, enhancing the clarity and alignment of your team’s efforts. Poorly constructed Sprint Goals, focused merely on delivering bundles of functionality or technology, often fail to communicate explicit and measurable benefits.&lt;/p&gt;
&lt;p&gt;Aim to deliver multiple increments within a single Sprint, frequently gathering user feedback to continuously inspect and adapt progress toward your Sprint Goal. Regular increments and rapid feedback loops foster empirical control, allowing the team to pivot swiftly based on emerging insights or market changes.&lt;/p&gt;


  
&lt;h2 id="minimal-sunk-costs-and-strategic-investment"&gt;Minimal Sunk Costs and Strategic Investment&lt;/h2&gt;
&lt;p&gt;Organisations invest in products or services one Sprint at a time. Each Sprint represents a potential decision point: assessing product-market fit and deciding whether continued investment is justified. The ultimate aim is to minimize sunk costs, banking created value incrementally and evaluating whether the product should continue development, transition to maintenance, or be marked end-of-life. Effective Sprint Goals and transparent increments support informed strategic decisions, ensuring resources align with business outcomes.&lt;/p&gt;


  
&lt;h2 id="shipping-software-with-unfinished-pbis"&gt;Shipping Software with Unfinished PBIs&lt;/h2&gt;
&lt;p&gt;Flow necessitates disciplined engineering practices ensuring early, frequent validation through automation. Key practices significantly enhancing CD include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Feature Toggles&lt;/strong&gt; – Enable controlled exposure, A/B testing, and experimentation. Temporary toggles must be systematically removed through refactoring upon feature completion.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Refactoring&lt;/strong&gt; – Regularly restructure code for clarity, maintainability, and responsiveness to customer feedback.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/test-driven-development/"&gt;Test Driven Development (TDD)&lt;/a&gt;&lt;/strong&gt; – Validate code functionality continuously, supporting confident incremental changes and refactoring.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While complementary, these practices are fundamental to robust CD frameworks. Experimentation and iterative improvements tailor their application effectively to your context.&lt;/p&gt;


  
&lt;h2 id="aligning-flow-with-scrum-principles"&gt;Aligning Flow with Scrum Principles&lt;/h2&gt;
&lt;p&gt;The Scrum Guide mandates a Done increment each Sprint for &lt;a href="https://engineering-leadership.hinshelwood.com/tags/transparency/"&gt;transparency&lt;/a&gt;. Without transparent increments, empirical control suffers, undermining Scrum itself.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Unfinished Backlog Items differ fundamentally from incomplete (&amp;ldquo;undone&amp;rdquo;) work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Flowing work between Sprints is permissible within Scrum if aligned with clear Sprint Goals and delivering usable increments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sprint Review&lt;/strong&gt; – Teams collaboratively inspect completed increments, openly discuss incomplete work, and revise the Product Backlog based on stakeholder insights and measurable outcomes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sprint Planning&lt;/strong&gt; – Establishes clear goals and forecasts achievable work items, ensuring alignment with delivering increments and measurable Sprint Goals.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sprint Goal&lt;/strong&gt; – Provides strategic focus. Teams can integrate additional work provided primary Sprint Goals remain achievable, enabling strategic decision-making based on ongoing feedback.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Regularly revisiting the Scrum Guide, emphasizing empirical control, and maintaining &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-values/"&gt;Scrum Values&lt;/a&gt; ensures successful flow integration within Scrum. Consistently verify increments against the Definition of Done and fulfil measurable Sprint Goals.&lt;/p&gt;
&lt;p&gt;For further insights, review the &lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/guides/kanban-guide-for-scrum-teams/"&gt;Kanban Guide for Scrum Teams&lt;/a&gt;&lt;/strong&gt; and consider participating in a &lt;strong&gt;&lt;a href="https://courses.nkdagility.com/professional-scrum-with-kanban/"&gt;Professional Scrum with Kanban&lt;/a&gt;&lt;/strong&gt; course.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Rethinking Capacity Planning</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/rethinking-capacity-planning/</link>
      <pubDate>Mon, 21 Jul 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/rethinking-capacity-planning/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Capability</category>
      <category>Lean</category>
      <category>Product Development</category>
      <category>Leadership</category>
      <description>Capacity planning must shift from tallying individual hours or tasks to managing flow, system constraints, and predictability across portfolio, category, and team levels. Focusing on individual utilisation leads to local optimisation and overload, while value delivery suffers and predictability collapses. The real constraint is not team speed, but how many initiatives the system can handle before bottlenecks and dependencies arise. Instead of tracking people, organisations should set and enforce WIP limits, right-size work, and measure system-level metrics like lead time and process cycle efficiency. Leadership’s role is to remove obstacles, protect system flow, and focus on sustainable, predictable value delivery, not push teams for more output or busyness.</description>
      <content:encoded>&lt;p&gt;Capacity planning is not about filling calendars or counting resource hours. It is about flow, system constraints, and predictability. And importantly, what we are talking about here applies even within environments of strict budgets, immovable deadlines, and rigorous accountabilities. Lean approaches do not discard discipline; they reframe how we achieve predictability, accountability, and sustainable delivery by focusing on the system, not just the parts. These ideas align directly with the Scrum ethos of empirical process control and the Kanban strategy of observing and managing work-in-progress limits to enhance value delivery.&lt;/p&gt;
&lt;p&gt;Too many organisations frame capacity as “how many hours does each person have?” or “how many tasks can we assign this sprint?” They fall into the trap of breaking complex, systemic work into artificial personal quotas, focusing on individual loading rates instead of collective flow. This leads to managers obsessing over how ‘utilised’ each person is, mistaking busyness for progress. Teams become overloaded with microtasks, pulled into multitasking, and lose sight of flow efficiency and value creation. This mindset traps them in local optimisations, overload, and multitasking chaos. Everyone looks busy, but value delivery crumbles. Deadlines slip, work piles up, and predictability collapses.&lt;/p&gt;
&lt;p&gt;We need to shift from individual task-level tracking and micromanagement to managing the system of work.&lt;/p&gt;

    
    

  
&lt;h2 id="three-levels-of-capacity-planning-strategic-category-team"&gt;Three Levels of Capacity Planning: Strategic, Category, Team&lt;/h2&gt;
&lt;p&gt;Effective capacity planning happens at three distinct but connected levels: portfolio (strategic), category (product or business unit), and team (execution). Each level has its own constraints, its own levers, and its own accountabilities. If you blur these levels, you end up with local optimisations, overloaded systems, and unpredictable delivery. If you handle them deliberately, you enable scalable, reliable flow across the entire organisation. This post lays out what matters at each level, where most organisations fail, and how to focus on the right system levers to improve predictability and value delivery.&lt;/p&gt;


  
&lt;h3 id="portfolio-level-strategic"&gt;Portfolio Level (Strategic)&lt;/h3&gt;
&lt;p&gt;At the portfolio level, individual capacity is irrelevant. Portfolio-level delivery is not the sum of people’s hours or team headcounts. It is about the system’s ability to progress and complete major initiatives across the organisation.&lt;/p&gt;
&lt;p&gt;Traditional project management has well-established strengths , especially in controlling scope, budget, and schedule , but repeatedly makes the same flawed assumptions when applied to complex, system-wide delivery. To connect better, we should acknowledge where traditional methods excel and then explain why they hit limits at scale or in domains like software engineering, where variability and complexity cannot be fully controlled. It assumes that if you know how many people you have and how many hours they can work, you can calculate how many projects you can run. It treats capacity as a static sum of people, ignoring system dynamics like waiting times, handoffs, coordination overhead, and priority collisions. It assumes that by assigning people to projects and filling calendars, you maximise delivery. In reality, you simply increase work in progress, dilute focus, and create organisational thrashing.&lt;/p&gt;
&lt;p&gt;Flow-based, lean thinking demands a different focus. The real constraint at portfolio level is not team speed. It is how many initiatives the organisation can meaningfully progress in parallel before bottlenecks, cross-team dependencies, or funding constraints stall progress. This speaks directly to Lean’s core emphasis on optimising the system as a whole, not optimising local team measures. As Deming stressed, managing parts in isolation leads to suboptimisation , the real improvement comes when leadership steps back and improves the flow and constraints at the system level. It is about how efficiently the system moves work across teams, products, and functions, independent of how busy individuals are.&lt;/p&gt;
&lt;p&gt;Tracking individual capacity at portfolio level leads to local optimisation and wastes effort. Managing portfolio-level WIP, cross-team flow, and initiative-level progress gives you real, actionable capacity insight. Trying to map individual team throughput directly to portfolio delivery without addressing cross-initiative coordination, system WIP limits, or systemic blockers is a guaranteed failure.&lt;/p&gt;
&lt;p&gt;Specifically, leaders fall into the trap of believing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;That if every team improves throughput, the portfolio improves – false.&lt;/li&gt;
&lt;li&gt;That we can just sum team metrics to get total portfolio capacity – false.&lt;/li&gt;
&lt;li&gt;That we can ignore portfolio-level WIP and still forecast accurately – false.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The shift required is from “how many hours can we extract from people” to “how much value can the system deliver, predictably, given its real constraints.” This is why traditional project management fails at scale. It looks down at tasks and people when it should be looking up at systems and flow.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="category-level-product--business-unit"&gt;Category Level (Product / Business Unit)&lt;/h3&gt;
&lt;p&gt;At the category level, the biggest mistake is assuming you can simply roll up individual team flow metrics to understand category capacity, without managing cross-team dependencies, shared bottlenecks, or category-level WIP.&lt;/p&gt;
&lt;p&gt;Why is this wrong?&lt;/p&gt;
&lt;p&gt;Teams within a category rarely operate in isolation. They share architectures, platforms, specialists, and decision-makers. Even if each team shows good local flow, the category’s overall delivery can be blocked by cross-team dependencies, shared capacity limits (such as UX, security, or operations), or coordination overhead (like release alignment or integration cycles).&lt;/p&gt;
&lt;p&gt;Traditional thinking assumes category performance equals the sum of teams’ performance. In reality, category performance is governed by the speed of the slowest shared bottleneck and the organisation’s ability to coordinate across flows.&lt;/p&gt;
&lt;p&gt;What needs to shift:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apply category-level WIP limits on how many initiatives or epics are in play across all teams.&lt;/li&gt;
&lt;li&gt;Focus on improving cross-team flow and dependency management, not just local team throughput.&lt;/li&gt;
&lt;li&gt;Measure flow across the value stream, not within isolated team swimlanes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The mistake is failing to treat the category as an interconnected system. Local team improvements mean little if the category’s delivery is constrained by systemic coordination, shared services, or unmanaged WIP.&lt;/p&gt;


  
&lt;h3 id="team-level-execution"&gt;Team Level (Execution)&lt;/h3&gt;
&lt;p&gt;The core mistake at the team level when moving to flow metrics is assuming that flow metrics like throughput or cycle time are just “better tracking” of individual performance, rather than system-level indicators of work preparation, flow, and blockers.&lt;/p&gt;
&lt;p&gt;Why is this wrong?&lt;/p&gt;
&lt;p&gt;Traditional teams apply flow metrics to individuals, asking: “How many tasks did you finish?” or “What’s your personal throughput or cycle time?” This creates local pressure, gaming, and false signals because flow metrics were never designed to evaluate individuals. They measure how well the team system moves work end-to-end.&lt;/p&gt;
&lt;p&gt;Teams also often skip the upstream preparation work, thinking that flow metrics alone will fix predictability, without addressing key conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Right-sizing work&lt;/li&gt;
&lt;li&gt;Defining clear pull-ready conditions&lt;/li&gt;
&lt;li&gt;Setting and respecting WIP limits&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What needs to shift:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Treat flow metrics as team-level health signals, not personal performance measures.&lt;/li&gt;
&lt;li&gt;Focus on improving system conditions , work size, WIP, and dependencies , to improve flow, not squeezing people for more.&lt;/li&gt;
&lt;li&gt;Use metrics to guide improvement conversations, not to monitor or punish individuals.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The mistake is misapplying flow metrics as individual productivity tools instead of using them to improve team system flow. Without addressing preparation, WIP, and collaboration, adding flow metrics just creates new reporting noise.&lt;/p&gt;


  
&lt;h2 id="what-needs-to-change"&gt;What needs to change&lt;/h2&gt;
&lt;p&gt;The shift from individual capacity thinking to system-level flow demands disciplined, pragmatic changes across the organisation. This is not a matter of adding a few charts or running reports , it’s a change in ethos. It is about treating capacity as an emergent system property, not a mechanical sum of parts.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="focus-on-throughput-lead-time-and-efficiency"&gt;Focus on Throughput, Lead Time, and Efficiency&lt;/h3&gt;
&lt;p&gt;Rather than fixating on individual or team utilisation, shift your measurement to system-level flow. Pay attention to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The number of items completed per sprint or delivery cycle (noting this assumes work items are similarly sized; otherwise, throughput comparisons can be misleading).&lt;/li&gt;
&lt;li&gt;The average lead time from work start to completion, helping reveal system bottlenecks and delays.&lt;/li&gt;
&lt;li&gt;Process cycle efficiency (PCE): the proportion of time work actively moves versus all non–value-adding activities (not just waiting), exposing inefficiencies across the system. This includes unnecessary committees, bureaucratic processes, and other activities that exist only to service themselves rather than delivering value.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal is not to ask, “Who can take on more?” but to ask, “What does our system reliably deliver, and how can we improve flow without overburdening people or teams?”&lt;/p&gt;


  
&lt;h3 id="stop-misusing-estimation-start-right-sizing"&gt;Stop Misusing Estimation, Start Right-Sizing&lt;/h3&gt;
&lt;p&gt;Stop wasting time trying to predict perfect effort estimates.&lt;/p&gt;
&lt;p&gt;Instead, apply the Lean principle of reducing variability and batch size, using queuing theory to improve system flow. But be clear: software engineering lives in the complex domain, not the clear or complicated domain where variability can simply be engineered away. We cannot eliminate variability entirely, but we can reduce unnecessary variability by defining a clear definition of workflow, supported by approaches like One Engineering System (1ES) and platform engineering. These strategies help standardise and stabilise the environment, tools, and pipelines , leaving only the unavoidable, context-driven variability that belongs to the real problem space.&lt;/p&gt;
&lt;p&gt;To right-size effectively:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Break work into small, similarly sized, meaningful slices that fit smoothly through your system.&lt;/li&gt;
&lt;li&gt;Focus on cutting work to a shape the system can absorb predictably , not wasting time on abstract story points or inflated complexity debates.&lt;/li&gt;
&lt;li&gt;Use historical throughput and cycle time data to calibrate what &amp;lsquo;small enough&amp;rsquo; looks like in practice, not in theory.&lt;/li&gt;
&lt;li&gt;Make right-sizing part of your working agreements and backlog preparation, ensuring teams only pull work that meets clear, shared readiness standards.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The issue isn&amp;rsquo;t estimation itself, it&amp;rsquo;s turning estimation into something it was never meant to be. Right-sizing is still estimation, just done in a simpler and more honest way. This is not about squeezing people harder; it is about designing a steady, sustainable system where predictability is built directly into the shape and handling of the work.&lt;/p&gt;


  
&lt;h3 id="apply-wip-limits-and-enforce-pull"&gt;Apply WIP Limits and Enforce Pull&lt;/h3&gt;
&lt;p&gt;Stop treating WIP limits as a mechanical cap or a reportable metric. They are a deliberate, disciplined strategy to protect system flow and predictability. Set clear limits on how many initiatives, epics, or stories are in play , not on how many tasks an individual can juggle. Once the system reaches its limit, stop adding work. Enforce pull: nothing new enters until capacity is truly available. Multitasking is toxic; kill it without hesitation. This is not about pushing people harder; it’s about designing the system so work flows cleanly and teams can focus, finish, and deliver predictably.&lt;/p&gt;


  
&lt;h3 id="forecast-with-empirical-data"&gt;Forecast With Empirical Data&lt;/h3&gt;
&lt;p&gt;Stop pretending forecasts are about precision. Forecasting is about understanding what the system consistently delivers and using that to set realistic expectations, with the important caveat that this relies on the assumption of a relatively stable system, as Lean approaches depend on system stability for predictability. This also means recognising how system constraints align with legal mandates, statutory requirements, and interdepartmental dependencies , especially in public sector or regulated environments where external obligations shape the boundaries of what can be delivered and when. If your teams typically deliver 6–8 items per sprint, then forecast 6–8 , no sandbagging, no overpromising, no wishful thinking. Use past variance to shape your delivery ranges and confidence levels. Forecasting is not about heroic assumptions; it is about respecting the boundaries of what your system can actually achieve. Teach leadership that predictability comes from protecting system health, not demanding unrealistic outputs or pushing teams beyond sustainable limits.&lt;/p&gt;


  
&lt;h3 id="monitor-flow-health-holistically"&gt;Monitor Flow Health Holistically&lt;/h3&gt;
&lt;p&gt;Flow health is not just a dashboard; it is the living pulse of your system. Go beyond counting throughput and look deeper:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rising cycle or lead times , these are your early-warning signals of hidden bottlenecks creeping into the system (and, as noted earlier, low PCE includes more than just waiting , it also covers other forms of systemic waste and non–value-adding activities).&lt;/li&gt;
&lt;li&gt;Aging WIP , when work lingers without progress, it is a red flag that something is stalled or blocked.&lt;/li&gt;
&lt;li&gt;Low PCE , when too much time is spent waiting instead of progressing, it signals waste accumulating across the system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are not vanity metrics. They reveal how your system is truly performing, regardless of how full calendars look or how busy people appear. Build regular inspection of these health indicators into your operating rhythm. Use them not for blame or micromanagement, but as fuel for system-wide conversations: Where is flow breaking down? What needs to change? Where can we intervene to unblock, simplify, or improve?&lt;/p&gt;
&lt;p&gt;Healthy flow is not a side effect; it is a deliberate, ongoing outcome you must design, monitor, and continuously tune.&lt;/p&gt;
&lt;p&gt;The change is not cosmetic , it’s a fundamental rethink of how you approach planning, forecasting, and delivering across all levels of the organisation.&lt;/p&gt;


  
&lt;h3 id="the-role-of-leadership"&gt;The Role of Leadership&lt;/h3&gt;
&lt;p&gt;Leadership is not about control or oversight; it is about creating the conditions where teams and systems can thrive. Lean leadership models humility, removes systemic obstacles, and relentlessly focuses on delivering customer value, not just improving internal measures. Leaders must step back from the temptation to manage individuals and instead take accountability for enabling the system of work. That means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enabling true autonomy at the team level, giving teams the space to own their work and delivery, without micromanagement.&lt;/li&gt;
&lt;li&gt;Actively protecting WIP limits and pull discipline across the system, even when external pressures or senior stakeholders demand more.&lt;/li&gt;
&lt;li&gt;Investing in backlog refinement, right-sizing, and preparation so that teams pull only well-shaped, high-value work , and have the capacity to deliver it predictably.&lt;/li&gt;
&lt;li&gt;Focusing measurement on system health , time-to-market (TTM), process cycle efficiency (PCE), throughput, and lead time , not individual utilisation, heroics, or busyness.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Leaders are accountable for creating an environment where flow is deliberate, predictable, and sustainable. This is not about pushing people to work harder; it is about tuning the system so teams can focus, collaborate, and deliver value without unnecessary friction or disruption. True leadership means enabling the system, not extracting from the people.&lt;/p&gt;


  
&lt;h2 id="reframing-the-conversation"&gt;Reframing the Conversation&lt;/h2&gt;
&lt;p&gt;Lean capacity planning reshapes how we think about delivery, focus, predictability, and most critically, continuous learning and relentless improvement , the true core of Lean thinking.&lt;/p&gt;
&lt;p&gt;Stop asking, “How many tasks or hours can we assign?” Start asking, “How much value can the system deliver, at what lead time, and with what efficiency?”&lt;/p&gt;
&lt;p&gt;If you’re not measuring system health indicators like PCE or TTM, you are flying blind.&lt;/p&gt;
&lt;p&gt;This is not about making teams go faster. It is about creating smarter, healthier flow. Get the fundamentals right, and you unlock sustainable, reliable delivery that serves both your customers and your organisation.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Should You Use One Project to Rule Them All in Azure DevOps?</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/should-you-use-one-project-to-rule-them-all-in-azure-devops/</link>
      <pubDate>Mon, 25 Aug 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/should-you-use-one-project-to-rule-them-all-in-azure-devops/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Tool</category>
      <category>Product Development</category>
      <category>Technical Leadership</category>
      <category>Engineering Excellence</category>
      <description>Managing multiple Azure DevOps projects can create fragmentation, limited observability, and delivery delays. Using one Azure DevOps project for all teams, structured with clear Area Paths and Teams, enables unified visibility, simpler governance, and streamlined reporting with less operational overhead. Microsoft’s own Developer Division, with over 2,000 engineers, and the Windows team with more than 15,000 people, use a single project model to coordinate work at scale. Clear Area Path hierarchies and focused Azure DevOps Teams allow for fine-grained permissions, tailored boards, and cross-team reporting without the silos or duplication that come with multiple projects or organisations. Optimising for flow—rather than rigid structure—delivers better collaboration, transparency, and adaptability across product delivery.</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Most organisations still believe that managing multiple projects means a better organisation. It doesn’t. It could just be hiding your problems or even creating them.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you’re still using multiple team projects in Azure DevOps to represent every application, every team, or every product, you may be paying the price in fragmentation, lost observability, and poor flow. That might have made sense in TFS 2005, but it&amp;rsquo;s a liability in 2025.&lt;/p&gt;
&lt;p&gt;The real path to high-performing teams? &lt;strong&gt;One Project to rule them all&lt;/strong&gt;. One Azure DevOps Project, multiple teams, focused goals, observable flow. Scaled, not scattered.&lt;/p&gt;
&lt;p&gt;I have been advocating for &lt;a href="https://engineering-leadership.hinshelwood.com/articles/one-team-project/"&gt;One Team Project to rule them all&lt;/a&gt; almost from the beginning with &lt;a href="https://engineering-leadership.hinshelwood.com/articles/project-of-projects-with-team-foundation-server-2010/"&gt;Project of Projects with team Foundation Server 2010&lt;/a&gt;  and my stance has not changed, although the Azure DevOps product has a over the years.&lt;/p&gt;


  
&lt;h2 id="tldrx20"&gt;TL;DR; &lt;/h2&gt;
&lt;p&gt;The &amp;ldquo;many teams and projects&amp;rdquo; model in Azure DevOps is Microsoft’s own recommended setup, and one they use internally. It can make life easier for portfolio management and cross-team collaboration. But it comes with a price: increased complexity in setup, configuration, and ongoing maintenance. You’re trading operational simplicity for structural flexibility.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&amp;ldquo;One project to rule them all [Teams] and in [Azure DevOps] bind them&amp;rdquo;
- Martin Hinshelwood, 2010&lt;/p&gt;

  &lt;/blockquote&gt;



  
&lt;h2 id="when-should-you-have-multiple-projects-in-azure-devops"&gt;When should you have multiple Projects in Azure DevOps?&lt;/h2&gt;
&lt;p&gt;Microsoft &lt;a href="https://learn.microsoft.com/en-us/azure/devops/organizations/projects/about-projects?view=azure-devops" target="_blank" rel="external noopener noreferrer"&gt;clearly advises that projects are there to support multiple business units &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; and gives the following reasons for creating multiple projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support custom work tracking processes for specific business units within your organisation&lt;/li&gt;
&lt;li&gt;Support entirely separate business units that have their own administrative policies and administrators&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I removed three reasons they give from this list, as they are generally irrelevant for most organisations. The first was the permission boundary, which I will handle below; another was for testing customisations, and the last was for a separate public OSS project.&lt;/p&gt;
&lt;p&gt;Nowhere does Microsoft, as the creator of Azure DevOps, advocate for a Project per project, initiative, or effort within your organisation.&lt;/p&gt;


  
&lt;h2 id="why-multiple-organisations-and-projects-break-down-at-scale"&gt;Why Multiple Organisations and Projects Break Down at Scale&lt;/h2&gt;
&lt;p&gt;In most organisations, we aim to create cross-functional teams capable of delivering across a portfolio, at least within a defined funding stream or budgetary unit. As organisations grow, they typically segment into multiple funding streams, but decision-making around where and how to apply funding remains centralised within each unit.&lt;/p&gt;
&lt;p&gt;Azure DevOps’ organisational and project boundaries can hinder this flexibility.&lt;/p&gt;


  
&lt;h4 id="multi-organisation-boundaries"&gt;Multi-Organisation Boundaries&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;P&amp;amp;L Boundary&lt;/strong&gt;: Separate organisations represent separate billing scopes; licensing, builds, storage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query Boundary&lt;/strong&gt;: You cannot query across organisations inside the same tenant. To get a full view, you&amp;rsquo;re forced into third-party tooling like Power BI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Linking Boundary&lt;/strong&gt;: While you can link work items across organisations (e.g., &amp;ldquo;Consumes From&amp;rdquo;, &amp;ldquo;Produces For&amp;rdquo;, &amp;ldquo;Remote Related&amp;rdquo;), these links are largely superficial. They aren&amp;rsquo;t usable in Delivery Plans, Backlogs, or Boards.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h4 id="multi-project-boundaries"&gt;Multi-Project Boundaries&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Query Boundary&lt;/strong&gt;: While you can technically query across projects, you can&amp;rsquo;t create a unified backlog. Planning becomes fragmented and requires external tools like Portfolio++ to stitch things together.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Boards&lt;/strong&gt;: You cannot create a board that visualises work across multiple projects. That’s a hard platform limitation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Team Focus&lt;/strong&gt;: When individuals belong to multiple projects, their focus splinters. Backlogs fragment. Priorities conflict. The result? Increased wait time, context switching, and delivery delays.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt;: Permissions, policies, and groups must be duplicated and managed separately across projects. That’s more overhead and more risk.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shared Assets&lt;/strong&gt;: Test cases, source, pipelines, environments, these are far harder to reuse or coordinate across projects.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every additional Organisation and Project adds friction that Azure DevOps is not designed to resolve. These aren’t flexible abstractions; they are hard boundaries and are by design.&lt;/p&gt;
&lt;p&gt; None of these constraints provides anything that a single project and a sane Area Path strategy couldn’t already achieve, with less overhead and more coherence.&lt;/p&gt;


  
&lt;h2 id="should-you-have-many-projects"&gt;Should you have many projects?&lt;/h2&gt;
&lt;p&gt;Here is a summary of the three options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;One project, many teams&lt;/strong&gt; - If your teams are aligned, your backlog is coherent, and you&amp;rsquo;re operating within a single organisation, then one project is the sweet spot. You get unified governance, consistent processes, and minimal admin overhead. Each team can tailor their boards and iterations while still feeding into a shared backlog and reporting structure. Visibility is baked in, if someone wants to see what&amp;rsquo;s happening, they can. Coordination is simpler, reuse is natural, and roll-up metrics just work. Most importantly, it reduces cognitive and operational overhead, letting teams focus on delivery, not bureaucracy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One organisation, many projects, and teams&lt;/strong&gt; - This model is useful when you&amp;rsquo;re juggling different processes, delivery cadences, or security needs. You trade a bit of simplicity for flexibility. Each project has its own process templates, permissions, and settings, which makes sense if the work is fundamentally different, but it adds friction. Cross-team visibility suffers, reuse gets clumsy, and roll-up reporting becomes harder. You&amp;rsquo;re coordinating across silos, not within a system. If you&amp;rsquo;re using this model, you’ve likely optimised for isolation over collaboration. That might be intentional, but it comes at a cost.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Many organisations&lt;/strong&gt; - Only use this if you need ironclad isolation, think separate business units, external contracts, or compliance constraints. This is the most expensive model in terms of overhead, administration, and collaboration. There’s no natural visibility across orgs, no shared queries or boards, and zero cross-org reporting. Everything has to be duplicated or integrated manually. That might be acceptable if you’re supporting legacy TFS structures or strict multitenancy, but it kills flow. If you’re working across orgs and still need to coordinate, you’re solving a problem your tooling should have prevented.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have always advocated for larger projects and use the following rule of thumb:&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;If you have money, people, work, or products that interact in any meaningful way, then they should really be in a single Project.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;Let’s not pretend this is theoretical. Microsoft’s own Developer Division (DevDiv) utilises a single Azure DevOps project to manage source code, builds, releases, test cases, and work items for over 2,000 engineers. For the Windows team at Microsoft, it&amp;rsquo;s more like 15,000 people in one Project.&lt;/p&gt;
&lt;p&gt;If that’s not proof this scales, what is?&lt;/p&gt;


  
&lt;h2 id="the-strategy-one-project-many-teams-clear-constraints"&gt;The Strategy: One Project. Many Teams. Clear Constraints.&lt;/h2&gt;
&lt;p&gt;A modern Azure DevOps project is designed to scale horizontally using &lt;strong&gt;Teams&lt;/strong&gt;, and &lt;strong&gt;Area Paths&lt;/strong&gt; and not by creating new team projects. This means that you need to deliberately design your strategy to avoid it becoming a total midden.&lt;/p&gt;
&lt;p&gt;Inside Azure DevOps, while teams are a flat list, they are linked to Area paths, a hierarchy, to determine which work items are included in the teams view, and thus their backlogs and boards.&lt;/p&gt;
&lt;p&gt;Here’s how it works.&lt;/p&gt;





  &lt;div class="alert alert-warning subtle-alert" role="alert"&gt;
    
      &lt;h5 class="alert-heading subtle-heading"&gt;
        ⚠️
        Warning
      &lt;/h5&gt;
    
    &lt;p class="subtle-text"&gt;&lt;p&gt;This is going to get confusing since &amp;ldquo;Team&amp;rdquo; can mean &amp;ldquo;team of people&amp;rdquo; or the Azure DevOps construct of &amp;ldquo;Team&amp;rdquo;. Im going to try and explicetly say &amp;ldquo;Azure DevOps Team&amp;rdquo; to refer to the construct and &amp;ldquo;team&amp;rdquo; to refer to a group of people. These people could be a &amp;ldquo;portfolio team&amp;rdquo;, &amp;ldquo;feature team&amp;rdquo;, or &amp;ldquo;delivery team&amp;rdquo;.&lt;/p&gt;&lt;/p&gt;
  &lt;/div&gt;



  
&lt;h3 id="1-use-area-paths-to-represent-departments-and-products"&gt;1. &lt;strong&gt;Use Area Paths to Represent Departments and Products&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Your Area Path hierarchy is the backbone of visibility, governance, and scale. Treat it as a map of how your products are delivered, not how your org chart looks. It should reflect the product structure and value streams, not departmental politics.&lt;/p&gt;
&lt;p&gt;Create a distinct leaf node for every delivery team. This gives you fine-grained control for permissions, test plan isolation, dashboard targeting, and scoped visibility. Intermediate levels should reflect coherent product or platform groupings, enabling roll-up views without breaking team autonomy.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;MyProject&#13;
 ├── Product A&#13;
 │    ├── Team 1&#13;
 │    └── Team 2&#13;
 ├── Product B&#13;
 │    ├── Team X&#13;
 │    └── Team Y&#13;
 └── Platform&#13;
      └── Shared Services Team
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If your hierarchy matches your architecture and delivery teams, you unlock real traceability. If it mirrors your reporting lines, you’ll spend your time fighting visibility gaps and access problems.&lt;/p&gt;





  &lt;div class="alert alert-success subtle-alert" role="alert"&gt;
    
      &lt;h5 class="alert-heading subtle-heading"&gt;
        &#128161;
        Tip
      &lt;/h5&gt;
    
    &lt;p class="subtle-text"&gt;&lt;p&gt;Use Area Paths deliberately. They are your primary tool for scoping permissions, isolating test plans, assigning build policies, and targeting dashboards. Keep them stable. Don’t reorganise on a whim.&lt;/p&gt;&lt;/p&gt;
  &lt;/div&gt;



  
&lt;h3 id="2-define-azure-devops-teamswith-clear-area-path-ownership"&gt;2. Define Azure DevOps Teams with Clear Area Path Ownership&lt;/h3&gt;
&lt;p&gt;Each Azure DevOps Team is a lens into a defined slice of the Area Path hierarchy. That lens determines what work shows up on its backlog, board, and delivery plans. Clear, non-overlapping ownership is essential if you want visibility without duplication, focus without conflict.&lt;/p&gt;
&lt;p&gt;The key? Design the Area Path hierarchy with intent, then map each team to a specific leaf node. Use the “include sub-areas” option carefully. Avoid overlap. One work item, one team board.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Want a unified &lt;strong&gt;Platform view&lt;/strong&gt;? Create an Azure DevOps Team at the higher-level node and include all sub-areas.&lt;/li&gt;
&lt;li&gt;Need a &lt;strong&gt;delivery team focus&lt;/strong&gt;? Map them to their own leaf node and exclude others.&lt;/li&gt;
&lt;li&gt;Building a &lt;strong&gt;Portfolio Kanban&lt;/strong&gt;? Use higher-level Areas with Epics and Features only, leave Backlog Items to delivery teams.&lt;/li&gt;
&lt;/ul&gt;





  &lt;div class="alert alert-success subtle-alert" role="alert"&gt;
    
      &lt;h5 class="alert-heading subtle-heading"&gt;
        &#128161;
        Tip
      &lt;/h5&gt;
    
    &lt;p class="subtle-text"&gt;&lt;p&gt;A work item should never appear on two boards. If it does, your setup will confuse stakeholders and erode trust.&lt;/p&gt;&lt;/p&gt;
  &lt;/div&gt;

&lt;p&gt;Here’s a common, pragmatic split:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Feature team Boards&lt;/strong&gt;: Configure to show Backlog Items only.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Portfolio Boards&lt;/strong&gt;: Configure to show Epics and Features only, with “include sub-areas” on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This setup enables delivery teams to focus on tactical work, while leadership tracks strategic progress, all in the same project, without duplication.&lt;/p&gt;


  
&lt;h3 id="3-use-iteration-paths-for-cadence-not-structure"&gt;3. &lt;strong&gt;Use Iteration Paths for Cadence, Not Structure&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Keep Iteration Paths consistent across teams where possible. This enables consolidated reporting and facilitates shared understanding of delivery cycles.&lt;/p&gt;





  &lt;div class="alert alert-warning subtle-alert" role="alert"&gt;
    
      &lt;h5 class="alert-heading subtle-heading"&gt;
        ⚠️
        Warning
      &lt;/h5&gt;
    
    &lt;p class="subtle-text"&gt;&lt;p&gt;When teams have different cadences within the same funding structure, it can cause friction and delays. &lt;/p&gt;&lt;/p&gt;
  &lt;/div&gt;

&lt;p&gt;When Team A says that the work will be done by Sprint 23, what does that mean? If Team B is on a different candidate, then this could be their Sprint 45, or the Shared Platform Teams Sprint 3.  A balance of autonomy and alignment is important when lots of folks are working together in the same value stream.&lt;/p&gt;





  &lt;div class="alert alert-success subtle-alert" role="alert"&gt;
    
      &lt;h5 class="alert-heading subtle-heading"&gt;
        &#128161;
        Tip
      &lt;/h5&gt;
    
    &lt;p class="subtle-text"&gt;&lt;p&gt;Choose a cadence for review and delivery that aligns with the business needs, stakeholder engagement cadence, and the effective planning horizon. Regardless of the delivery team&amp;rsquo;s chosen process, everyone inspects and adapts at least on that cadence.&lt;/p&gt;&lt;/p&gt;
  &lt;/div&gt;

&lt;p&gt;If you must deviate (e.g. teams with different Sprint lengths), isolate only the differing branches.&lt;/p&gt;


  
&lt;h3 id="4-secure-by-area-not-by-project"&gt;4. &lt;strong&gt;Secure by Area, Not by Project&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;One of the most common justifications for multiple team projects is “security.” But Azure DevOps already supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Granular permissions on Area Paths&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Repos permissions&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pipeline-level permissioning&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Environment and Library security for deployments&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can grant fine-grained access control to individual teams, stakeholders, or systems without fragmenting your project into unmanageable silos.&lt;/p&gt;





  &lt;div class="alert alert-success subtle-alert" role="alert"&gt;
    
      &lt;h5 class="alert-heading subtle-heading"&gt;
        &#128161;
        Tip
      &lt;/h5&gt;
    
    &lt;p class="subtle-text"&gt;&lt;p&gt;Use Azure DevOps Groups that contain Enta ID groups to maintain flexability and clarity&lt;/p&gt;&lt;/p&gt;
  &lt;/div&gt;



  
&lt;h2 id="what-about-reporting"&gt;What About Reporting?&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re using one Azure DevOps project with clearly defined Area Paths and Teams, reporting becomes dramatically simpler, more powerful, and more honest.&lt;/p&gt;
&lt;p&gt;Everything you need is in one place: Work Items, Repos, Pipelines, Releases, Test Plans. That means dashboards, boards, analytics views, and Delivery Plans just work, with no duct tape, no spreadsheet exports, no cross-project hacks.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;Dashboards&lt;/strong&gt; for high-level visibility tailored to stakeholders.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Delivery Plans&lt;/strong&gt; for planning across multiple teams and value streams.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Portfolio Backlogs&lt;/strong&gt; to track progress across Features, Epics, and Initiatives without duplicating work.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Analytics Views&lt;/strong&gt; and &lt;strong&gt;Power BI&lt;/strong&gt; to correlate flow, throughput, and cycle times across teams, products, and time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And when you need more:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Portfolio++&lt;/strong&gt; provides rich roadmap and status visualisations that work across queries, teams, and even projects.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ActionableAgile&lt;/strong&gt; brings deep flow metrics, cycle time scatterplots, throughput charts, WIP ageing, directly into your Azure DevOps instance.&lt;/li&gt;
&lt;/ul&gt;





  &lt;div class="alert alert-success subtle-alert" role="alert"&gt;
    
      &lt;h5 class="alert-heading subtle-heading"&gt;
        &#128161;
        Tip
      &lt;/h5&gt;
    
    &lt;p class="subtle-text"&gt;&lt;p&gt;Reporting doesn’t just inform, it aligns. A unified project gives you shared truth. Every extra project boundary erodes that.&lt;/p&gt;&lt;/p&gt;
  &lt;/div&gt;



  
&lt;h2 id="final-word-optimise-for-flow-not-structure"&gt;Final Word: Optimise for Flow, Not Structure&lt;/h2&gt;
&lt;p&gt;Azure DevOps isn’t just tooling; it reflects how your organisation thinks about delivery. If you design for control, you’ll get silos. If you design for flow, you’ll get visibility, alignment, and adaptability. Its an intrinsic part of your systems of work.&lt;/p&gt;
&lt;p&gt;Every new project boundary introduces delay, friction, and duplication. Every extra organisational boundary kills collaboration and wrecks observability. You don’t need more buckets. You need better boundaries inside one.&lt;/p&gt;
&lt;p&gt;Design your system of work to reflect how you deliver value, not how your teams report. Use one project. Use Area Paths and Teams to model structure and scale. Secure it properly. Report from it meaningfully. And let your delivery system evolve with clarity, not chaos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Don’t build around exceptions. Build for flow.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One Project. Many teams. Clear constraints. Value, continuously delivered.&lt;/p&gt;


  
&lt;h3 id="definitions"&gt;Definitions&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s clear that everyone refers to things within Azure DevOps differently, and naming is not Microsoft&amp;rsquo;s strong suit. Here is what I mean when I use terminology in this post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tennant -&lt;/strong&gt; Not really within Azure DevOps, but intrinsically linked is the Microsoft Entra ID tenant that provides the security with Users and Groups.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Organisation&lt;/strong&gt; - The big bucket of stuff and the almost absolute boundary for Azure DevOps. For argument&amp;rsquo;s sake, it&amp;rsquo;s a &amp;ldquo;database&amp;rdquo; with unique IDs and clear boundaries. Also known as &amp;ldquo;Collection&amp;rdquo; in Team Foundation Server (TFS).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Process&lt;/strong&gt; - The definition of the types and workflows of those types as well as the available backlog levels. Previously known as &amp;ldquo;Process Template&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project&lt;/strong&gt; - The first level bucket after Organisation that provides a security and feature boundary. Used to be called &amp;ldquo;Team Project&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Value Board&lt;/strong&gt; - visualisation of the flow of value at a particular backlog level. This is just called &amp;ldquo;Board&amp;rdquo; in Azure DevOps, but I wanted to make my distinction clearer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task Board&lt;/strong&gt; - visualisation of tasks within value represented as value pinned to the left, and sub-tasks flow across the board.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/devops/organizations/projects/about-projects?view=azure-devops" target="_blank" rel="external noopener noreferrer"&gt;About projects and scaling your organization - Azure DevOps | Microsoft Learn &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/devops/plan/scaling-agile" target="_blank" rel="external noopener noreferrer"&gt;Scaling Agile to large teams - Azure DevOps | Microsoft Learn &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/devops/user-guide/plan-your-azure-devops-org-structure?view=azure-devops#how-many-projects-do-you-need" target="_blank" rel="external noopener noreferrer"&gt;Plan your organizational structure - Azure DevOps | Microsoft Learn &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Testing in Production Maximises Quality and Value</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/testing-in-production-maximises-quality-and-value/</link>
      <pubDate>Thu, 13 Feb 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/testing-in-production-maximises-quality-and-value/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Method</category>
      <category>Engineering Excellence</category>
      <category>DevOps</category>
      <category>Product Development</category>
      <description>Testing in production focuses on structured, observable releases that deliver fast feedback, controlled exposure, and rapid adjustment, replacing slow, costly Dev-Test-Staging pipelines. Audience-based deployment, as practised by teams like Azure DevOps and Windows at Microsoft, enables granular control over who receives new features, allowing progressive rollouts and early feedback from real users. This model relies on feature flags, observability, and automated rollout halts rather than environment-based branching, with rollbacks reserved only for binaries, not data. The Windows Insider Program, for example, segments millions of users into channels like Canary and Beta, detecting failures early and refining features before general release. Moving to audience-based deployment maximises quality and value by making the feedback loop immediate and closing the gap between engineering and end-user needs.</description>
      <content:encoded>&lt;p&gt;Testing in production, is about structured, observable releases that allow for fast feedback, controlled exposure, and rapid course correction, ensuring quality without sacrificing speed.&lt;/p&gt;
&lt;p&gt;One such paradigm shift in software delivery is audience-based deployment.&lt;/p&gt;
&lt;p&gt;Gone are the days of rigid Dev-Test-Staging-Production pipelines. These &lt;a href="https://engineering-leadership.hinshelwood.com/articles/stop-promoting-branches/"&gt;traditional environments are costly, slow, and fundamentally flawed&lt;/a&gt;. They delay feedback loops, hinder innovation, and reinforce outdated notions of software stability.&lt;/p&gt;
&lt;p&gt;Instead, modern software engineering demands a smarter approach: deploying directly to real users in production but in a controlled, incremental manner.&lt;/p&gt;
&lt;p&gt;For those familiar with ring-based deployment, audience-based deployment is not a new concept; it expands on it. Ring-based deployment is a proven strategy, widely used at scale by companies like Microsoft with products like &lt;a href="https://engineering-leadership.hinshelwood.com/tags/windows/"&gt;Windows&lt;/a&gt; and Microsoft Teams. Audience-based deployment simply extends this principle by providing even finer-grained control over who gets access to a given change based on account types, user profiles, or organisational groups. This approach allows teams, like the Azure &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; team, to release software to small, targeted user groups, enabling faster feedback, reduced blast radius, and progressive rollout strategies.&lt;/p&gt;
&lt;p&gt;This approach enables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Faster feedback&lt;/strong&gt; from real-world conditions, not simulated test environments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced blast radius&lt;/strong&gt; by limiting exposure of potentially risky changes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Progressive rollout strategies&lt;/strong&gt;, improving resilience and adaptability.&lt;/li&gt;
&lt;/ul&gt;

    
    

  
&lt;h3 id="retaining-context-without-environmental-branching"&gt;Retaining Context Without Environmental Branching&lt;/h3&gt;
&lt;p&gt;While you may need to retain some environmental context for compliance or operational reasons, &lt;strong&gt;your branching structure should not model it&lt;/strong&gt;. Creating branches that mimic Dev-Test-Staging environments is costly and counterproductive. It increases complexity, delays feedback, and reinforces silos rather than fostering &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;continuous delivery&lt;/a&gt;. Instead, focus on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using &lt;strong&gt;feature flags&lt;/strong&gt; to control exposure.&lt;/li&gt;
&lt;li&gt;Implementing &lt;strong&gt;progressive rollouts&lt;/strong&gt; instead of environment-based branching.&lt;/li&gt;
&lt;li&gt;Relying on &lt;strong&gt;observability and monitoring&lt;/strong&gt; rather than artificial environments.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By shifting away from rigid environment-based branching, teams can iterate faster and detect issues in real-world scenarios without unnecessary overhead.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t think this is easy; it&amp;rsquo;s not. Teams making this shift face teething problems; adapting workflows, enhancing observability, and upskilling in DevOps and CI/CD practices. Success here isn&amp;rsquo;t just technical; it&amp;rsquo;s cultural. Organisations must embrace automation, foster real-time monitoring capabilities, and embed progressive delivery into their engineering ethos. It requires significant discipline and a relentless focus on the usable working product that many teams just don&amp;rsquo;t have.&lt;/p&gt;


  
&lt;h3 id="how-microsoft-transformed-deployment"&gt;How Microsoft Transformed Deployment&lt;/h3&gt;
&lt;p&gt;Microsoft’s transformation to DevOps and audience-based deployment has been an industry-defining journey, starting with the Visual Studio and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/azure-devops/"&gt;Azure DevOps&lt;/a&gt; (was Team Foundation Server) teams in the Developer Division and later extending to Windows and Office.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Lessons from Microsoft’s Evolution:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Be Customer Obsessed&lt;/strong&gt; – Prioritise user experience and collect telemetry to refine deployments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Iterate Over Pain&lt;/strong&gt; – If it&amp;rsquo;s hard and painful, do it more often until it becomes just another activity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adopt a Production-First Mindset&lt;/strong&gt; – Deploy as continuously as possible, with safeguards to protect end-users.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enable Team Autonomy with Enterprise Alignment&lt;/strong&gt; – Empower teams while ensuring strategic cohesion.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shift Left on Quality&lt;/strong&gt; – Detect and address issues earlier in the development cycle.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These were hard-learned lessons from the transition of Team Foundation Server from one delivery every two years to one every three weeks. This was also the catalyst for them to move their product to the cloud, ultimately leading to the Azure DevOps product we have today. There was a key realisation that closing feedback loops is much harder if you are delivering a locally installed product. Not every customer takes every release, and not every customer allows the vendor to truly understand the usage patterns.&lt;/p&gt;
&lt;p&gt;If you want to build products that meet your customer&amp;rsquo;s needs, then you need to get ahead of those needs. If you respond to customer requests, then you are too late to meet their need, and are costing them time and money while you go build what they asked for. Getting ahead of that loop, crossing the chasm, requires that you are able to engage with early adopters and collect telemetry and feedback much closer to the development cycle. Feedback on something that you shipped two years ago is largely useless if your priorities have changed since then.&lt;/p&gt;
&lt;p&gt;Audience-based deployment allows you to control which users and which accounts get access to new features. This means that you can start to engage with early adopters even within an organisation where most users are late adopters.&lt;/p&gt;
&lt;p&gt;This connection to the users, the telemetry it provides, and the closeness of the feedback to the build that allows you to maximise the value, the ROI, of the work that you do is the business reason to move in this direction.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="the-azure-devops-team-revolutionised-microsofts-approach"&gt;The Azure DevOps team revolutionised Microsoft’s approach.&lt;/h2&gt;
&lt;p&gt;The Azure DevOps team revolutionised Microsoft’s approach to deployment by pioneering a &lt;strong&gt;ring-based deployment strategy&lt;/strong&gt; that allowed for:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Incremental feature releases&lt;/strong&gt; with real-time telemetry analysis.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Production-first mindset&lt;/strong&gt;, shifting quality assurance left.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automated stops to rollouts triggered by observed failures.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continuous monitoring&lt;/strong&gt; to reduce release risk.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This strategy proved so effective that it became the foundation for deploying changes to &lt;strong&gt;Windows&lt;/strong&gt;, an operating system with a vastly larger and more diverse user base. And more scary indeed is that Windows is an installed product that needs to support an almost infinite set of configurations.&lt;/p&gt;


  
&lt;h4 id="windows-scaling-the-model-to-millions"&gt;Windows: &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scaling/"&gt;Scaling&lt;/a&gt; the Model to Millions&lt;/h4&gt;
&lt;p&gt;Windows took inspiration from Azure DevOps&amp;rsquo; success and implemented the ring-based model at an unprecedented scale:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Internal to Microsoft&lt;/strong&gt; - Im not necessarily privy to the details of this, but there have been hints and stories told by folks on the inside. (~70,000 members)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Internal Channel - Nightly changes tested internally by a small subset of engineers.&lt;/li&gt;
&lt;li&gt;Dogfooding Channel – Microsoft employees use new versions before external customers.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Windows Insider Program&lt;/strong&gt; - Anyone can join this just by opting in. (~17m members)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Canary Channel&lt;/strong&gt; – This is for highly technical users who get builds from the dev branch every few days.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dev Channel&lt;/strong&gt; – For enthusiasts; gets builds every few weeks from the dev branch&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Beta Channel&lt;/strong&gt; - This is for early adopters and gets early builds every month or so from the release branch&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Release Preview&lt;/strong&gt; - For those looking for just an early peek but want stability. Builds every 3 months or so from the release branch about 3 months before they hit GA.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;General Availability&lt;/strong&gt; - Finally, changes are staged and rolled out to everyone else (~900bn machines worldwide)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This approach enables them to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Detect failures early&lt;/strong&gt;, before they affect millions of users.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Refine features based on telemetry and user behaviour&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Confidently scale releases&lt;/strong&gt; while maintaining stability.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This isn’t just DevOps done well; it’s a learning engine driving &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-improvement/"&gt;continuous improvement&lt;/a&gt; across Microsoft’s ecosystem. Today, you will find this model and variants of it on all of Microsoft&amp;rsquo;s platforms.&lt;/p&gt;
&lt;p&gt;For example, I am in the Insider group for Microsoft Teams, with my account in R3, with both R3.5 (preview) and R4 (ga) ahead of me&amp;hellip; and yet I can be in a call with folks from any of the rings from R0 all the way to R4. We each get different features and capabilities and a different product stability level.&lt;/p&gt;


  
&lt;h3 id="why-you-should-ditch-the-old-way"&gt;Why You Should Ditch the Old Way&lt;/h3&gt;
&lt;p&gt;Beyond the inefficiencies of traditional environments, the old way accumulates waste, relearning, duplicated effort, and maintaining outdated processes, all drain resources. Each additional environment introduces overhead in familiarization, regression testing, and upkeep, diverting attention from work that delivers actual value. The cost isn&amp;rsquo;t just financial; it&amp;rsquo;s an innovation tax.&lt;/p&gt;
&lt;p&gt;Most organisations still cling to the traditional &lt;strong&gt;Dev-Test-Staging-Production&lt;/strong&gt; model because it feels safe. But let’s be honest:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Testing environments are never identical to production.&lt;/strong&gt; Data, scale, and real-world user behaviour differences mean you’re testing a mirage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delayed feedback loops increase risk.&lt;/strong&gt; The longer it takes to discover issues, the harder and costlier they are to fix.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It stifles innovation.&lt;/strong&gt; Slow, gated releases hinder rapid iteration and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/experimentation/"&gt;experimentation&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The alternative? &lt;strong&gt;Deploying directly to your users, but smartly.&lt;/strong&gt;&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="making-the-shift-key-strategies-for-audience-based-deployment"&gt;Making the Shift: Key Strategies for Audience-Based Deployment&lt;/h3&gt;
&lt;p&gt;We first need to accept that rolling forward is the only viable option! If a team has just failed to roll forward, what makes us think they have the skills to execute the more complex task of rolling back? Rolling back is often more risky than pushing a fix forward, as it can introduce inconsistencies, data mismatches, and unexpected failures. The key is to &lt;strong&gt;design rollouts to be fail-safe&lt;/strong&gt;, ensuring issues are detected early and addressed immediately without needing a complex rollback process.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&amp;ldquo;I was a big proponent of the rolling forward strategy. 10+ years ago, I said that if a team screwed up a database upgrade, most likely they will not succeed with a database downgrade. Sometimes downgrade means data loss. When we do deployments, we upgrade binaries first by creating new VMs and switch traffic to them. We keep old VMs running for 3 hours, so that we can go back to an old binaries if we detect any user impacting issues. After 3 hours we deallocate VMs, but do not delete them. If we detect an issue 3+ hours after deployment, we can still start VMs and go back to previous binaries. When we start database upgrade, we delete old VMs. At this point there is no going back to an old binaries.&amp;rdquo; -Vladimir Khvostov, Principal Software Engineer at Microsoft - Azure DevOps&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;The Azure DevOps team does allow for limited rollback under specific circumstances, but only for binaries, never for data.&lt;/p&gt;
&lt;p&gt;Want to embrace audience-based deployment? Here’s how:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Feature Flags &amp;amp; Toggles&lt;/strong&gt; – Control feature exposure dynamically without redeploying code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Progressive Delivery&lt;/strong&gt; – Gradually expand releases based on telemetry and user feedback.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-Time Observability&lt;/strong&gt; – Use logging, metrics, and tracing to detect issues immediately.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automated Rollout Halts&lt;/strong&gt; – Deployments should automatically pause if telemetry detects anomalies or performance degradations, ensuring issues are caught before they escalate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Opt-In Programs&lt;/strong&gt; – Encourage beta testers and early adopters to participate.&lt;/li&gt;
&lt;/ol&gt;


  
&lt;h3 id="the-future-of-continuous-delivery"&gt;The Future of Continuous Delivery&lt;/h3&gt;
&lt;p&gt;In an interconnected world, &lt;strong&gt;production is the ultimate reality check.&lt;/strong&gt; Audience-based deployment isn’t just an evolution of DevOps,it’s the logical next step in &lt;strong&gt;delivering value faster, safer, and smarter.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The question is, &lt;strong&gt;are you ready to embrace it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Is your team still relying on pre-production environments? What’s stopping you from adopting audience-based deployment?&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Why Topic Branches Drive High-Quality Delivery</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/why-topic-branches-drive-high-quality-delivery/</link>
      <pubDate>Mon, 14 Jul 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/why-topic-branches-drive-high-quality-delivery/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Engineering Excellence</category>
      <category>Technical Leadership</category>
      <category>Product Development</category>
      <description>Topic branches are short-lived, focused branches that isolate a single unit of developer work, ideally being coded, tested, and integrated within hours or a couple of days. Keeping topic branches brief prevents integration challenges, reduces merge conflicts, and avoids costly defects and review effort—allowing teams to maintain modularity and rapid feedback. Following practices like GitHub Flow, where developers branch from main, do focused work, and merge back immediately, enables continuous delivery and accountability. In contrast, long-lived feature branches signal integration debt and delivery slowdowns. The branching strategy a team uses directly impacts its delivery speed, technical quality, and ability to work in an agile way.</description>
      <content:encoded>&lt;p&gt;In modern &lt;a href="https://engineering-leadership.hinshelwood.com/tags/software-development/"&gt;software development&lt;/a&gt; the idea of the topic branch is an essecial one. It is your gatekeeper to preventing Conway&amp;rsquo;s Law and an engineering structure that mirrors your organisational boundaries. Frequent integration through topic branches helps break down silos, encouraging cross-&lt;a href="https://engineering-leadership.hinshelwood.com/tags/team-collaboration/"&gt;team collaboration&lt;/a&gt; and reducing the tendency for the software architecture to reflect the organisation&amp;rsquo;s communication paths.&lt;/p&gt;
&lt;p&gt;A topic branch is a short-lived, focused branch in your source control repository that isolates a &lt;strong&gt;single unit of developer work&lt;/strong&gt;. This is not a month-long feature branch. This is not &amp;ldquo;we&amp;rsquo;ll merge it someday&amp;rdquo; work. A topic branch is something you &lt;strong&gt;code, test, and integrate in a few hours or, at most, a couple of days&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The moment your topic branch stretches beyond a few days, take it as a warning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Integration will get harder.&lt;/li&gt;
&lt;li&gt;Merge conflicts will multiply.&lt;/li&gt;
&lt;li&gt;Your risk of defects or unintended behaviours will spike.&lt;/li&gt;
&lt;li&gt;Reviewing and validating costs more&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you let a branch sit for too long, you are building up &lt;strong&gt;integration debt&lt;/strong&gt; that will bite you later. Topic branches, and thinking about them as just that, topics, is an essential practice in modern software engineering.&lt;/p&gt;

    
    

  
&lt;h2 id="the-strategic-importance-of-topic-branches"&gt;The Strategic importance of Topic Branches&lt;/h2&gt;
&lt;p&gt;We want to consistently emphasised the importance of technical practices that enable flow, adaptability, and resilience in software teams. Whether addressing trunk-based development, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;continuous delivery&lt;/a&gt;, or &lt;a href="https://engineering-leadership.hinshelwood.com/categories/engineering-excellence/"&gt;engineering excellence&lt;/a&gt;, the message remains the same: discipline in the small enables success in the large. Topic branches fit directly into this pattern. They are not just a coder habit; they are a deliberate tool that reinforces modularity, integration, and continuous feedback, all cornerstones of modern software delivery.&lt;/p&gt;
&lt;p&gt;From a &lt;strong&gt;technical &lt;a href="https://engineering-leadership.hinshelwood.com/categories/leadership/"&gt;leadership&lt;/a&gt;&lt;/strong&gt; perspective, topic branches are pivotal because they enable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modularity , you isolate changes to a narrow scope.&lt;/li&gt;
&lt;li&gt;Continuous delivery , you keep the mainline ready for release.&lt;/li&gt;
&lt;li&gt;Clear code reviews , you limit pull requests to atomic, understandable units.&lt;/li&gt;
&lt;li&gt;Collaborative accountability , the team shares responsibility for integrating small changes frequently.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support for agile development practices&lt;/strong&gt; , you align technical work with the team’s tactical Sprint Goals and Product Goals.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without topic branches, you create a fragile system of work. Without topic branches, you make integration harder. Without topic branches, you &lt;strong&gt;slow down your delivery pipeline&lt;/strong&gt; and increase the chance of failure.&lt;/p&gt;


  
&lt;h3 id="practical-patterns-for-tactical-implementation-of-topic-branches"&gt;Practical Patterns for Tactical Implementation of Topic Branches&lt;/h3&gt;
&lt;p&gt;Building on the strategic importance we need actionable patterns that technical leaders and teams can apply. It is not enough to understand why topic branches matter; you need pragmatic, grounded approaches that translate strategy into engineering practice. For most teams and most projects, &lt;strong&gt;GitHub Flow&lt;/strong&gt; (the branching model, not the cloud tool) is the most effective model. It is a trunk-based model with minimal overhead and complexity. GitHub Flow treats the main branch as the production-ready line and uses small, short-lived topic branches for all work.&lt;/p&gt;
&lt;p&gt;&lt;a href="images/branchstrategy-trunkbased.png" class="post-img-link" data-toggle="lightbox" data-caption="GitHub Flow diagram"&gt;
  &lt;img src="images/branchstrategy-trunkbased.png" loading="lazy" alt="GitHub Flow diagram" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You branch off &lt;code&gt;main&lt;/code&gt;, do your small unit of work, push frequently, and merge back as soon as possible , ideally the same day, or next day at the latest. Your branch is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Focused on a single task or issue.&lt;/li&gt;
&lt;li&gt;Continuously tested (locally and via CI).&lt;/li&gt;
&lt;li&gt;Reintegrated quickly to avoid drift.&lt;/li&gt;
&lt;li&gt;Reinforces context disapline&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have a larger application with more engineers and the need to make changes in the production line, then Microsoft’s Release Flow, which is almost identical to &amp;ldquo;Github Flow&amp;rdquo; with the addition of a versioned release branch. One could say that  Release Flow inherits and extends Github Flow.&lt;/p&gt;
&lt;p&gt;&lt;a href="images/branchstrategy-releaseflow.png" class="post-img-link" data-toggle="lightbox" data-caption="Release Flow diagram"&gt;
  &lt;img src="images/branchstrategy-releaseflow.png" loading="lazy" alt="Release Flow diagram" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Compare this to the traditional &lt;strong&gt;Git Flow&lt;/strong&gt; approach that models less mature braching stratagies, which adds layers of feature, develop, release, and hotfix branches. While Git Flow can still be useful in some legacy or non-continuous delivery setups, it introduces far more overhead and complexity. It reflects a strategy from the pre-CD world.&lt;/p&gt;
&lt;p&gt;&lt;a href="images/branchstrategy-old-school.png" class="post-img-link" data-toggle="lightbox" data-caption="Git Flow diagram"&gt;
  &lt;img src="images/branchstrategy-old-school.png" loading="lazy" alt="Git Flow diagram" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Gitflow Flow, and its derivatives, simplifies this: fewer long-lived branches, fewer merge headaches, more emphasis on &lt;strong&gt;incremental delivery&lt;/strong&gt;.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="leading-change-through-branching-stratagy"&gt;Leading change through Branching Stratagy&lt;/h2&gt;
&lt;p&gt;If you are leading a team, the presence or absence of disciplined topic branching tells you a lot.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Short-lived topic branches = a team practising modularity, integration, continuous feedback, and accountability.&lt;/li&gt;
&lt;li&gt;Long-lived feature branches = a team accumulating integration risk, delaying delivery, and likely violating agile principles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You need to push the team to keep branches small, focused, and short-lived. Review your branching strategy regularly. Make sure it supports, not undermines, your goals of flow, agility, and quality. And above all make sure its clear what each branch is for and how it should be used.&lt;/p&gt;
&lt;p&gt;If your team is struggling with long-lived branches, get serious:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Introduce trunk-based development practices with GitHub Flow or Release Flow.&lt;/li&gt;
&lt;li&gt;Enforce limits on branch lifespan.&lt;/li&gt;
&lt;li&gt;Tighten your CI/CD loops.&lt;/li&gt;
&lt;li&gt;Teach your team the cost of integration delay.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Remember: your branching strategy is not just a technical choice. It is a critical enabler of continuous &lt;a href="https://engineering-leadership.hinshelwood.com/tags/value-delivery/"&gt;value delivery&lt;/a&gt;.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Stop Promoting Branches</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/stop-promoting-branches/</link>
      <pubDate>Thu, 06 Feb 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/stop-promoting-branches/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Engineering Excellence</category>
      <category>Technical Leadership</category>
      <category>DevOps</category>
      <description>Promoting code through sequential branches like Dev, Test, Staging, and Production creates unnecessary complexity, slows delivery, and increases risk, as merging and reverse integration introduce errors and instability. Treating branches as environment milestones leads to features waiting in queues, merge conflicts, broken hotfixes, and difficult rollbacks. Instead, use a mainline approach: GitHub Flow enables continuous delivery with short-lived feature branches and automated testing, while Release Flow is suitable when multiple production versions need support, avoiding reverse integration pitfalls. Practices like branch-by-customer and Git Flow are condemned as outdated and unmanageable. Branching should support, not hinder, fast and predictable value delivery.</description>
      <content:encoded>&lt;p&gt;The traditional Dev → Test → Staging → Production model is flawed, leading to unnecessary complexity and reinforcing outdated software delivery patterns. This breakdown explains why branch promotion is a failure mode, why &lt;a href="https://engineering-leadership.hinshelwood.com/tags/github/"&gt;GitHub&lt;/a&gt; Flow and Release Flow are reasonable alternatives, and why Git Flow belongs in the bin.&lt;/p&gt;

    
    

  
&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;If teams still promote code through a Dev → Test → Staging → Production model, they are doing it wrong. This model inevitably leads to a &lt;strong&gt;branch promotion strategy&lt;/strong&gt;, adding friction, increasing risk, and delaying &lt;a href="https://engineering-leadership.hinshelwood.com/tags/value-delivery/"&gt;value delivery&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Flow is a simple option for &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;continuous delivery&lt;/a&gt;.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Release Flow is a good choice when production needs to exist for some time.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git Flow? That bloated mess belongs in the past.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Branching should be a tool to support flow, not an administrative overhead that slows everything down. If a model requires multiple merges to get code into production, &lt;strong&gt;it is already behind.&lt;/strong&gt; Reverse integration, which involves pulling changes from downstream branches back into upstream branches, is fraught with danger and should be avoided.&lt;/p&gt;


  
&lt;h2 id="the-failure-of-the-branch-promotion-model"&gt;The Failure of the branch Promotion Model&lt;/h2&gt;
&lt;p&gt;This model was meant to provide structure and control, but in practice, it leads to teams &lt;strong&gt;confusing environments with branches&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The typical pattern looks like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Code is committed to a &lt;strong&gt;Dev branch&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;It moves to a &lt;strong&gt;Test branch&lt;/strong&gt; for QA.&lt;/li&gt;
&lt;li&gt;It advances to a &lt;strong&gt;Staging branch&lt;/strong&gt; for approval.&lt;/li&gt;
&lt;li&gt;It is finally merged into &lt;strong&gt;Production&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;What started as an environment management strategy &lt;strong&gt;becomes a branch promotion model&lt;/strong&gt;, where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Features wait in queues instead of shipping immediately.&lt;/li&gt;
&lt;li&gt;Merge conflicts create unnecessary rework.&lt;/li&gt;
&lt;li&gt;Hotfixes bypass the process, breaking consistency.&lt;/li&gt;
&lt;li&gt;Rollbacks require painful cherry-picking instead of simple toggles.&lt;/li&gt;
&lt;li&gt;Reverse integration causes unpredictable failures and last-minute surprises.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a linear, gated approach that &lt;strong&gt;kills agility&lt;/strong&gt;. Instead of focusing on &lt;strong&gt;delivering value&lt;/strong&gt;, teams get stuck in a cycle of merging, resolving conflicts, and firefighting. Reverse integration only amplifies the chaos, introducing instability at the worst possible moments.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="branch-promotion-is-a-symptom-of-organisational-dysfunction"&gt;Branch Promotion is a Symptom of Organisational Dysfunction&lt;/h2&gt;
&lt;p&gt;If teams are &lt;strong&gt;passing code between branches like a baton in a relay race&lt;/strong&gt;, they are reinforcing a broken process. This is just waterfall with more Git commands.&lt;/p&gt;
&lt;p&gt;Instead of treating branches as milestones, teams should focus on &lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-integration/"&gt;continuous integration&lt;/a&gt; and delivery&lt;/strong&gt;. That means:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Every change merges into &lt;code&gt;main&lt;/code&gt; as soon as it is ready.&lt;/li&gt;
&lt;li&gt;Deployment is decoupled from release using feature flags.&lt;/li&gt;
&lt;li&gt;Testing happens in production-like environments without blocking releases.&lt;/li&gt;
&lt;li&gt;Rollbacks are instant; simply toggle a flag instead of reverting code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Reverse integration breaks this model by introducing last-minute, untested changes into upstream branches, increasing risk and eroding confidence in deployments. Instead of integrating forward with stability, teams are forced into reactive fixes that create further instability.&lt;/p&gt;
&lt;p&gt;This eliminates the bottlenecks of branch promotion. Instead of waiting weeks for a merge to move through environments, &lt;strong&gt;code is always deployable&lt;/strong&gt;.&lt;/p&gt;


  
&lt;h3 id="supporting-multiple-versions-in-production"&gt;Supporting Multiple Versions in Production&lt;/h3&gt;
&lt;p&gt;Branch promotion models often significantly increase cognitive load as engineers may be forced to support multiple versions in production. This excessive complexity increases the chances of reverse integration, where engineers must back-port features and fixes to different production versions, introducing further instability.&lt;/p&gt;
&lt;p&gt;In these scenarios, Developers face constant challenges in tracking which code changes apply to which versions, leading to a higher risk of errors and regressions. Maintaining multiple live versions not only complicates testing, debugging, and feature rollouts but also makes it nearly impossible to ensure consistency across environments.&lt;/p&gt;
&lt;p&gt;An extreme version of this is branch-by-customer, where separate branches are maintained for different clients. This is one of the most unmanageable and expensive practices, requiring extensive manual effort to maintain, patch, and update. Merging changes across multiple customer-specific branches is error-prone and time-consuming, leading to unpredictable behaviour and instability. Avoid at all costs.&lt;/p&gt;


  
&lt;h3 id="git-flow"&gt;Git Flow&lt;/h3&gt;
&lt;p&gt;Git Flow was an attempt to support many of the old branching models, but it is a bloated relic that needs to die! If teams are still using Git Flow, it is time to stop.&lt;/p&gt;
&lt;p&gt;It introduces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A develop branch that adds unnecessary friction as it needs to be integrated into main.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;release/\*&lt;/code&gt; branches that delay deployment.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hotfix/\*&lt;/code&gt; branches that signal a broken process.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Teams that adopt Git Flow reinvent branch promotion, creating an overcomplicated merge-heavy workflow that belongs in the past.&lt;/p&gt;


  
&lt;h2 id="mainline-branching-practices"&gt;Mainline Branching Practices&lt;/h2&gt;
&lt;p&gt;The alternative is to use trunk or mainline development where all code is integrated continuously into the main, and there are only ever short-lived topic branches for a few developers to work together on something small.&lt;/p&gt;
&lt;p&gt;The two main options relevant here are GitHub Flow and Release Flow.&lt;/p&gt;


  
&lt;h3 id="github-flow"&gt;GitHub Flow&lt;/h3&gt;
&lt;p&gt;One of the easiest to understand, implement, and do well is GitHub Flow. For most teams its the only branching model they will need as it provides that speed and simplicity that enable fast turnarounds and low cognitive load. It looks like:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Developers work in &lt;strong&gt;short-lived feature branches&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;They open a &lt;strong&gt;pull request&lt;/strong&gt; against &lt;code&gt;main&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Code is reviewed, merged, and &lt;strong&gt;deployed immediately&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;One would expect the pull request to be as automated as possible within the context of modern software &lt;a href="https://engineering-leadership.hinshelwood.com/tags/engineering-practices/"&gt;engineering practices&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Automated tests&lt;/strong&gt; to validate every change.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continuous deployment&lt;/strong&gt; to eliminate hand-offs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observability and monitoring&lt;/strong&gt; to detect issues early.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reverse integration is &lt;strong&gt;completely unnecessary&lt;/strong&gt; in GitHub Flow because all changes integrate forward, reducing complexity and risk.&lt;/p&gt;


  
&lt;h3 id="release-flow"&gt;Release Flow&lt;/h3&gt;
&lt;p&gt;For teams that need to support multiple versions in production, &lt;strong&gt;Microsoft’s Release Flow&lt;/strong&gt; extends GitHub Flow without unnecessary complexity for the specific purpose of having a release version that you need to help until the next release is ready. Microsoft developed this because it took longer than their 3 weeks for Sprint to deploy new versions of Azure &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; to the thousands of databases that they used.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All work merges into &lt;code&gt;main&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;When a release is ready, a &lt;strong&gt;version branch&lt;/strong&gt; (e.g., &lt;code&gt;release/1.2&lt;/code&gt;) is created.&lt;/li&gt;
&lt;li&gt;Fixes are always made into the main and cherry-picked into the release branches or, if necessary, implemented again.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This keeps development fast &lt;strong&gt;while maintaining stability where needed&lt;/strong&gt;. It avoids regression by always fixing into `main`. Critically, Release Flow continues to &lt;strong&gt;avoid the pitfalls of reverse integration&lt;/strong&gt;, ensuring that all changes move forward in a controlled, predictable manner.&lt;/p&gt;


  
&lt;h2 id="keep-it-simple-keep-it-fast"&gt;Keep It Simple, Keep It Fast&lt;/h2&gt;
&lt;p&gt;Branching should enable fast delivery, not slow it down.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Want to ship continuously? Use GitHub Flow.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Need to maintain live versions? Use Release Flow.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If teams still promote branches through environments, &lt;strong&gt;it is time to rethink the strategy&lt;/strong&gt;. Reverse integration is a dangerous practice that adds unnecessary risk and complexity. The best branching model is the one that gets in the way the least. &lt;strong&gt;Stop promoting branches. Start delivering value.&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>The Definition of Done is a Commitment to Quality</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/the-definition-of-done-is-a-commitment-to-quality/</link>
      <pubDate>Mon, 28 Jul 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/the-definition-of-done-is-a-commitment-to-quality/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Scrum</category>
      <category>Engineering Excellence</category>
      <category>Product Development</category>
      <description>A Scrum Team must explicitly define what “Done” means, as the Definition of Done (DoD) is essential for ensuring quality, transparency, and releasable product increments. Without a shared and objective DoD, teams risk chaotic delivery and undermine both integration and reputation, especially when multiple teams work on one product. A strong DoD is a short, measurable checklist—such as passing automated tests, security scans in CI/CD, and code reviews—that guarantees no further work is needed for release. Teams should start with an initial DoD, grow it through workshops involving stakeholders from security to UX, and continuously evolve it by reviewing and improving at each Sprint Retrospective. The defining question is whether the team would confidently support the increment in production tonight; if not, it is not Done.</description>
      <content:encoded>&lt;p&gt;Every Scrum Team must explicitly define what “Done” means. Without it, you are not doing Scrum. Let’s be clear: if your product increment cannot be shipped, tested, and validated at least every 30 days, you’re missing the point. Scrum is a social technology for adaptive solutions, and the Definition of Done (DoD) is the core commitment to quality that enables reliable, transparent, and releasable increments.&lt;/p&gt;

    
    

  
&lt;h2 id="how-does-the-agile-manifesto-relate"&gt;How Does the Agile Manifesto Relate?&lt;/h2&gt;
&lt;p&gt;While the Definition of Done is specific to Scrum, its essence connects directly to the values and principles of the Agile Manifesto. The manifesto doesn’t define a DoD explicitly, but it demands &lt;strong&gt;working software as the primary measure of progress&lt;/strong&gt; and calls for &lt;strong&gt;continuous attention to technical excellence and good design&lt;/strong&gt;. These principles implicitly require teams to set and meet clear standards of completeness and quality.&lt;/p&gt;
&lt;p&gt;In Agile, “Done” is characterised not by formal documents or bureaucratic sign-offs but by &lt;strong&gt;tangible, working outcomes&lt;/strong&gt;. The focus is on delivering increments of value that are potentially shippable, ensuring continuous feedback, and maintaining sustainable pace. This spirit is what Scrum formalises with its Definition of Done: an explicit, transparent commitment to what quality means, grounded in Agile’s broader ethos of delivering working software and embracing change.&lt;/p&gt;


  
&lt;h2 id="why-define-done"&gt;Why Define Done?&lt;/h2&gt;
&lt;p&gt;The Definition of Done is not optional. It is the shared understanding that tells everyone , Developers, Product Owner, stakeholders , what quality bar each increment must meet to be considered usable, releasable, and valuable. Without it, you deliver chaos disguised as agility.&lt;/p&gt;
&lt;p&gt;If your organisation has no defined standards, your team must create its own. But let’s be blunt: if you have multiple teams on one product, they must align on a shared Definition of Done. No excuses, no fragmentation. Without this alignment, you jeopardise integration, delivery, and the product’s reputation.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;“The Definition of Done creates transparency by providing everyone a shared understanding of what work was completed as part of the Increment. If a Product Backlog item does not meet the Definition of Done, it cannot be released or even presented at the Sprint Review.”
, Scrum Guide 2020&lt;/p&gt;

  &lt;/blockquote&gt;



  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="done-means-releasable"&gt;Done Means Releasable&lt;/h2&gt;
&lt;p&gt;Done is not about user stories, requirements, or business value. It is about whether the increment is in a state that the Product Owner can say, “Yes, let’s ship it.” No hidden work, no deferred testing, no “we’ll fix it later.”&lt;/p&gt;
&lt;p&gt;A robust Definition of Done ensures:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Transparency on what’s been completed.&lt;/li&gt;
&lt;li&gt;Predictability in delivery.&lt;/li&gt;
&lt;li&gt;Shared accountability for quality.&lt;/li&gt;
&lt;li&gt;Protection of the product’s and organisation’s reputation.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h2 id="start-with-a-seed-grow-it-over-time"&gt;Start with a Seed, Grow It Over Time&lt;/h2&gt;
&lt;p&gt;Your DoD does not need to be perfect on day one, but you do need to start. Run a facilitated DoD workshop. Involve the Scrum Team, relevant stakeholders, and anyone representing critical gates like security, architecture, UX, and compliance. Define what “Done” looks like across four layers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Organisational DoD&lt;/strong&gt; – minimum standards to protect reputation and compliance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Practice DoD&lt;/strong&gt; – engineering or discipline-specific standards (e.g., security, performance).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Customer DoD&lt;/strong&gt; – any client-specific requirements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Team DoD&lt;/strong&gt; – additional agreements the team needs to deliver quality.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Without this clarity, you’re not managing risk; you’re just rolling dice.&lt;/p&gt;


  
&lt;h2 id="characteristics-of-a-strong-definition-of-done"&gt;Characteristics of a Strong Definition of Done&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Short, measurable checklist&lt;/strong&gt; , automate verification wherever possible.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mirrors shippable&lt;/strong&gt; , the Product Owner should have the option to ship at the Sprint Review (if not doing continuous delivery).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No further work required&lt;/strong&gt; , if additional work is needed, you weren’t Done.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is not subjective. “Approved by the Product Owner” is not a DoD item. The DoD is an objective, verifiable standard.&lt;/p&gt;


  
&lt;h2 id="examples-of-dod-items"&gt;Examples of DoD Items&lt;/h2&gt;
&lt;p&gt;Here’s what good engineering practices might embed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Code passes automated quality checks (e.g., SonarQube) with no new critical issues.&lt;/li&gt;
&lt;li&gt;Unit, integration, and acceptance tests are automated and pass.&lt;/li&gt;
&lt;li&gt;Security scans run in CI/CD pipelines and show no high-severity vulnerabilities.&lt;/li&gt;
&lt;li&gt;Documentation is updated and linked to the increment.&lt;/li&gt;
&lt;li&gt;Code reviews or pair/mob programming sessions completed.&lt;/li&gt;
&lt;li&gt;Automated deployment pipelines confirm repeatable, error-free delivery.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h2 id="continuous-reflection-and-improvement"&gt;Continuous Reflection and Improvement&lt;/h2&gt;
&lt;p&gt;Your DoD is not static. You must review and improve it continuously , at least every Sprint Retrospective. When you uncover new failure points, you integrate them into your DoD.&lt;/p&gt;
&lt;p&gt;If your increment no longer meets the quality bar, stop Sprinting. Fix the foundation first , that’s called a &lt;strong&gt;Scrumble&lt;/strong&gt;. It’s a deliberate pause to repair quality, not a failure. Once resolved, your DoD should evolve to prevent recurrence.&lt;/p&gt;


  
&lt;h2 id="practical-steps"&gt;Practical Steps&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Run a DoD Workshop&lt;/strong&gt; , include Developers, Product Owner, stakeholders, and relevant experts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Document and Share&lt;/strong&gt; , make the DoD visible, accessible, and owned by the team.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automate&lt;/strong&gt; , reduce human error by automating checks wherever feasible.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review Regularly&lt;/strong&gt; , build DoD reviews into retrospectives.&lt;/li&gt;
&lt;/ol&gt;


  
&lt;h2 id="final-word"&gt;Final Word&lt;/h2&gt;
&lt;p&gt;The Definition of Done is not bureaucracy. It’s the backbone of your Scrum implementation. Without it, you don’t have empirical process control; you have chaos. Without it, you can’t deliver continuous value; you deliver continuous risk.&lt;/p&gt;
&lt;p&gt;Professional Scrum Teams are accountable for quality. Own it. Define it. Evolve it.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;Always ask: “Would you be happy to release this increment to production and support it? You are on call tonight.” If the answer is no, it’s not Done.&lt;/p&gt;

  &lt;/blockquote&gt;

</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>A better way than staggered iterations for delivery</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/a-better-way-than-staggered-iterations-for-delivery/</link>
      <pubDate>Thu, 10 Dec 2020 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/a-better-way-than-staggered-iterations-for-delivery/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Engineering Excellence</category>
      <category>Scrum</category>
      <category>Product Development</category>
      <description>Staggered iterations create more technical debt, increase rework, and lower software quality because they prolong feedback cycles and maintain outdated siloed processes. For example, one diagram shows an 18-week delivery cycle with a 2-month lag for initial feedback, making changes expensive as coding and testing teams have already moved on. Teams should instead bring all work for shippable increments into each Sprint, including testing, and avoid relying on validation or QA outside the Sprint. Cross-functional teams, test-first practices, and ensuring working software at the end of every iteration will collectively raise quality and speed of delivery. Automating as much as possible from code check-in to production further reduces risk and increases value.</description>
      <content:encoded>&lt;p&gt;There is a better way than staggered iterations for delivery that will keep you on the path to agility. Staggered iterations lead to more &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt; and lower quality software.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nkdagility.com/the-2020-scrum-guide/" target="_blank" rel="external noopener noreferrer"&gt;Updated to reflect the 2020 Scrum Guide! &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

    
    

  
&lt;h2 id="tldr"&gt;TL;DR;&lt;/h2&gt;
&lt;p&gt;The expected result of staggered iterations would be an increase in rework and in technical debt. If you are moving from a 4-year iterative process to a 4-month one you will see the value, but your process will be opaque and will only reduce your ability to deliver &lt;a href="https://engineering-leadership.hinshelwood.com/tags/working-software/"&gt;working software&lt;/a&gt;.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;Yes, your &lt;a href="https://engineering-leadership.hinshelwood.com/tags/cycle-time/"&gt;cycle time&lt;/a&gt; will be reduced, but you can do so much better. Move all requirements for shipping your software into your Sprint. If you need testing then it needs to be inside of the Sprint. A general rule is that: If you need to validate something outside of the Sprint; User Acceptance, Security audit, regulatory approval; Then you need to make sure that all of the work required to pass that outside validation is doing inside of the Sprint, with no further work required from the development team.&lt;/p&gt;
&lt;p&gt;-&lt;a href="https://nkdagility.com/company/about-us/" target="_blank" rel="external noopener noreferrer"&gt;Martin Hinshelwood &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;For example, this means that if you have 6 weeks of animal trials, followed by 6 weeks of human trials to validate that your pacemaker firmware is good, you can&amp;rsquo;t have those things happen inside of every 2 weeks Sprint. Instead, focus on what you can do to make those things pass. If they don&amp;rsquo;t pass then do a full route-cause-analysis and bring that new information to your Sprint Retrospective and make sure you put measures in place to make sure it does not happen again.&lt;/p&gt;


  
&lt;h2 id="a-better-way-than-staggered-iterations-for-delivery"&gt;A better way than staggered iterations for delivery&lt;/h2&gt;
&lt;p&gt;I have seen many companies that are trying to move towards greater agility get trapped in the past by creating artificial silos based on skills. They believe that by creating a timbox for planning, development and testing that we can get closer to agility and move away from our traditional models. Unfortunately, the actual result is to enshrine that traditional staged model and step sideways on the path to agility, not forwards. In many cases, it can be a significant step backwards that will take many painful years to rectify.&lt;/p&gt;
&lt;figure&gt;&#13;
&lt;p class="post-img"&gt;&lt;a href="images/staggered-iterations-for-delivery-1-1.png" class="post-img-link" data-toggle="lightbox"&gt;
  &lt;img src="images/staggered-iterations-for-delivery-1-1.png" loading="lazy" alt="A better way than staggered iterations for delivery" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;figcaption&gt;&#13;
&lt;p&gt;staggered-iterations-for-delivery&lt;/p&gt;
&lt;/figcaption&gt;&#13;
&lt;/figure&gt;&#13;
&lt;p&gt;I have heard this called many things. Water-&lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt;-fall or maybe Scrummerfall but whatever you call it the reality is that this is just small waterfalls and in the case above not really that small at all. This is often how organisations respond when they are told to &amp;ldquo;do agile&amp;rdquo; and they end up figuring out how to not really change, and do the same thing that they have always done.&lt;/p&gt;
&lt;p&gt;This is not the action of a &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#scrum-team"&gt;Professional Scrum Team&lt;/a&gt;, but that of, at best amateurs and at worst cowboys.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="the-problem-with-staggered-iterations-for-delivery"&gt;The problem with staggered iterations for delivery&lt;/h2&gt;
&lt;p&gt;In the diagram above we have an 18-week cycle from inception to delivery. That’s more than 4 months between ideation and delivery with a lag of 2 months to even get feedback with a 2 month lag for all subsequent feedback. Worse this is the most expensive kind of feedback as the Coding and Testing teams have already moved on from the thing that is getting feedback and the result of that feedback will be more expensive to implement. Indeed worse yet if QA finds something that needs fixed we have maximised not only the cost to fix but the meantime to repair as the developers have moved on. And what do they do with that feedback? How is it prioritised? Do they quit what they are doing immediately and fix the previous iteration or do they wait until after they deliver this one? What if they are blocking QA? Does QA sit around till the end of the iteration after the one they reported the problem in?&lt;/p&gt;


  
&lt;h2 id="the-solutions-to-staggered-iterations-for-delivery"&gt;The solutions to staggered iterations for delivery&lt;/h2&gt;
&lt;p&gt;We need to foster teams over individuals and make those teams responsible for the delivery of working software. To get that we need cross-functional teams that can turn ideas into that working software. And we need to do it often.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cross-functional teams&lt;/strong&gt; – We need to have everyone on the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; that is required to turn the Backlog Item into working software. If you were a property developer you would have access to joiners, plumbers, plasterers and electricians. You would create a team of individuals that was sufficient to complete the daily work on-site with experts on hand as needed. This is the same process for &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;. You should have all of the skills that you require on each team to turn the forecast backlog items into working software each and every iteration. Have experts on hand for those tricky items but minimise the dependency that you have on them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/asynchronous-development/"&gt;Asynchronous development&lt;/a&gt;&lt;/strong&gt; -  Ideally you want all of the disciplines that you need to complete each backlog item to work together to deliver the software. This is more than handing off between disciplines but moving towards everyone always working at any point in time. This is a hard one to achieve but is the responsibility of the team to figure out how; &lt;a href="https://nkdagility.com/getting-started-with-modern-source-control-system-and-devops/" target="_blank" rel="external noopener noreferrer"&gt;To achieve asynchronous development you will need a modern source control system &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test first&lt;/strong&gt; – Test first is about not doing any work unless there is a measurable test that elicits that work. Creating tests from acceptance criteria will make sure that your team is working on and understands the next most relevant thing to be worked on and that you have built what the customer wants. Additionally, creating unit tests before code will make sure that your coders are working on the most relevant problem, and that each line of code that they complete does exactly what they intended. The long term benefit of this is that we now have an executable specification that will result in an error if a future change breaks existing functionality. &lt;a href="https://nkdagility.com/you-are-doing-it-wrong-if-you-are-not-using-test-first/" target="_blank" rel="external noopener noreferrer"&gt;You are doing it wrong if you are not using test first. &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Working software each iteration&lt;/strong&gt; – If you don’t create working software at the end of each iteration you have no way of knowing what really needs to be done to create a working &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;increment&lt;/a&gt;. If you do four iterations of two weeks before you think about creating a working increment, how much work (re-work really) is left that you need to complete to really be done? To really have shippable quality? If you don’t have working software at the end of each iteration you are making sure that your business can’t ship out of band, no matter how much it wants to; &lt;a href="https://nkdagility.com/professional-scrum-teams-build-software-works/" target="_blank" rel="external noopener noreferrer"&gt;Professional Scrum Teams build software that works &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quality Assurance requires no testing&lt;/strong&gt; – If you consider that all testing is done as part of the sprint, then the only thing that needs to be done as part of the QA gate is to review the test results and coverage and determine the sufficiency of those results and coverage. If you are taking more than four hours to QA two weeks of development then I would suggest that the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; work is not sufficient.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These things will all individually help and if you are doing all of them together your &lt;a href="https://engineering-leadership.hinshelwood.com/tags/value-delivery/"&gt;value delivery&lt;/a&gt; and quality should start to increase over time. Make sure that you focus on automating everything from the moment a Software Engineer checks in code, to it being &lt;a href="https://nkdagility.com/continuous-deliver-sprint/" target="_blank" rel="external noopener noreferrer"&gt;continuously delivered to production &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;. In the age of agility giving you a competitive advantage in whatever marketplace you are in, any manual work is a risk.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Stop Hiding Behind Complexity and Start Delivering Continuously</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/stop-hiding-behind-complexity-and-start-delivering-continuously/</link>
      <pubDate>Mon, 24 Feb 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/stop-hiding-behind-complexity-and-start-delivering-continuously/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Engineering Excellence</category>
      <category>Product Development</category>
      <category>DevOps</category>
      <description>Complexity is not a real barrier to continuous delivery; it is an excuse that hides the lack of investment in modernising processes and architecture. Companies like Microsoft Azure DevOps transformed from two-year release cycles and fixing 75,000 bugs for Visual Studio 2010 to shipping almost 300 features a year by prioritising automation, trunk-based development, feature flags, shift-left testing, and relentless process improvement. Sustainable velocity requires tracking metrics such as time to build, self-test, deploy, and learn, and focusing on value areas like customer satisfaction, unrealised value, innovation, and time to market. Continuous delivery is achievable for any software system if the organisation is willing to invest the time, effort, and resources to address root causes of slow delivery and technical debt. The real challenge is organisational will, not software complexity.</description>
      <content:encoded>&lt;p&gt;Every organisation says their software is &amp;rsquo;too complex&amp;rsquo; for &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;continuous delivery&lt;/a&gt;. That&amp;rsquo;s nonsense. Complexity is an excuse, not a blocker. &lt;a href="https://engineering-leadership.hinshelwood.com/tags/azure-devops/"&gt;Azure DevOps&lt;/a&gt;, Starbucks, and countless others proved it wrong. The only real obstacle is the resistance to invest in fixing what’s broken. Complexity is an excuse, not a blocker. Microsoft proved it. Starbucks proved it. You can too; if you’re willing to put in the time, effort, and money.&lt;/p&gt;
&lt;p&gt;Continuous delivery is not a pipe dream. If the organisation is willing to invest, it’s achievable for every software product, regardless of complexity or legacy constraints. And that&amp;rsquo;s the challenge.&lt;/p&gt;
&lt;p&gt;The organisation must be willing to invest significant time and effort in enabling it. Microsoft&amp;rsquo;s Azure &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; team exemplifies this. They transitioned from shipping new features every two years to delivering value every three weeks, increasing their annual feature delivery from 25 to nearly 300 at their peak.&lt;/p&gt;
&lt;p&gt;This evolution was not the result of a silver bullet but a deliberate effort to modernise architecture, eliminate &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt;, automate relentlessly, and embed a culture of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-improvement/"&gt;continuous improvement&lt;/a&gt;. It is an ongoing evolution that has paid dividends for every year of effort invested. They delivered 58 features at the end of the first year of investment, rising to over 250 features after four years, later stabilising at just over 300. This is the power of continuous delivery.&lt;/p&gt;

    
    

  
&lt;h3 id="tldr"&gt;TLDR&lt;/h3&gt;
&lt;p&gt;Every software system, no matter how complex or archaic, can be updated, tested, and deployed continuously, without delays, bottlenecks, or manual interventions. This is the core of Continuous Delivery (CD): software always in a deployable state, ready for frequent, reliable releases.&lt;/p&gt;


  
&lt;h2 id="what-is-holding-you-back"&gt;What is holding you back?&lt;/h2&gt;
&lt;p&gt;Many teams believe they cannot achieve continuous delivery and instead claim:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Their product is too big and complex&lt;/li&gt;
&lt;li&gt;Their teams lack the skills&lt;/li&gt;
&lt;li&gt;It’s not possible in their regulated industry&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every single one of these justifications is illegitimate and reflects either the team&amp;rsquo;s unwillingness to learn or the &lt;a href="https://engineering-leadership.hinshelwood.com/categories/leadership/"&gt;leadership&lt;/a&gt;&amp;rsquo;s unwillingness to invest. These are excuses, not realities.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In reality, systemic and continuous underinvestment in quality, scalable, and supportable products is to blame.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This failure is not driven by the engineers or managers doing the work, but they have enabled it. The cause lies squarely in the business, even if they did not consciously make it.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&amp;ldquo;If you put people under pressure to deliver, they will increasingly and systemically decrease quality to meet whatever ridiculous deadlines you give them.&amp;rdquo;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;The result is unchecked technical debt, high bug rates in production, significant rework, and unmet expectations.&lt;/p&gt;
&lt;p&gt;This is not a terminal condition but a challenge to manage and overcome. The key lies in intentionality. Without tackling the root causes of complexity for new capabilities, slow releases, and frequent production issues, process changes will fail to deliver meaningful results.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="the-evolution-of-the-developer-division-at-microsoft"&gt;The Evolution of the Developer Division at Microsoft&lt;/h3&gt;
&lt;p&gt;Like every other company that has built software at scale, Microsoft fell into the usual traps of long release cycles, single-pass coding, and poor testing quality. For the Developer Division, responsible for Visual Studio, Team Foundation Server, and other software engineering tools, this resulted in a two-year release cycle, a four-year customer feedback loop, and fixing 75,000 bugs to get Visual Studio 2010 out the door.&lt;/p&gt;
&lt;p&gt;Market forces pushed them to evolve. They could no longer meet the demands of an increasingly dynamic market, and a four-year response time to customer needs was unsustainable. While laggards might remain, it&amp;rsquo;s the early adopters who drive new business and shape emerging markets. Failing to keep them engaged signals a decline that, if left unchecked, can be fatal, but recovery is possible with decisive action.&lt;/p&gt;
&lt;p&gt;Azure DevOps emerged as the result of decisive action by Microsoft&amp;rsquo;s Developer Division, triggered by an urgent need to break free from their two-year release cycle and four-year customer feedback loop. They didn&amp;rsquo;t inherit perfection, they faced legacy code, fragmented processes, and a monolithic release cycle. Their transformation began with small, incremental changes, but success required deeper, systemic shifts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automate Everything&lt;/strong&gt;: This cannot be emphasised enough. Automate every possible task. If something cannot be automated today, create a plan to rework the architecture until it can be. From testing and deployments to upgrades, certificates, passwords, and environments, automation should be the default, not the exception.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Trunk-Based Development&lt;/strong&gt;: The cognitive load and resulting complexity from supporting multiple versions of your product significantly increases complexity and risk. Long-running branches, especially when promoting by branch, slow the delivery of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/working-software/"&gt;working software&lt;/a&gt; to real users. Adopting &lt;a href="https://engineering-leadership.hinshelwood.com/articles/stop-promoting-branches/"&gt;Trunk-Based Development practices&lt;/a&gt; eliminates this risk by ensuring that all code integrates continuously into a single shared branch.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Feature Flags&lt;/strong&gt;: To maximise both quality and value, it&amp;rsquo;s essential to &lt;a href="https://engineering-leadership.hinshelwood.com/articles/testing-in-production-maximises-quality-and-value/"&gt;test new capabilities in production&lt;/a&gt; while gradually exposing them to users, reducing risk. This approach shortens feedback loops and enables swift adaptation to emerging market opportunities. Since we can&amp;rsquo;t predict which features will deliver the most value, we validate hypotheses by running small experiments with real data. Effective use of feature flags is crucial for these experiments, ensuring safe, controlled releases that drive continuous improvement.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Shift-Left&lt;/strong&gt;: Shift from testing quality at the end (QA, Staging, UAT) to embedding it throughout the development process. Use hypothesis-driven practices and unit tests at every stage to ensure high quality from the start. Discovering a security vulnerability in staging often means the flaw is deeply embedded, leaving no time or budget for proper fixes, only quick patches that hackers easily exploit. Instead, conduct security tests, code reviews, and performance checks continuously, as close to code creation as possible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Iterate Over Pain&lt;/strong&gt;: If a task is hard or error-prone, you should do it more often. Any activity, like releasing, that feels difficult or frequently leads to errors deserves focused attention. Repeated practice exposes weak points, allowing you to refine the process and reduce risk. Avoiding the pain only ensures it remains a persistent threat.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h2 id="what-can-we-learn"&gt;What can we learn?&lt;/h2&gt;
&lt;p&gt;If you want to be able to adapt to market opportunities or surprises, then you need to be able to shift quickly. This means that any software system, regardless of its complexity, architecture, or purpose, should be updated, tested, and deployed in a continuous flow without delays, bottlenecks, or manual interventions. This is the ethos of Continuous Delivery (CD), where software is always in a deployable state, enabling frequent and reliable releases.&lt;/p&gt;
&lt;p&gt;In the world of modern software engineering its no longer an optional thing. It&amp;rsquo;s a business demand.  Too many business opportunities have been missed because we are too slow to deliver and too slow to turn feedback into usable working products on a short enough timeline.&lt;/p&gt;
&lt;p&gt;How short your timeline needs to be is a question for your business&amp;hellip; what is your effective planning horizon. For Starbucks PoS its 48h; for &lt;a href="https://engineering-leadership.hinshelwood.com/tags/windows/"&gt;Windows&lt;/a&gt;, its ~120h, for Facebook its just a few minutes.&lt;/p&gt;


  
&lt;h2 id="measuring-your-velocity"&gt;Measuring your velocity&lt;/h2&gt;
&lt;p&gt;Velocity isn&amp;rsquo;t just about how much work gets done, it&amp;rsquo;s about how fast you move from idea to outcome. It’s about closing feedback loops quickly, enabling continuous improvement, and delivering valuable increments faster.&lt;/p&gt;
&lt;p&gt;In 2018, Buck Hodges from Microsoft&amp;rsquo;s Azure DevOps/Team Foundation Server team introduced four key metrics to evaluate and enhance the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/software-development/"&gt;software development&lt;/a&gt; and deployment process:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Time to Build:&lt;/strong&gt; This metric measures the duration from code commit to the completion of a successful local build on a developer&amp;rsquo;s workstation. It reflects the amount of time a developer needs to wait to know if their code compiles.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Time to Self-Test:&lt;/strong&gt; This refers to the time taken to execute automated tests after a build locally. A shorter Time to Self-Test reflects fast tests and enables quicker feedback on code quality. Efficient self-testing cycles catch defects early, reduce rework, and maintain code integrity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Time to Deploy:&lt;/strong&gt; This metric tracks the time required to deploy a build to a production environment. Shorter deployment times increase velocity by enabling rapid feedback and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/value-delivery/"&gt;value delivery&lt;/a&gt;. Minimising the Time to Deploy is crucial for rapidly delivering features and fixes to end users. &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-integration/"&gt;Continuous integration&lt;/a&gt; and delivery (CI/CD) pipelines are essential for optimising this metric.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Time to Learn:&lt;/strong&gt; This encompasses the period from deployment to collecting and analysing user feedback or telemetry data. Reducing Time to Learn ensures teams quickly understand user interactions and make informed decisions for future development. Faster learning cycles mean teams adapt quickly, prioritise effectively, and avoid wasting time on low-value features.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These metrics represent stages in the flow of work from ideation to outcome. They are not the only metrics or stages, but they represent and expose significant bottlenecks in this case, and they are 100% within the control of engineering. Engineering did not require any outside approval to measure and optimise these stages. Accountability for improvement lies squarely within the team.&lt;/p&gt;
&lt;p&gt;By monitoring and optimising these metrics, development teams can achieve a more streamlined and responsive DevOps workflow, leading to faster delivery of high-quality software. However, these metrics are focused on the work of engineers building the product, and there may be other things in the application lifecycle that may have a bigger impact on you and your teams.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s crucial to take a holistic view of metrics, and the &lt;a href="https://engineering-leadership.hinshelwood.com/guides/evidence-based-management-guide/"&gt;Evidence-Based Management (EBM) guide&lt;/a&gt; is a great starting point. It offers example metrics that can either be adopted directly or adapted to fit your context. When choosing metrics, focus on the four Key Value Areas (KVAs) defined by EBM:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/current-value/"&gt;Current Value&lt;/a&gt; (CV):&lt;/strong&gt; Measures the value delivered to customers or stakeholders today, reflecting satisfaction and success based on the current product.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unrealized Value (UV):&lt;/strong&gt; Identifies potential future value by highlighting gaps between what customers have and what they need or desire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/ability-to-innovate/"&gt;Ability to Innovate&lt;/a&gt; (A2I):&lt;/strong&gt; Assesses how effectively the organisation can deliver new capabilities, features, or products without being constrained by technical debt, process bottlenecks, or organisational drag.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/time-to-market/"&gt;Time to Market&lt;/a&gt; (T2M):&lt;/strong&gt; Evaluates the speed at which ideas, features, or fixes move from concept to production, directly impacting responsiveness to market demands and customer needs.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These four areas provide a balanced view, ensuring you don’t just measure output but focus on the outcomes that drive business success and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/customer-satisfaction/"&gt;customer satisfaction&lt;/a&gt;.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="the-path-forward"&gt;The Path Forward&lt;/h2&gt;
&lt;p&gt;Ultimately, when deployments are automated, code is well-tested, and processes are streamlined, teams can respond faster to customer needs, market changes, and business opportunities. Azure DevOps’ and Windows evolutions proved that the barrier to continuous delivery is not technical complexity but organisational will.&lt;/p&gt;
&lt;p&gt;No matter where you start, the path to continuous delivery is through addressing the complexity that is slowing you down head-on. Prioritise automation, enforce code quality and relentlessly improve your processes. The result is not just faster releases but better software, happier teams, and more satisfied customers.&lt;/p&gt;
&lt;p&gt;If Azure DevOps can do it with their scale and complexity, so can you.&lt;/p&gt;
&lt;p&gt;The only question is whether you&amp;rsquo;re willing to do what Azure DevOps, Starbucks, and countless others have done: stop hiding behind complexity, and start delivering continuously.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Your Evolving Definition of Done</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/your-evolving-definition-of-done/</link>
      <pubDate>Mon, 31 Mar 2025 09:00:00 +0100</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/your-evolving-definition-of-done/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Artifact</category>
      <category>Scrum</category>
      <category>Engineering Excellence</category>
      <category>Product Development</category>
      <description>The Definition of Done (DoD) is not fixed; it evolves as Scrum Teams mature and must align with organisational standards that reflect broader business needs such as regulatory compliance, customer feedback incorporation, and go-to-market readiness. A clear, objective DoD is crucial for meeting professional standards and ensuring each increment delivers real value. One team, after 17 years together, defined "done" as live in production, gathering telemetry, and measuring outcomes against the original hypothesis. Robust DoD practices should include automated testing, security checks, documentation, and repeatable deployment processes, all embedded early in the development cycle. Continual improvement of the DoD enhances quality, reduces risk, and aligns outcomes with business strategy, making it a strategic asset rather than a mere checklist.</description>
      <content:encoded>&lt;p&gt;The &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done (DoD)&lt;/a&gt; is not a static artefact; it evolves over time as a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Team&lt;/a&gt; gains experience and capability. While the &lt;a href="https://engineering-leadership.hinshelwood.com/guides/scrum-guide/"&gt;Scrum Guide&lt;/a&gt; acknowledges that teams may refine their DoD to improve product quality, there’s an often overlooked piece: Organisations should also provide an organisational Definition of Done that reflects their needs. This organisational perspective ensures that &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; Teams build on a solid foundation, aligning technical execution with &lt;a href="https://engineering-leadership.hinshelwood.com/tags/strategic-goals/"&gt;strategic goals&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://engineering-leadership.hinshelwood.com/articles/definition-of-done-objective-vs-subjective/"&gt;Definition of Done (DoD) is an objective, measurable standard of quality&lt;/a&gt;, not a negotiable target. Keep it clear, enforceable, and automated to ensure every &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;Increment&lt;/a&gt; meets professional expectations.&lt;/p&gt;

    
    

  
&lt;h2 id="definition-of-done---the-organisational-quotient"&gt;Definition of Done - The Organisational quotient&lt;/h2&gt;
&lt;p&gt;For a product to deliver real value, its quality criteria must align with organisational and market expectations. It should meet a minimum quality standard that ensures usability while safeguarding the organisation, its employees, and its users. Any failure to do so could damage the organisation’s reputation and trust in the product.&lt;/p&gt;
&lt;p&gt;This means organisations should define a business DoD that may include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Regulatory compliance&lt;/li&gt;
&lt;li&gt;Market readiness (e.g., beta testing completion, go-to-market strategies)&lt;/li&gt;
&lt;li&gt;Customer experience and feedback incorporation&lt;/li&gt;
&lt;li&gt;Financial viability assessment&lt;/li&gt;
&lt;li&gt;Alignment with broader company objectives&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without this business-level perspective, teams risk optimising for technical completeness while missing the broader &lt;a href="https://engineering-leadership.hinshelwood.com/tags/value-delivery/"&gt;value delivery&lt;/a&gt; picture. The result of many iterations of the organisational definition of done for a product might look like:&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;Live an in production&lt;/p&gt;
&lt;p&gt;gathering telemetry&lt;/p&gt;
&lt;p&gt;supporting or diminishing&lt;/p&gt;
&lt;p&gt;the starting hypothesis&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;This short sentence packs a lot into it, and it&amp;rsquo;s a commercial product definition of &amp;ldquo;done&amp;rdquo; for a team I have collaborated closely with for over 17 years.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;Live an in production&amp;rdquo; - done here mean that it is in the hands of real users&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;gathering telemetry&amp;rdquo; - done here mean that the Developers must add code that collects relevant information from usage, performance, and such&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;ldquo;supporting or diminishing the starting hypothesis&amp;rdquo; - Done here means that the team must define success metrics before building a feature or capability, ensuring that the collected data provides clear evidence of whether the intended outcomes are being achieved.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;None of these elements define the &amp;ldquo;why&amp;rdquo; or &amp;ldquo;what&amp;rdquo; of what we&amp;rsquo;re building, those are captured in the backlogs. Instead, they establish the minimum quality standard required for work to be considered done.&lt;/p&gt;


  
&lt;h2 id="definition-of-done---translating-organisational-standards-into-team-practice"&gt;Definition of Done - Translating Organisational Standards into Team Practice&lt;/h2&gt;
&lt;p&gt;While Scrum Teams are self-managing, that doesn’t mean they can do whatever they want. They operate within a structured environment, within a &lt;a href="https://engineering-leadership.hinshelwood.com/articles/balance-of-leadership-and-control-in-scrum/"&gt;balance of leadership and control&lt;/a&gt; that upholds both autonomy and accountability. Scrum isn’t anarchy; it’s a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/social-technologies/"&gt;social technology&lt;/a&gt; that enables self-management within clear constraints, Scrum events, commitments, and organisational expectations.&lt;/p&gt;
&lt;p&gt;Each Scrum Team must interpret the organisational Definition of Done within their context, shaping an engineering-level DoD that aligns with it. While examples can guide them, it&amp;rsquo;s the team’s responsibility to determine what Done means within organisational constraints.&lt;/p&gt;
&lt;p&gt;In addition to supporting the organisational definition of done, a robust DoD ensures that work meets a consistent level of quality before it is considered complete. This includes &lt;a href="https://engineering-leadership.hinshelwood.com/tags/engineering-practices/"&gt;engineering practices&lt;/a&gt;, preferably within the bounds of a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/shift-left-strategy/"&gt;shift-left strategy&lt;/a&gt;, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Writing Unit and Integration Tests&lt;/strong&gt; – with a preference for shifting testing earlier by adopting Test-Driven Development (TDD) and automated integration testing, ensuring issues are caught before coding progresses too far, and preferably making tests a prerequisite for writing new code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Performing Code Reviews&lt;/strong&gt; – Rather than manual code reviews create automate code quality checks using static analysis and enforce good practices before manual reviews, allowing developers to focus on deeper logic and architectural concerns, and preferably integrating peer reviews into the development workflow, such as pair or mob programming.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Adhering to Security and Compliance Requirements&lt;/strong&gt; – try embeding security scanning into &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;CI/CD pipelines&lt;/a&gt; with automated dependency checks and policy enforcement, catching vulnerabilities before they reach production, and preferably treating security as code, ensuring it evolves alongside development.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Maintaining Updated Documentation&lt;/strong&gt; – Automate as much of your documentation updates as possible using tools that generate API references and architecture diagrams directly from code, keeping documentation relevant and accurate, and preferably making documentation a non-negotiable part of the Definition of Done (DoD).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ensuring Deployments are Automated and Repeatable&lt;/strong&gt; – Implement Infrastructure as Code (IaC) and continuous deployment pipelines to guarantee consistent, error-free releases, and preferably shifting validation left with feature flags, automated rollback strategies, and deployment previews.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each aspect contributes to quality, reducing the likelihood of defects and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt;. However, quality isn’t just a technical concern, it is an economic and strategic one.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="the-evolution-of-done-over-time"&gt;The Evolution of Done Over Time&lt;/h2&gt;
&lt;p&gt;New teams often start with a weak DoD that doesn’t yet guarantee releasability. A brownfield product with legacy constraints may have a DoD that initially excludes automation, testing, or &lt;a href="https://engineering-leadership.hinshelwood.com/tags/deployment-frequency/"&gt;continuous deployment&lt;/a&gt; due to existing technical debt. Over time, through Sprint Retrospectives and deliberate improvements, the DoD should:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Start at a minimal viable level (e.g., basic testing, peer reviews).&lt;/li&gt;
&lt;li&gt;Expand to include &lt;a href="https://engineering-leadership.hinshelwood.com/tags/automated-testing/"&gt;automated testing&lt;/a&gt;, security checks, and CI/CD.&lt;/li&gt;
&lt;li&gt;Reach a state where every increment is truly releasable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;An experienced Scrum Team should aim for a DoD that ensures shippability at the end of every Sprint. Anything less introduces unnecessary risk and delays value realisation.&lt;/p&gt;


  
&lt;h4 id="common-misconceptions"&gt;Common Misconceptions&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Can the DoD Change Per Sprint?&lt;/strong&gt;&lt;br&gt;
Yes, but only to &lt;strong&gt;increase quality&lt;/strong&gt;. The Sprint Retrospective is the right place to discuss DoD improvements, not reductions. However, if an issue arises, address it immediately, don’t wait for the Retrospective.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Can the DoD Be Lowered to Deliver More Features?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No. Quality is a long-term investment, not a short-term lever to pull for speed. A Scrum Team has no authority to cut quality, that&amp;rsquo;s a financial and risk decision made at the highest level. This authority rarely sits with project managers or middle management. If someone asks you to lower quality, tell them to get it in writing from the financial director.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Can We Have Different DoDs Per Backlog Item?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No. The DoD is a universal standard applied to all work, ensuring consistency in quality. Acceptance Criteria define specific conditions for a backlog item, but these conditions do not belong in the DoD.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Should the DoD Be Fluid and Change Every Sprint?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No. A fluctuating DoD signals dysfunction unless it’s always improving. Constant changes undermine &lt;a href="https://engineering-leadership.hinshelwood.com/tags/transparency/"&gt;transparency&lt;/a&gt; and disrupt planning. Evolution should be deliberate, incremental, and focused on raising quality, not shifting goalposts.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;


  
&lt;h2 id="dod-as-a-strategic-lever"&gt;DoD as a Strategic Lever&lt;/h2&gt;
&lt;p&gt;A strong DoD isn’t just about engineering, it’s about protecting revenue, managing risk, and ensuring predictable delivery. Weak DoD practices lead to costly rework, delayed releases, and customer dissatisfaction. By embedding security, compliance, and quality checks into the development cycle, organisations reduce their exposure to financial and reputational risks. Teams that consistently meet a well-defined DoD can deliver with greater confidence, improving &lt;a href="https://engineering-leadership.hinshelwood.com/tags/forecasting/"&gt;forecasting&lt;/a&gt; and market responsiveness.&lt;/p&gt;
&lt;p&gt;A strong DoD reduces rework, increases predictability, and aligns technical work with business value. As organisations evolve, so should their quality expectations. This continuous refinement is not just a technical necessity, it’s a competitive advantage.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Fragile by Design: The Cost of Pretending to Be Resilient</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/fragile-by-design-the-cost-of-pretending-to-be-resilient/</link>
      <pubDate>Mon, 12 May 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/fragile-by-design-the-cost-of-pretending-to-be-resilient/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Engineering Excellence</category>
      <category>Product Development</category>
      <description>Most systems are fragile by design, maintained by the illusion of continuity that collapses under real stress. Major failures, such as Spain’s energy blackout and Oracle’s hospital cloud outage, happened not by accident but due to bad engineering, superficial product thinking, and leadership that avoids confronting operational weaknesses. Real resilience is not box-ticking or paperwork; it must be engineered, tested, and proven under real-world conditions, like Rackspace’s CEO physically shutting off power monthly to ensure backup systems work in reality, not just on paper. Organisations that treat continuity as an afterthought, or cover failures with fake success metrics, are building houses of cards. True resilience comes only from relentless practice, honest iteration over pain, and an unwavering willingness to test and expose weaknesses until survival becomes certain.</description>
      <content:encoded>&lt;p&gt;Most systems are not resilient. They are fragile by design, propped up by a fantasy of &amp;ldquo;continuity&amp;rdquo; that vanishes the moment real pressure hits.&lt;/p&gt;
&lt;p&gt;Spain’s national blackout. Portugal’s cascading failures. Oracle’s hospital cloud outage. Heathrow’s catastrophic shutdown. These were not accidents. They were not rare, unpredictable events. They were the inevitable consequences of bad engineering, shallow product thinking, and organisational self-delusion.&lt;/p&gt;
&lt;p&gt;Resilience is not a checkbox. It is not a compliance exercise. It is not a hope and a prayer filed away in a disaster recovery plan. Resilience is hard. It is costly. It must be engineered, tested, and verified under real-world conditions, or it does not exist.&lt;/p&gt;

    
    

  
&lt;h2 id="bad-engineering"&gt;Bad Engineering&lt;/h2&gt;
&lt;p&gt;Real resilience assumes things will fail. Networks will fail. Authentication systems will fail. People will make mistakes. If your architecture does not &lt;em&gt;assume failure&lt;/em&gt; at every level, you are not resilient; you are brittle.&lt;/p&gt;
&lt;p&gt;Spain’s energy grid collapsed because it was optimised for efficiency, not survivability. No dynamic rerouting. No true load isolation. No meaningful observability. Their system was designed for perfect operating conditions that do not exist outside PowerPoint decks.&lt;/p&gt;
&lt;p&gt;Oracle’s outage was even worse. Critical healthcare systems went offline because Oracle’s cloud infrastructure had no effective multi-region failover. Their architecture did not degrade gracefully; it fell over completely. That is not resilience. That is negligence at scale.&lt;/p&gt;


  
&lt;h2 id="bad-product-and-continuity-thinking"&gt;Bad Product and Continuity Thinking&lt;/h2&gt;
&lt;p&gt;Resilience is a &lt;strong&gt;product capability&lt;/strong&gt;. If your product cannot survive failure, it is not a product. It is a liability.&lt;/p&gt;
&lt;p&gt;Spain, Portugal, Oracle, all treated continuity as an afterthought. As long as the lights were on today, everything was declared fine. Until it was not.&lt;/p&gt;
&lt;p&gt;Real product &lt;a href="https://engineering-leadership.hinshelwood.com/categories/leadership/"&gt;leadership&lt;/a&gt; demands harder questions: &lt;em&gt;When, not if, this part fails, how will our system recover? How will our customers experience it? How fast can we restore service? How much risk are we carrying, and is that risk acceptable?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If those questions are not part of your roadmap, your architecture, and your operational strategy, you are not building resilience. You are building a house of cards.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="organisational-blindness"&gt;Organisational Blindness&lt;/h2&gt;
&lt;p&gt;The real failure sits higher up the chain. Leadership failed to create a culture that prioritised operational survivability over operational fantasy.&lt;/p&gt;
&lt;p&gt;I have lived through this firsthand. At Merrill Lynch, I participated in two major disaster recovery exercises. Both were declared “successful.” Both were complete failures.&lt;/p&gt;
&lt;p&gt;Not a single system restored was actually usable. Systems were technically “back online”, but functionally, nothing worked. And the root cause was obvious: Active Directory, the system everything depended on for authentication, was never successfully recovered. Without it, every other &amp;ldquo;restored&amp;rdquo; system was dead weight.&lt;/p&gt;
&lt;p&gt;Ironically, my application was successfully restored. We assumed it would have been usable, &lt;em&gt;if&lt;/em&gt; Active Directory had been available. But we never found out. Two years running, the same critical dependency remained broken, and nobody was willing to call it what it was: systemic failure hidden behind fake success metrics.&lt;/p&gt;
&lt;p&gt;Heathrow Airport offers another textbook case of organisational blindness disguised as resilience. When a fire broke out at one of their substations, they publicly blamed the disruption on their third-party power supplier. What they failed to mention was critical: Heathrow receives power from &lt;em&gt;three independent substations&lt;/em&gt;, any one of which can fully power the airport alone.&lt;/p&gt;
&lt;p&gt;The real problem was not the power supply it was a fluctuation in the power supply. It was Heathrow’s own disaster recovery system, designed to “protect” infrastructure by shutting everything down that detected that fluctuation and activated.  
The result? Heathrow’s entire IT backbone collapsed. It took the rest of the day to get basic systems running again, and much longer to recover from the cascading operational chaos.&lt;/p&gt;
&lt;p&gt;Instead of owning the internal failure, leadership pointed fingers outward. It is the same story everywhere: an unwillingness to face the reality that their own fake resilience made the disaster worse.&lt;/p&gt;


  
&lt;h2 id="real-resilience-iterating-over-the-pain"&gt;Real Resilience: Iterating Over the Pain&lt;/h2&gt;
&lt;p&gt;Not every story ends in failure. There are organisations that do it right, and the difference is discipline.&lt;/p&gt;
&lt;p&gt;Take Rackspace. During catastrophic floods in London, when almost every other datacentre in the city failed, Rackspace’s facility stayed operational. Their backup generators worked exactly as expected. While others blamed suppliers and scrambled for excuses, Rackspace quietly kept their customers online.&lt;/p&gt;
&lt;p&gt;When asked why their systems worked when everyone else’s failed, the CEO simply held up a key.&lt;/p&gt;
&lt;p&gt;It was the key to the power room.&lt;/p&gt;
&lt;p&gt;Every month, without fail, he would walk down, unlock the main breaker, and physically pull it, shutting off external power. Not in theory. Not in a simulation. A real, full transfer to emergency backup power under real-world conditions.&lt;/p&gt;
&lt;p&gt;Because of that brutal discipline, they did not hope their disaster recovery systems would work. They &lt;em&gt;knew&lt;/em&gt;. They had tested it, again and again, under real conditions. They iterated over the pain.&lt;/p&gt;
&lt;p&gt;And that is the lesson:&lt;br&gt;
If something is hard, you must do it &lt;em&gt;more often&lt;/em&gt;, not less.&lt;br&gt;
If failure is painful, you must &lt;em&gt;lean into it&lt;/em&gt;, not avoid it.&lt;/p&gt;
&lt;p&gt;Only by living through controlled, intentional failures, early, often, and brutally, can you build true resilience.&lt;/p&gt;
&lt;p&gt;You cannot wait until it matters. You cannot prepare only on paper. You must &lt;em&gt;earn&lt;/em&gt; resilience by testing your systems, exposing your weaknesses, and getting punched in the face repeatedly until you are strong enough to survive the real thing.&lt;/p&gt;


  
&lt;h2 id="resilience-is-built-not-bought"&gt;Resilience Is Built, Not Bought&lt;/h2&gt;
&lt;p&gt;You cannot buy resilience from a vendor. You cannot inherit it automatically because you deployed to &amp;ldquo;the cloud.&amp;rdquo; You cannot declare yourself resilient by writing it into your incident response plan.&lt;/p&gt;
&lt;p&gt;Real resilience is built. It is designed in. It is iterated over. It is relentlessly tested. It is painful, slow, and expensive. But the alternative, the fragility we saw in Spain, Portugal, Oracle, and Heathrow, is far more costly.&lt;/p&gt;
&lt;p&gt;If you are not engineering for failure, you are engineering for collapse.&lt;/p&gt;
&lt;p&gt;Fragility is not an accident. It is a design choice.&lt;br&gt;
Pretending otherwise only guarantees you will learn the hard way.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Professional Scrum teams build software that works</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/professional-scrum-teams-build-software-that-works/</link>
      <pubDate>Thu, 03 Dec 2020 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/professional-scrum-teams-build-software-that-works/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Accountability</category>
      <category>Engineering Excellence</category>
      <category>Scrum</category>
      <category>Product Development</category>
      <description>Scrum teams must deliver software that works, meaning software free from faults or defects, rather than just rushing out features or meeting expectations. Developers are accountable for quality and must focus on engineering excellence by fixing bugs as soon as they are found, automating tests and pipelines, using source control, and adopting feature flags. Cutting corners on quality creates technical debt and risk, and any decision to sacrifice quality must involve executive leadership, not developers or product owners. Software that is buggy, incomplete, or missing these practices signals a lack of professionalism and erodes trust with users. True Scrum requires teams to continuously inspect, adapt, and improve in pursuit of consistently high-quality releases.</description>
      <content:encoded>&lt;p&gt;I am always surprised at the number of teams that release undone work to production. I understand that one may need a few sprints, or many if you inherited something nasty, to pay back that debt, but if it&amp;rsquo;s more then you are not a &lt;a href="https://engineering-leadership.hinshelwood.com/blog/scrum-tapas-importance-professionalism/"&gt;Professional Scrum Team&lt;/a&gt;. The sheer amount of software that I have that is buggy, slow, or just not finished makes me think that there are few professional &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#scrum-team"&gt;Scrum Teams&lt;/a&gt; out there!&lt;/p&gt;

    
    

  
&lt;h2 id="tldr"&gt;TL;DR;&lt;/h2&gt;
&lt;p&gt;Every organisation has the right to hold their &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; accountable for the quality, but never quantity, of the software that they build. Every &lt;a href="https://nkdagility.com/training/courses/professional-scrum-developer-training/" target="_blank" rel="external noopener noreferrer"&gt; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developer &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; should pursue &lt;a href="https://engineering-leadership.hinshelwood.com/categories/engineering-excellence/"&gt;engineering excellence&lt;/a&gt; through &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; practices, automation, and rigorous attention to detail for every release. &lt;a href="https://engineering-leadership.hinshelwood.com/tags/working-software/"&gt;Working software&lt;/a&gt; builds trust with your users and promotes your brand, faulty software encourages distrust and hurts your reputation. Defective software and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt; are the causes of the current death grip that organisations have to traditional Taylorism based management techniques.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;Ultimately if your organisation will not let you build software any way you please its because of the shit that you have been trying to get away with delivering in the past. You have work to do to build trust again.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;Treat your team to a &lt;a href="https://nkdagility.com/training/courses/professional-scrum-developer-training/" target="_blank" rel="external noopener noreferrer"&gt;Professional Scrum Developer &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; class to get them up to speed.&lt;/p&gt;


  
&lt;h2 id="scrum-teams-build-quality-software-that-works"&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; teams build quality software that works&lt;/h2&gt;
&lt;p&gt;Working software is software that is free from fault or defect. Developers are primarily accountable for the quality and delivering a usable &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;increment&lt;/a&gt;. While they are also responsible for &lt;a href="https://engineering-leadership.hinshelwood.com/tags/value-delivery/"&gt;value delivery&lt;/a&gt;, the accountability for that lies with the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-owner"&gt;Product Owner&lt;/a&gt;. That means that if there is a choice between delivering value that lacks quality or providing less value that is of higher quality, &lt;a href="https://nkdagility.com/training/courses/professional-scrum-developer-training/" target="_blank" rel="external noopener noreferrer"&gt; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; should always choose quality.&lt;/p&gt;
&lt;p&gt;Since &amp;ldquo;rules are for the guidance of wise people, and the obedience of fools&amp;rdquo; I am going to caveat that statement for those that like to latch onto absolutes. Since any software that you build is an organisational asset, and all assets are attributed to the value of your company then that software must exist on a balance sheet somewhere. If you as the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; decide to cut quality to make a delivery do you immediately speak to the CFO so that they can accurately reflect that loss of value on the companies balance sheet? Because if you don&amp;rsquo;t, then knowing or not there is a danger that your organisation is committing fraud by inaccurately reflecting the value of your software! Ultimately the decision to cut quality should only be taken with the full consent and understanding of your executive &lt;a href="https://engineering-leadership.hinshelwood.com/categories/leadership/"&gt;leadership&lt;/a&gt; team.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;The decision to cut quality is not one that the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#product-owner" target="_blank" rel="external noopener noreferrer"&gt;Product Owner &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, or IT management are able to take, it is reserved for executive leadership alone.&lt;/p&gt;

  &lt;/blockquote&gt;



  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="quality-software-is-not-about-expectations"&gt;Quality software is not about expectations!&lt;/h2&gt;
&lt;p&gt;Working software is software that is free from fault or defect, but it does not necessarily meet the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#product-owner" target="_blank" rel="external noopener noreferrer"&gt;Product Owner&amp;rsquo;s &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; or stakeholders expectations.&lt;/p&gt;
&lt;p&gt;It is just not possible for everyone&amp;rsquo;s expectations to be understood let alone met, and thus it is unrealistic to expect the &lt;a href="https://nkdagility.com/training/courses/professional-scrum-developer-training/" target="_blank" rel="external noopener noreferrer"&gt; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; to deliver on them. At the end of every &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#the-sprint"&gt;Sprint&lt;/a&gt; we have a &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#sprint-review"&gt;Sprint Review&lt;/a&gt; where we invite stakeholders, and the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#scrum-team"&gt;Scrum Team&lt;/a&gt;, to pause and reflect on the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-backlog"&gt;Product Backlog&lt;/a&gt; based on that which was delivered. There you can explore the difference between expectation and delivery and then update the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-backlog"&gt;Product Backlog&lt;/a&gt; to reflect that difference. The &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#scrum-team" target="_blank" rel="external noopener noreferrer"&gt;Scrum Team &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; should continuously be investigating the difference between what they delivered and stakeholders expectations so that they can close that gap as much as possible, so while they are responsible for meeting expectations, they can&amp;rsquo;t be held accountable.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;The Development Team consists of professional &lt;a href="https://nkdagility.com/training/audiences/developers/" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; that are the people in the &lt;a href="https://nkdagility.com/training/audiences/teams/" target="_blank" rel="external noopener noreferrer"&gt;Scrum Team &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; that are committed to creating any aspect of a usable Increment each Sprint. The specific skills needed by the &lt;a href="https://nkdagility.com/training/audiences/developers/" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; are often broad and will vary with the domain of work.&lt;/p&gt;
&lt;p&gt;-&lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;The 2020 Scrum Guide &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/"&gt;The Scrum Guide&lt;/a&gt; very deliberately does not tell you how to build working software. It only states that its delivery is the accountability and accountability, and responsibility of the &lt;a href="https://nkdagility.com/training/courses/professional-scrum-developer-training/" target="_blank" rel="external noopener noreferrer"&gt; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;a href="https://nkdagility.com/training/audiences/developers/" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; If you don&amp;rsquo;t have working software, then you are not yet doing Scrum, although you might be working towards it.&lt;/p&gt;
&lt;p&gt;So, to define working software we have to look at what working software is not:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Known errors or exceptions&lt;/strong&gt; - if you find a bug then fix it. If it&amp;rsquo;s too big, then raise it with the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#product-owner" target="_blank" rel="external noopener noreferrer"&gt;Product Owner &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, and get it on the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-backlog"&gt;Product Backlog&lt;/a&gt;. To much time is spent managing rather than fixing bugs. Just fix them.&lt;/li&gt;
&lt;li&gt;Manual Tests - if you have manual tests then you are already working towards software that does not work, or that you struggle to deliver. It is unsustainable to have any manual testing, so get automating.&lt;/li&gt;
&lt;li&gt;Manual pipelines - in 2017 no-one should be building production code on their local computer, never mind shipping it to production from there. Even if all your build does is package up some files, and push them to an FTP location. Automate your build process&amp;hellip; If you have a person that has to do something more than approving between code and production, then you should look to automate that process away. Humans make mistakes, and humans miss stuff. At least with an automated process if not &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;continuous delivery&lt;/a&gt;, you get consistency, and you can increase the complexity over time for consistency. Make sure that you automate both your build and release pipelines.&lt;/li&gt;
&lt;li&gt;No Source Control – Yes, I still meat organisation with no Source Control, or no control over it. I wrote Getting started with &lt;a href="https://engineering-leadership.hinshelwood.com/tags/modern-source-control/"&gt;modern source control&lt;/a&gt; and DevOps for just that reason. If you don&amp;rsquo;t even have source control, whatever you are developing, then you need to get help and quick. The business risks that are exposed by not having it are just too big.&lt;/li&gt;
&lt;li&gt;Lack of feature flags – It is a fundamental fallacy of the rejected backlog item, and your engineering team is going to have to figure out how to release at the end of every sprint (or every commit) regardless of the quality of the PBI’s being worked on. Hide features that are not completed behind feature flags so that they are not visible to end-users, but your code can still be shipped.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The other name for the things that make it difficult to get to working software; Technical Debt. All of the things listed above are forms of Technical Debt, but the biggest form is just poor quality code. Code that is not tested or would not meet even a cursory code review by another software engineer.&lt;/p&gt;


  
&lt;h2 id="what-happens-if-developers-are-not-accountable-for-quality"&gt;What happens if Developers are not accountable for Quality?&lt;/h2&gt;
&lt;p&gt;If the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; are not held accountable for quality why do you believe that you have it? Quality is one of those hidden measures in software that can be there or not, and you would not know unless you were using that product in anger. If you put pressure to deliver on a &lt;a href="https://nkdagility.com/training/courses/professional-scrum-developer-training/" target="_blank" rel="external noopener noreferrer"&gt; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;a href="https://nkdagility.com/training/audiences/developers/" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, they will consistently and increasingly cut quality to meet whatever ridiculous deadline you give them.&lt;/p&gt;


  
&lt;h2 id="use-scrum-to-inspect-and-adapt-empirically"&gt;Use Scrum to Inspect and Adapt empirically&lt;/h2&gt;
&lt;p&gt;Every organisation needs to focus on delivering quality working software that is of use to its customers. The entire &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#scrum-team"&gt;Scrum Team&lt;/a&gt; is accountable and then works together over many iterations, experimenting and continuously improving, to deliver the best possible outcome in the circumstances. So instead of being an amateur team, be a team of Professionals that deliver working software because that is what your organisation and your customers deserve. If you are having a hard time delivering then discuss your options anytime, but especially at your Sprint Retrospective, and figure out what actionable improvement you can make that will help you pay back some of your technical debt and move forward. Once such step could be making sure that your &lt;a href="https://nkdagility.com/training/courses/professional-scrum-developer-training/" target="_blank" rel="external noopener noreferrer"&gt; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;a href="https://nkdagility.com/training/audiences/developers/" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; at least understand this with a &lt;a href="https://nkdagility.com/training/courses/professional-scrum-developer-training/" target="_blank" rel="external noopener noreferrer"&gt;Professional Scrum Developer &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; course.&lt;/p&gt;
&lt;p&gt;Use empiricism to Inspect and Adapt with Scrum.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Why Most Companies Operating Models Fail in Dynamic Markets</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/why-most-companies-operating-models-fail-in-dynamic-markets/</link>
      <pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/why-most-companies-operating-models-fail-in-dynamic-markets/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Philosophy</category>
      <category>Leadership</category>
      <category>Product Development</category>
      <category>Engineering Excellence</category>
      <description>Most companies still operate using a Predictive Operating Model, built on the assumption that markets and work are stable and predictable, but this model creates massive waste and frustration in today’s dynamic, uncertain environments. In contrast, the Adaptive Operating Model enables organisations to succeed by structuring cross-functional, persistent teams around products or value streams, empowering decentralised decision-making, and focusing on outcomes through feedback loops and continuous adaptation. The defining image of waste in the Predictive Model is teams spending months on plans that become obsolete in weeks, while real customer needs shift beneath them. Lasting change requires “operating-model hygiene,” regularly questioning and removing outdated structures, and fostering a culture where people closest to the work shape systems and ways of working. Transitioning to an adaptive model is a deep shift in theory, structure, culture, and leadership, but it is necessary to avoid ongoing waste and thrive in fast-moving markets.</description>
      <content:encoded>&lt;p&gt;Most organisations today operate under a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/predictive-operating-model/"&gt;Predictive Operating Model&lt;/a&gt; while competing in dynamic markets. This fundamental mismatch creates enormous waste, missed opportunities, and frustrated teams. Understanding why this model fails, and how an &lt;a href="https://engineering-leadership.hinshelwood.com/tags/adaptive-operating-model/"&gt;Adaptive Operating Model&lt;/a&gt; can replace it, is essential for any organisation seeking to deliver value effectively in the 21st century and beyond.&lt;/p&gt;

    
    

  
&lt;h2 id="defining-the-two-operating-models"&gt;Defining the Two Operating Models&lt;/h2&gt;
&lt;p&gt;Before we explore why organisations struggle, we must clearly define the two operating models at the heart of this discussion, and more importantly, understand the &lt;strong&gt;theory of the business&lt;/strong&gt; that underlies each one.&lt;/p&gt;
&lt;p&gt;Every organization operates on a theory of the business &lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;: a set of assumptions about the environment, the organization&amp;rsquo;s mission, and what it must do to succeed. Understanding the theory of our business begins with two foundational questions: &lt;strong&gt;Who is the customer, and what does the customer value?&lt;/strong&gt; But it doesn&amp;rsquo;t end there. We must also understand the constraints we operate within, technological, regulatory, resource, competitive, and environmental factors that shape what&amp;rsquo;s possible. Without explicit answers to these questions, &amp;ldquo;value delivery&amp;rdquo; becomes an empty phrase.&lt;/p&gt;
&lt;p&gt;Each operating model embodies a fundamentally different theory of the business and makes fundamentally different assumptions about the customer, what they value, and the constraints within which value must be delivered.&lt;/p&gt;


  
&lt;h3 id="the-predictive-operating-model"&gt;The Predictive Operating Model&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Core assumption:&lt;/strong&gt;
The environment is predictable enough that organisations succeed through efficiency, standardisation, and control.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Underlying beliefs:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Demand changes slowly.&lt;/li&gt;
&lt;li&gt;Work can be understood and specified upfront.&lt;/li&gt;
&lt;li&gt;Variability signals defects and should be minimised.&lt;/li&gt;
&lt;li&gt;Planning provides more certainty than adaptation.&lt;/li&gt;
&lt;li&gt;Performance improves through specialisation and hierarchical coordination.&lt;/li&gt;
&lt;li&gt;Management’s role is to optimise throughput and control deviation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Customer and value assumptions:&lt;/strong&gt;
Customers primarily want consistency, reliability, and quantity. Value comes from standardised output delivered at lower cost and with minimal variation. This model fits environments with long product cycles, slow-changing needs, and stable demand.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How the model operates:&lt;/strong&gt;
The Predictive Operating Model is built on Taylorism and Scientific Management &lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;. It separates planning from execution, functions from one another, and thinking from doing. Decision-making flows vertically. Work is governed through predictive plans, fixed scope and resources, detailed procedures, stage gates, and individual accountability. Output is the dominant measure of performance.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where it works:&lt;/strong&gt;
This theory of the business is not wrong. It performs exceptionally well when its assumptions hold, predictable environments, repetitive work, limited uncertainty, and markets where efficiency and consistency create advantage.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="the-adaptive-operating-model"&gt;The Adaptive Operating Model&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Core assumption:&lt;/strong&gt;
The environment is dynamic enough that organisations can only succeed through continuous learning, rapid adaptation, and proximity to customers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Underlying beliefs:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Demand shifts frequently and unpredictably.&lt;/li&gt;
&lt;li&gt;Work cannot be fully known upfront; it emerges through discovery.&lt;/li&gt;
&lt;li&gt;Variability provides information rather than noise.&lt;/li&gt;
&lt;li&gt;Fast feedback is more reliable than detailed prediction.&lt;/li&gt;
&lt;li&gt;Performance comes from empowered, cross-functional teams.&lt;/li&gt;
&lt;li&gt;Clear, adaptive goals at every level provide direction without constraining discovery.&lt;/li&gt;
&lt;li&gt;Success requires continuous alignment to customers, stakeholders, and the environment.&lt;/li&gt;
&lt;li&gt;Management&amp;rsquo;s role is to design systems that enable learning, innovation, and quick adjustment.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Customer and value assumptions:&lt;/strong&gt;
Customer needs are diverse, evolving, and context-dependent. Value is created by solving specific customer problems, not by producing generic output. Organisations win by learning faster than competitors, adapting continuously, and delivering outcomes that matter in the customer&amp;rsquo;s current context. Where the Predictive Operating Model optimises for volume and repeatability, the Adaptive Operating Model optimises for relevance, impact, and adaptability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How organisations discover value:&lt;/strong&gt;
Customer value is discovered through direct observation, rapid experimentation, real usage data, and continuous engagement with real users. In dynamic markets, discovery is an ongoing activity rather than an occasional research exercise.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How the model operates:&lt;/strong&gt;
The Agile Product Operating Model aligns with empiricism and continuous value delivery. It organises persistent cross-functional teams around products or value streams, decentralises decision-making to those closest to the work, and measures success through outcomes and customer impact. The model depends on transparency, inspection, and adaptation, supported by short feedback loops, modern engineering practices, and a commitment to technical excellence.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where it works:&lt;/strong&gt;
This theory of the business succeeds when uncertainty is high, customer needs evolve rapidly, and competitive advantage comes from learning speed, responsiveness, and continuous alignment between what the organization delivers and what the market needs.&lt;/p&gt;


  
&lt;h3 id="why-this-distinction-matters"&gt;Why This Distinction Matters&lt;/h3&gt;
&lt;p&gt;These are not simply different management styles, nor is this a story of &amp;ldquo;modern vs traditional&amp;rdquo; or &amp;ldquo;agile vs waterfall.&amp;rdquo; The contrast is contextual, not moral. The Predictive Operating Model fails only when its assumptions stop matching reality, when the environment becomes too uncertain, too complex, and too fast-moving for prediction and control to work effectively.&lt;/p&gt;
&lt;p&gt;Understanding the theory behind each model clarifies why transition is so difficult: you&amp;rsquo;re not just changing processes, &lt;strong&gt;you&amp;rsquo;re challenging fundamental assumptions about how success happens&lt;/strong&gt;.&lt;/p&gt;


  
&lt;h2 id="the-predictive-operating-model-was-fit-for-stable-markets"&gt;The Predictive Operating Model Was Fit for Stable Markets&lt;/h2&gt;
&lt;p&gt;The Predictive Operating Model was not a mistake. It was brilliantly designed for its context, an environment where its theory of the business held true.&lt;/p&gt;
&lt;p&gt;During the Industrial Age, markets were stable and predictable. Demand grew steadily over long periods. Competition was limited. Products had decades-long lifecycles. In textiles, steel production, and large-scale manufacturing, success came from optimizing efficiency and driving down costs through standardization and economies of scale. The assumptions underlying the Predictive Operating Model, predictability, stability, knowable work, matched reality.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Frederick_Winslow_Taylor" target="_blank" rel="external noopener noreferrer"&gt;Frederick Winslow Taylor &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; developed scientific management for exactly this environment, and &lt;a href="https://en.wikipedia.org/wiki/Henry_Gantt" target="_blank" rel="external noopener noreferrer"&gt;Henry Gantt &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; popularised it. When work is repetitive and predictable, breaking it into specialized tasks and optimizing each step makes sense. When markets change slowly, detailed upfront planning works. When products remain unchanged for years, separation of planning from execution causes minimal waste. Variability could be treated as a problem to eliminate because the &amp;ldquo;right way&amp;rdquo; was relatively stable.&lt;/p&gt;
&lt;p&gt;The Predictive Operating Model delivered extraordinary results in stable markets. It built railways, scaled factories, and powered economic growth throughout the 20th century. The model succeeded because its theory of the business matched the actual environment: success truly did come through efficiency, standardization, and control in predictable work within predictable markets.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="why-the-predictive-operating-model-fails-in-dynamic-markets"&gt;Why the Predictive Operating Model Fails in Dynamic Markets&lt;/h2&gt;
&lt;p&gt;Markets began shifting toward greater complexity and volatility in the early 20th century, and this exposed the limits of the Predictive Operating Model. By the mid-20th century, Toyota demonstrated a different way of working that reintroduced people into the centre of the production system, giving teams direct responsibility for quality, problem-solving, and continuous improvement. The pace of change accelerated again in the 1970s with the microprocessor revolution, and by the 1990s the internet had fundamentally changed how quickly ideas spread and how rapidly markets evolve. Today, AI amplifies this acceleration further, providing tools that enable teams to process information, align with stakeholders, and deliver value at unprecedented speed and scale.&lt;/p&gt;
&lt;p&gt;Today, most markets are dynamic, customer needs change rapidly, technology enables new competitors to emerge quickly, and product lifecycles measure in months, not decades. Uncertainty is the norm, not the exception.&lt;/p&gt;
&lt;p&gt;But it&amp;rsquo;s not just market volatility that challenges the Predictive Operating Model. The broader &lt;strong&gt;environment&lt;/strong&gt; in which organizations operate has become fundamentally unstable. Regulatory changes like tariffs reshape entire supply chains overnight. Social movements like the remote work revolution force companies to reconsider workplace models, productivity assumptions, and organizational structures. Political shifts, elections, policy reversals, create cascading effects across industries. Economic shocks, pandemics, financial crises, disrupt assumptions that seemed solid months earlier. These environmental forces don&amp;rsquo;t just affect markets; they affect an organization&amp;rsquo;s &lt;strong&gt;ability to respond&lt;/strong&gt; to markets. The confluence of market dynamics and environmental volatility creates both the challenge and the opportunity: organizations that can sense and respond rapidly gain advantage, while those locked into rigid structures fall behind.&lt;/p&gt;
&lt;p&gt;The environment has shifted, but the Predictive Operating Model&amp;rsquo;s theory of the business has not. Organizations continue operating on assumptions of predictability in environments characterized by uncertainty, where both what customers need and how organizations can respond change continuously. This mismatch between theory and reality generates massive waste.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Planning waste&lt;/strong&gt; emerges when organisations invest months creating detailed plans that become obsolete within weeks. Requirements gathered at the start of a project no longer reflect market reality by the time delivery begins. Change control boards slow response to learning, turning agility into a bureaucratic exercise.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decision-making waste&lt;/strong&gt; occurs when hierarchical approval chains delay action. By the time a decision escalates through management layers, the information is stale and the opportunity has passed. Teams closest to customers lack authority to respond to what they learn.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Innovation waste&lt;/strong&gt; happens when rigid processes and risk-averse cultures kill experimentation. Ideas must fit into predetermined roadmaps. Small experiments that could provide fast feedback are blocked by governance processes designed for large capital investments. Teams cannot explore what customers actually need.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Human potential waste&lt;/strong&gt; is perhaps the most painful. Talented people are treated as interchangeable resources, assigned to projects based on availability rather than capability or interest. Individual utilization metrics drive behaviors that undermine team collaboration. Separation of planning from execution means those doing the work cannot apply their insight to improve it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Market disconnect waste&lt;/strong&gt; grows as organisations become insulated from customer reality. Layers of management separate decision-makers from actual users. Success is measured by delivery of planned outputs, regardless of whether those outputs create value. Teams ship what was specified months ago, not what customers need today.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Predictive Operating Model operates at fundamentally the wrong speed for dynamic markets. While the market iterates daily, the organisation plans annually or bi-annually. While customer needs evolve continuously, the organisation delivers in large batches after months of work. This speed mismatch is not a minor friction, it is a structural incompatibility rooted in an obsolete theory of the business that no longer reflects how markets actually behave.&lt;/p&gt;


  
&lt;h2 id="the-adaptive-operating-model-enables-success-in-dynamic-markets"&gt;The Adaptive Operating Model Enables Success in Dynamic Markets&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://engineering-leadership.hinshelwood.com/tags/adaptive-operating-model/"&gt;Adaptive Operating Model&lt;/a&gt; structures organisations for speed, learning, and adaptation. Its theory of the business, that success comes through continuous learning and rapid adaptation in complex, changing environments, matches the reality most organizations face today.&lt;/p&gt;
&lt;p&gt;At its foundation lies &lt;strong&gt;empiricism&lt;/strong&gt;: the practice of making decisions based on observation and experiment rather than prediction and assumption. &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt;, as a social technology, makes work transparent, creates regular inspection points, and enables rapid adaptation based on what is learned &lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;. &lt;a href="https://engineering-leadership.hinshelwood.com/categories/kanban/"&gt;Kanban&lt;/a&gt;, as an observability pattern, makes workflow visible and measures actual delivery performance, enabling teams to see and improve their systems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Decentralization&lt;/strong&gt; is essential, not optional. &lt;a href="https://en.wikipedia.org/wiki/Mary_Parker_Follett" target="_blank" rel="external noopener noreferrer"&gt;Mary Parker Follett &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; recognized nearly a century ago that effective organisations distribute authority to where knowledge resides &lt;sup id="fnref:4"&gt;&lt;a href="#fn:4" class="footnote-ref" role="doc-noteref"&gt;4&lt;/a&gt;&lt;/sup&gt;. In dynamic markets, that knowledge lives with teams close to customers and technology, not with executives insulated from both. Decentralization enables fast decisions based on current information. It eliminates escalation delays and management bottlenecks that plague hierarchical structures. However, decentralization only works when goals are clear and adaptive at every organizational level, from company strategy through product goals to sprint objectives. This clarity of purpose proves challenging for most companies, particularly because unlike the fixed targets of industrial planning, these goals must evolve as learning occurs while maintaining coherent direction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cross-functional, persistent teams&lt;/strong&gt; form the organisational structure. Each team possesses all skills needed to deliver value without dependencies on other teams or handoffs to specialized functions. Teams stay together over time, building deep capability and psychological safety. They own outcomes, customer value and business impact, not just outputs like features or story points. Today&amp;rsquo;s teams increasingly include AI team members augmenting human capabilities. Modern AI tools now make it possible to coordinate these teams effectively at scale, maintaining clear alignment with customers and stakeholders while preserving team autonomy and speed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fast feedback loops&lt;/strong&gt; replace predictive planning. Teams deliver working software frequently, ideally continuously, and observe real customer behaviors. Product Managers make decisions based on actual usage data and customer feedback rather than assumptions documented months earlier. Sprint Goals provide coherence and focus while allowing teams to adapt their approach as they learn &lt;sup id="fnref:5"&gt;&lt;a href="#fn:5" class="footnote-ref" role="doc-noteref"&gt;5&lt;/a&gt;&lt;/sup&gt;. Service Level Expectations establish predictable flow without requiring detailed estimates.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Technical excellence&lt;/strong&gt; is mandatory, not aspirational. Teams must practice Continuous Integration and Continuous Delivery as Kent Beck and Jez Humble have taught us &lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref" role="doc-noteref"&gt;6&lt;/a&gt;&lt;/sup&gt;. Automated testing provides the safety to move quickly. Infrastructure as Code enables rapid provisioning and recovery. Monitoring and observability reveal how systems behave in production. AI-assisted development accelerates capability building while maintaining quality and enabling teams to focus on higher-value problem-solving. These practices are not tools or processes, they embody a DevOps ethos that breaks down barriers between building and operating software.&lt;/p&gt;
&lt;p&gt;The Adaptive Operating Model matches the speed and uncertainty of dynamic markets. It structures organisations to learn and adapt continuously rather than predict and control.&lt;/p&gt;


  
&lt;h2 id="operating-model-hygiene-why-organizations-regress"&gt;Operating-Model Hygiene: Why Organizations Regress&lt;/h2&gt;
&lt;p&gt;Many organisations transition away from hierarchical structures only to drift back over time. Start-ups begin as nimble network organisations with direct communication and fast decisions &lt;sup id="fnref:7"&gt;&lt;a href="#fn:7" class="footnote-ref" role="doc-noteref"&gt;7&lt;/a&gt;&lt;/sup&gt; [^Laloux]. As they grow, departments emerge. Managers accumulate authority. Planning processes formalize. Approval chains lengthen. Within a few years, the organisation has recreated the Predictive Operating Model.&lt;/p&gt;
&lt;p&gt;This regression is predictable. The Predictive Operating Model&amp;rsquo;s theory of the business, control through prediction and standardization, is deeply familiar. Most leaders experienced it throughout their careers. Under pressure, people default to known patterns. When faced with coordination challenges, the instinct is to add management layers. When facing uncertainty, the reflex is to demand more detailed plans. The old theory reasserts itself because it feels safer, even when it has become obsolete.&lt;/p&gt;
&lt;p&gt;Organizations build up what we might call &lt;strong&gt;operating-model cruft&lt;/strong&gt;, accumulated structures, processes, and behaviors that no longer serve the current context but resist removal. A new approval process gets added to prevent a single failure. It never gets removed when the risk passes. A management layer forms to coordinate between teams. It persists even after teams become more self-sufficient. Individual performance reviews drive behaviors that undermine team collaboration, but changing them feels too risky.&lt;/p&gt;
&lt;p&gt;Without deliberate &lt;strong&gt;operating-model hygiene&lt;/strong&gt;, the continuous practice of examining and removing organisational structures, processes, and behaviors that no longer serve their purpose, organisations inevitably regress. This hygiene means regularly asking Drucker&amp;rsquo;s fundamental question: &amp;ldquo;If we were not doing this today, would we start?&amp;rdquo; &lt;sup id="fnref:8"&gt;&lt;a href="#fn:8" class="footnote-ref" role="doc-noteref"&gt;8&lt;/a&gt;&lt;/sup&gt; If the answer is no, the practice must be abandoned. Does this approval process still serve us? Does this management layer enable or impede fast feedback? Does this metric distribute authority or concentrate it? Does this structure build team capability or create dependencies?&lt;/p&gt;
&lt;p&gt;Operating-model hygiene requires &lt;strong&gt;refactoring organisational structures&lt;/strong&gt; just as we refactor code. Remove processes that no longer serve their purpose. Eliminate management layers that have become bottlenecks. Disband cross-functional coordinating bodies that exist only because teams lack necessary skills. Challenge individual metrics that undermine collaboration.&lt;/p&gt;
&lt;p&gt;But Drucker taught that abandonment alone is insufficient, it creates capacity, not capability. Organizations must pair &lt;strong&gt;systematic abandonment&lt;/strong&gt; with &lt;strong&gt;purposeful innovation&lt;/strong&gt;: the disciplined creation of new practices that support the current mission. This means building technical capabilities like Continuous Delivery and automated testing, establishing outcome-focused management practices, creating persistent cross-functional team structures, developing routines for empirical discovery and rapid experimentation, and investing in skills that enable adaptability. Without purposeful innovation to replace what is removed, organizations drift.&lt;/p&gt;
&lt;p&gt;This work never ends. Organizations exist in constant tension between forces that drive toward hierarchy and control and forces that enable distributed decision-making and adaptation. Effective operating models depend on continuously pruning what no longer works while intentionally building what the future requires. Without this dual discipline, the Predictive Operating Model reasserts itself.&lt;/p&gt;


  
&lt;h2 id="making-the-transition"&gt;Making the Transition&lt;/h2&gt;
&lt;p&gt;Transitioning from a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/predictive-operating-model/"&gt;Predictive Operating Model&lt;/a&gt; to an &lt;a href="https://engineering-leadership.hinshelwood.com/tags/adaptive-operating-model/"&gt;Adaptive Operating Model&lt;/a&gt; is not a simple process change. It requires fundamentally changing your organization&amp;rsquo;s theory of the business, the core assumptions about how success happens. This demands shifts in structure, culture, measurement, and leadership that reflect the new theory.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Structure must change&lt;/strong&gt; to persistent, cross-functional teams aligned to value streams or products. Functional departments become communities of practice rather than organisational silos. Project teams and resource pools must go, they are incompatible with the Agile Product Operating Model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Measurement must change&lt;/strong&gt; from output to outcome. Evidence-Based Management provides the framework: Current Value, Unrealized Value, Time to Market, and Ability to Innovate. These measures focus on value delivery and system capability, not individual productivity or task completion. Velocity, utilization rates, and other behaviors-distorting metrics must be abandoned &lt;sup id="fnref:9"&gt;&lt;a href="#fn:9" class="footnote-ref" role="doc-noteref"&gt;9&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Leadership must change&lt;/strong&gt; from command-and-control to system stewardship. Drucker defined management through five responsibilities: setting objectives, organizing work, motivating people, measuring performance, and developing people &lt;sup id="fnref:10"&gt;&lt;a href="#fn:10" class="footnote-ref" role="doc-noteref"&gt;10&lt;/a&gt;&lt;/sup&gt;. Under the Predictive Operating Model, managers set objectives through prediction, organize work through functional silos, motivate through supervision and utilization targets, measure output and efficiency, and develop narrow specialization. The Adaptive Operating Model requires different interpretations: managers define clear goals and constraints rather than detailed plans, design persistent cross-functional teams as the primary organizational structure, create conditions for mastery and autonomy by removing impediments, measure outcomes and system capability through Evidence-Based Management, and build broad adaptable capability through continuous development &lt;sup id="fnref:11"&gt;&lt;a href="#fn:11" class="footnote-ref" role="doc-noteref"&gt;11&lt;/a&gt;&lt;/sup&gt;. Critically, leaders must maintain goal clarity throughout the organization while allowing those goals to evolve with learning, a discipline most companies find difficult because it requires balancing stability of direction with flexibility of approach. Without explicitly redefining the manager&amp;rsquo;s role, organizations default to Predictive Operating Model behaviors regardless of their stated intentions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Culture must change&lt;/strong&gt; to support transparency, experimentation, and psychological safety. Teams must be able to surface problems without fear of blame. Failure in controlled experiments must be recognized as learning, not punished as incompetence. This cultural shift takes time and consistent leadership behaviors.&lt;/p&gt;
&lt;p&gt;Many organisations attempt these changes incrementally, hoping to avoid disruption. This rarely succeeds. The Predictive Operating Model is coherent, its pieces reinforce each other because they all flow from the same theory of the business. Individual performance reviews support functional silos. Functional silos necessitate project structures. Project structures require resource allocation and individual utilization measurement. These elements form an interconnected system, all built on assumptions of predictability and control.&lt;/p&gt;
&lt;p&gt;Changing one element while preserving others creates internal contradictions that prevent real transformation. Organizations end up with &amp;ldquo;Agile teams&amp;rdquo; reporting through hierarchical management structures, measured by predictive metrics, organized into temporary project assignments. This is not transition, it is the Predictive Operating Model with different terminology. The underlying theory of the business remains unchanged.&lt;/p&gt;
&lt;p&gt;Effective transition requires system-level change. The organisation must commit to restructuring around products, establishing cross-functional teams, shifting to outcome-based measurement, and supporting leaders who steward systems rather than control work. This takes months of focused effort, not years of gradual adjustment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OpenSpace Agile provides a mechanism for system-level change without multi-year programmes or imposed transformation&lt;/strong&gt; &lt;sup id="fnref:12"&gt;&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref"&gt;12&lt;/a&gt;&lt;/sup&gt;. Leaders define outcomes and constraints, and the organisation self-organises to design and implement the changes. The people who do the work shape the operating model, which increases ownership, alignment, and speed. A short cadence of Open Space events creates the forum for surfacing problems, proposing solutions, and committing to experiments that reflect the realities of the work.&lt;/p&gt;
&lt;p&gt;These experiments run in fast cycles with clear feedback, allowing the organisation to learn what works in its context rather than copying someone else’s playbook. Effective changes get amplified, ineffective ones are dropped, and the operating model evolves through participation rather than prescription. This enables meaningful organisational shifts in months by removing the bottlenecks of traditional change management and allowing those closest to the work to drive improvement.&lt;/p&gt;


  
&lt;h2 id="call-to-action-redesign-your-operating-model"&gt;Call to Action: Redesign Your Operating Model&lt;/h2&gt;
&lt;p&gt;If your organisation competes in dynamic markets, and most do, the Predictive Operating Model is costing you. Every day. Wasted effort. Missed opportunities. Frustrated teams. Lost customers.&lt;/p&gt;
&lt;p&gt;The question is not whether to change, but how quickly you can change.&lt;/p&gt;
&lt;p&gt;Start by acknowledging the mismatch. Your operating model embodies a theory of the business designed for different conditions. It is not bad, it is unfit for current context. The assumptions embedded in your structures, processes, and leadership behaviors were built for a world that no longer exists.&lt;/p&gt;
&lt;p&gt;Commit to operating-model redesign built on the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/adaptive-operating-model/"&gt;Adaptive Operating Model&lt;/a&gt;. Establish clear, adaptive goals at every level that provide direction without constraining discovery. Structure persistent, cross-functional teams around value streams. Distribute decision-making authority to those teams. Measure outcomes and system capability, not outputs and individual activity. Develop leaders who design systems rather than control work. Organizations delivering value through products can implement this through specialized approaches like the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-operating-model/"&gt;Product Operating Model&lt;/a&gt; or &lt;a href="https://engineering-leadership.hinshelwood.com/tags/agile-product-operating-model/"&gt;Agile Product Operating Model&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Let the organisation shape its own transition. OpenSpace Agile provides the structure: you set the direction, your people design the path through rapid experiments and continuous learning &lt;sup id="fnref1:12"&gt;&lt;a href="#fn:12" class="footnote-ref" role="doc-noteref"&gt;12&lt;/a&gt;&lt;/sup&gt;. This creates change in months, not years.&lt;/p&gt;
&lt;p&gt;Implement continuous operating-model hygiene. Regularly examine structures, processes, and behaviors. Remove what no longer serves. Challenge what creates dependencies or delays feedback. Resist the gravitational pull toward hierarchy and control.&lt;/p&gt;
&lt;p&gt;This is not easy work. But it is necessary work. The Predictive Operating Model&amp;rsquo;s theory of the business, success through prediction and control in stable environments, cannot deliver value effectively when environments are uncertain and fast-changing. Organizations that complete this transition, adopting a theory of the business built on learning and adaptation, will thrive. Those that don&amp;rsquo;t will continue generating waste while wondering why their &amp;ldquo;Agile transformation&amp;rdquo; failed.&lt;/p&gt;
&lt;p&gt;The choice is yours: maintain an operating model built on assumptions about markets that no longer exist, or redesign your organisation around a theory of the business that matches the reality you face today.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is one structure or process in your organisation that generates waste because it assumes stable, predictable work, and what would operating-model hygiene lead you to change?&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;The Essential Drucker by Peter Drucker (2001) - collection including &amp;ldquo;The Theory of the Business&amp;rdquo; essay&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;The Principles of Scientific Management by Frederick Winslow Taylor (1911) - foundational work on industrial management&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;The Scrum Guide by Ken Schwaber and Jeff Sutherland&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;Mary Parker Follett&amp;rsquo;s work on organisational democracy and distributed authority&amp;#160;&lt;a href="#fnref:4" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;The New New Product Development Game by Hirotaka Takeuchi and Ikujiro Nonaka&amp;#160;&lt;a href="#fnref:5" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:6"&gt;
&lt;p&gt;Continuous Delivery by Jez Humble and David Farley&amp;#160;&lt;a href="#fnref:6" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:7"&gt;
&lt;p&gt;Organize for Complexity: How to Get Life Back Into Work to Build the High-Performance Organization by Niels Pflaeging and Pia Steinmann&amp;#160;&lt;a href="#fnref:7" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:8"&gt;
&lt;p&gt;Management: Tasks, Responsibilities, Practices by Peter Drucker (1973) - comprehensive framework for management functions and organizational design&amp;#160;&lt;a href="#fnref:8" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:9"&gt;
&lt;p&gt;This Is Beyond Budgeting: A Guide to More Adaptive and Human Organizations by Bjarte Bogsnes&amp;#160;&lt;a href="#fnref:9" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:10"&gt;
&lt;p&gt;The Practice of Management by Peter Drucker (1954) - introduces Management by Objectives and the theory of the business&amp;#160;&lt;a href="#fnref:10" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:11"&gt;
&lt;p&gt;High Output Management by Andy Grove (1983) - on system thinking and management leverage&amp;#160;&lt;a href="#fnref:11" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:12"&gt;
&lt;p&gt;OpenSpace Agility by Daniel Mezick, Harold Shinsato, and others - a framework for organizational change through self-organization, Open Space events, and rapid experimentation&amp;#160;&lt;a href="#fnref:12" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href="#fnref1:12" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Can the Definition of Done change per Sprint?</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/can-the-definition-of-done-change-per-sprint/</link>
      <pubDate>Mon, 14 Oct 2019 13:55:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/can-the-definition-of-done-change-per-sprint/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Artifact</category>
      <category>Scrum</category>
      <category>Engineering Excellence</category>
      <category>Product Development</category>
      <description>The Definition of Done (DoD) can and should evolve over time, typically through Sprint Retrospectives, to improve product quality, but it must never be weakened to deliver more features at the expense of quality. Lowering quality is not within the authority of a Scrum Team and would have serious financial and ethical implications, even potentially amounting to fraud in public companies. The DoD must remain consistent across all backlog items, unlike Acceptance Criteria, which can vary by item. Constantly changing the DoD for arbitrary reasons undermines transparency and makes it difficult for the team and stakeholders to understand progress and value delivered. On brownfield projects, start with a basic DoD and improve it each Sprint; on greenfield projects, begin with a shippable DoD from the first Sprint.</description>
      <content:encoded>&lt;p&gt;I was asked this question today and I think there is a clear answer, however it may change depending on the context of the question.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&amp;ldquo;During each Sprint Retrospective, the &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; Team plans ways to increase product quality by improving work processes or adapting the definition of &amp;ldquo;Done&amp;rdquo;, if appropriate and not in conflict with product or organizational standards.&amp;rdquo; -Scrum guide&lt;/p&gt;

  &lt;/blockquote&gt;


    
    

  
&lt;h3 id="question-can-the-definition-of-done-change-per-sprint"&gt;[Question] Can the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt; change per Sprint?&lt;/h3&gt;
&lt;p&gt;Yes; you can and are expected to make improvements to the Definition of Done at the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/sprint-review/"&gt;Sprint Review&lt;/a&gt;. Your Development Team should always be asking themselves:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do we have the quality level that we need to release?&lt;/li&gt;
&lt;li&gt;Is our quality improving?&lt;/li&gt;
&lt;li&gt;What can we add to the Definition of Done to improve quality.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every bug found in work that was done in a previous Sprint is a possible quality issue that should result in a stronger Definition of Done to make sure it never happens again. However I am a little concerned that the brevity of the question could result in enabling activity in a way that can be used to suborn the process. There is a distinct lack of context to this question that could change my answer from a yes, to a no.&lt;/p&gt;


  
&lt;h3 id="question-can-the-definition-of-done-change-per-sprint-so-that-we-can-reduce-quality-and-deliver-more-features"&gt;[Question] Can the Definition of Done change per Sprint so that we can reduce quality and deliver more features?&lt;/h3&gt;
&lt;p&gt;The resounding answer here is no. You should never reduce quality as its not within the authority of a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Team&lt;/a&gt; to reduce quality. The quality of the product equates to the value added to that product through capital investment. If one chooses to reduce quality then that change in the ROI of the capital investment needs to be reflected in your financial statements. If you are a private company, then I would think that your Shareholders would be unhappy if the value of an organisational asset is misrepresented! What about if its a public company? Now we are in the realm of fraud!It is a board-level responsibility to actively reduce quality and the ramifications of that reduction should be presented to your board. A Development Team does not have the authority to lower quality, the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-owner/"&gt;Product Owner&lt;/a&gt; likely does not have that authority, and your IT Management definitely does not. When I am approached with this question by teams, I always say: &amp;ldquo;Let&amp;rsquo;s go have a chat with the CFO and make sure he understands the ramifications of a deduction of quality on his capital investments.&amp;ldquo;I&amp;rsquo;ve never had anyone take me up on that offer.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="question-can-the-definition-of-done-change-per-sprint-because-we-have-different-dod-for-each-backlog-item"&gt;[Question] Can the Definition of Done change per Sprint because we have different DoD for each backlog item?&lt;/h3&gt;
&lt;p&gt;No, you should have a consistent DoD that is applied to all of the work that you do, and that represents a usable &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;increment&lt;/a&gt;. Sometimes I see some confusion between DoD and Acceptance Criteria. DoD is about how we do things and covers &lt;a href="https://engineering-leadership.hinshelwood.com/tags/engineering-practices/"&gt;engineering practices&lt;/a&gt;, Development Team standards, coding standards, architectural standards, and other Development Team standards. It should reflect both product and engineering qualities. Acceptance Criteria is about the notes that we have to take when we are discussing what we are going to deliver. This is the bit that is different for every Backlog Item.&lt;/p&gt;


  
&lt;h3 id="question-can-the-definition-of-done-change-per-sprint-because-we-just-like-mixing-it-up"&gt;[Question] Can the Definition of Done change per Sprint because we just like mixing it up?&lt;/h3&gt;
&lt;p&gt;No; The purpose of the Defenition of Done is to maintain &lt;a href="https://engineering-leadership.hinshelwood.com/tags/transparency/"&gt;transparency&lt;/a&gt; of the past by allowing everyone to understand what a &amp;ldquo;usable increment&amp;rdquo; means.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/20190906_152025-1-1-1.gif" class="post-img-link" data-toggle="lightbox"&gt;
  &lt;img src="images/20190906_152025-1-1-1.gif" loading="lazy" alt="Can the Definition of Done change per Sprint?" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If we keep changing the goal posts how can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Does the development team determine if a Backlog Item fits in a Sprint if we don&amp;rsquo;t know what we will do for it?&lt;/li&gt;
&lt;li&gt;Does the development team create a Sprint Backlog that contains the about of work that they believe that they can reasonably achieve?&lt;/li&gt;
&lt;li&gt;How does the Product Owner or the Stakeholders understand what they are looking at at the Sprint Review?&lt;/li&gt;
&lt;li&gt;Do your stakeholders understand their return on investment?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On a brownfield project that moves to Scrum, I would expect your DoD to start week, and not reflect releasable. Each Sprint Retrospective, your Scrum Team, should review your DoD and get it closer to releasable. As you make the changes, you will discover more &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt;, and it may take some time to pay it off. Keep improving until your definition of Done mirrors shippable. On a Greenfield project, you should always start with a definition of Done that mirrors shippable and have shippable product every Sprint, including the first one.&lt;/p&gt;
&lt;p&gt;There are no right answers, only things that you try to discover if they are right for your Team.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Definition of Done - Objective vs Subjective</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/definition-of-done-objective-vs-subjective/</link>
      <pubDate>Fri, 03 Jan 2025 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/definition-of-done-objective-vs-subjective/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Artifact</category>
      <category>Scrum</category>
      <category>Product Development</category>
      <category>Engineering Excellence</category>
      <description>In Scrum, Product and Sprint Goals are aspirational and subjective, guiding teams toward strategic outcomes but not providing a clear measure of quality. The Definition of Done (DoD), by contrast, is an objective, non-negotiable checklist that sets a minimum professional standard for each product Increment. For example, an effective Product DoD for a cloud team might be "live and in production, gathering telemetry that supports or diminishes the starting hypothesis," ensuring a focus on delivery and empirical learning. Teams should avoid confusing subjective approval with measurable quality, automate compliance wherever possible, and treat the DoD as a living, periodically raised quality baseline. A clear and objective DoD safeguards against technical debt, maintains stakeholder trust, and ensures consistent, high-quality delivery.</description>
      <content:encoded>&lt;p&gt;In countless teams, there’s a recurring mix-up between “what” we’re building, “how” it aligns with business objectives, and the objective quality criteria by which it should be measured. The result? Chaos masquerading as agility. To clear the air: in &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt;, the “what” and “how” are driven by Product and Sprint Goals. These provide directional clarity but remain inherently subjective, a north star guiding your path, not a litmus test of quality.&lt;/p&gt;
&lt;p&gt;Contrast this with the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt; (DoD). The DoD is your team’s objective compass, a binary, quantifiable checklist that ensures every &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;Increment&lt;/a&gt; meets professional-grade quality. It’s non-negotiable and should be firmly rooted in your product’s brand, user expectations, and technical robustness.&lt;/p&gt;

    
    

  
&lt;h4 id="tldr"&gt;TL;DR:&lt;/h4&gt;
&lt;p&gt;Don’t confuse subjective goals with objective quality. In Scrum, the Definition of Done (DoD) is a crucial, measurable bar of quality, not a negotiable outcome. Keep it clear, objective, and automated wherever possible to ensure that every Increment meets professional standards.&lt;/p&gt;


  
&lt;h3 id="product-and-sprint-goals-subjective-by-design"&gt;Product and Sprint Goals: Subjective by Design&lt;/h3&gt;
&lt;p&gt;Goals in Scrum are aspirational, meant to challenge teams and align efforts towards strategic outcomes. The Product Goal represents a long-term objective, while the Sprint Goal offers a short-term milestone. Together, they guide the team like a compass through the wilderness., helping maintain direction even through surprise obstacles and side quests. However, achieving these goals isn’t always guaranteed. Progress is iterative, incremental, and constantly adapting to new insights - a bit like chasing a moving target.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="definition-of-done-the-objective-measure"&gt;Definition of Done: The Objective Measure&lt;/h3&gt;
&lt;p&gt;Unlike goals, the Definition of Done is a steadfast benchmark for quality. It defines the bare minimum for an Increment to be considered complete. Without it, teams risk releasing poorly constructed, subpar products that erode user trust and damage the brand. A solid DoD ensures consistent quality across all deliverables, instilling confidence in both internal teams and end users.&lt;/p&gt;


  
&lt;h3 id="establishing-a-solid-definition-of-done"&gt;Establishing a Solid Definition of Done&lt;/h3&gt;
&lt;p&gt;There is a key message in the Scrum Guide that is often overlooked that plays a critical role in establishing the DoD.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;If the Definition of Done for an increment is part of the standards of the organization, all Scrum Teams must follow it as a minimum. If it is not an organizational standard, the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Team&lt;/a&gt; must create a Definition of Done appropriate for the product. - Scrum Guide 2020&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;For me this suggests that there should be some kind of Organizational or Product DoD. I think of this as comming from the business. This is driven by the business and should reflect the businesses intent for quality in the product. That might be the minimum level of quality required by the business to protect their brand, their customers, and their employees.&lt;/p&gt;
&lt;p&gt;An example of a Organizational or Product DoD for a team working on a cloud product might be:&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;“Live and in production, gathering telemetry that supports or diminishes the starting hypothesis.”&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;This sets a clear bar for delivery while supporting empirical learning and iterative improvement. It stays clear of the technical detail and jargon of an individual teams DoD and focuses on its objective and purpose for the product. It implies much, from ideation to delivery while minimizing imposition on the teams. It creates alignment of intent while maintaining autonomy of implementation. It recognizes that every team needs a unique DoD that is relevant for their context.&lt;/p&gt;
&lt;p&gt;Each team working on a product would then be responsible for creating a DoD that is appropriate for their context within that product.&lt;/p&gt;
&lt;p&gt;This is the seed that will grow into each teams unique quality bar that reflects this DoD. A robust reflection should be:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Objective and Measurable&lt;/strong&gt;: Avoid vague criteria and instead focus on things that you can measure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comprehensive&lt;/strong&gt;: What are all the things that need to be true for a production deployment of your product to be deployed to production?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Living Document&lt;/strong&gt;: The teams DoD as needed to reflect evolving standards, technologies, and stakeholder expectations of the product as it grows.&lt;/li&gt;
&lt;/ol&gt;


  
&lt;h3 id="common-pitfalls"&gt;Common Pitfalls&lt;/h3&gt;
&lt;p&gt;Despite its critical importance, the DoD is often misunderstood, undervalued, or even undermined. Teams frequently:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blur Subjective and Objective&lt;/strong&gt;: Adding criteria like “approved by the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-owner/"&gt;Product Owner&lt;/a&gt;”, which shifts focus from quality to stakeholder satisfaction. Any &amp;ldquo;approved by &amp;hellip; person or department&amp;rdquo; should be strictly avoided.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Overlook Automation&lt;/strong&gt;: Relying on manual checks leads to inconsistencies and slower feedback loops.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Treat the DoD as a Maximum&lt;/strong&gt;: Viewing it as a ceiling instead of a floor hampers innovation and improvement.&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h3 id="practices-for-defining-done"&gt;Practices for Defining Done&lt;/h3&gt;
&lt;p&gt;To maintain focus on quality, consider the following practices:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Automate Everything:&lt;/strong&gt; Automated tests and CI/CD pipelines should validate DoD compliance as part of the development process. If you have things that cant be automated right now, plan the work to change the product to enable those activities to be automated.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review Regularly&lt;/strong&gt;: Incorporate DoD reviews in retrospectives to ensure its relevance and alignment with current product and organizational needs. Keep a list of &amp;ldquo;things that need to be true to deploy to production that we cant do yet&amp;rdquo;, and regularly move these to Done.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Train Teams&lt;/strong&gt;: Ensure every team member understands the DoD and its importance in delivering professional-grade Increments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Separate Quality from Approval&lt;/strong&gt;: Keep subjective approval processes distinct from the DoD to avoid undermining its objectivity.&lt;/li&gt;
&lt;/ol&gt;


  
&lt;h3 id="conclusion-the-quality-of-done"&gt;Conclusion: The Quality of Done&lt;/h3&gt;
&lt;p&gt;In Scrum, the Definition of Done is your minimum bar for quality. It’s the safeguard against &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt;, the foundation for stakeholder trust, and the cornerstone of professional-grade delivery. By keeping your DoD objective, measurable, and focused on quality, you empower your team to build products that meet, and often exceed, user expectations. Remember, the DoD is a minimum bar, not a maximum aspiration. Raise it periodically and watch your product’s quality soar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What’s Your Take?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We’d love to hear your thoughts! How does your team define and enforce the Definition of Done? Have you faced challenges distinguishing subjective goals from objective quality measures? Share your experiences and insights in the comments below!&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Avoid the pick-n-mix branching anti-pattern</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/avoid-the-pick-n-mix-branching-anti-pattern/</link>
      <pubDate>Mon, 14 Jul 2014 15:35:35 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/avoid-the-pick-n-mix-branching-anti-pattern/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Strategy</category>
      <category>Engineering Excellence</category>
      <description>Explains the risks of the pick-n-mix branching anti-pattern in source control, its impact on code quality, and recommends feature branching and toggles for stability.</description>
      <content:encoded>&lt;p&gt;For the last few days I have been working with a customer in the UK on a grass roots engagement to help them solve their source control issues. They have ended up with a pick-n-mix branching anti-pattern and could not see the way out.&lt;/p&gt;
&lt;p&gt;The pick-n-mix branching anti-pattern is something I encounter quite often and on the surface it looks like it should work and give the business flexibility. However the real result is lost code, failed releases, technical debt, unhappy customers, and an erosion of trust with the business.&lt;/p&gt;
&lt;p&gt;For the last few release they had noticed that they had been missing things from the release and this had resulted in some major bugs and egg of the face of IT. This is obviously not acceptable and they were looking for advice on how to move forward. There current source code management model was not working for them.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image0011-1-1.jpg" class="post-img-link" data-toggle="lightbox" data-caption="clip_image001"&gt;
  &lt;img src="images/clip_image0011-1-1.jpg" loading="lazy" alt="clip_image001" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In their current model they were doing something that I like to call pick-n-mix branching. In the diagram above you can see the pick-n-mix branching anti-pattern where in scenario #1 we are leaving behind some of the changeless. However in scenario #2 we are taking a couple of changeless that are dependant on some things that were left behind. This may result in a compile time error, or worse in the case of a website or some asset types. What if these were SQL changes&amp;hellip; How hard would it be to debug why the development code line works and Test does not. Worse again when you compound the result and this happens over many years it may work out for a while but even just a year down the line how much code is there in development that was never pushed to test. And how to you know which is which when you are adding new features to development?&lt;/p&gt;
&lt;p&gt;The pick-n-mix branching anti-pattern is a symptom of poor planning and almost always results in a code promotion model. In a code promotion model you are promoting source code from Development-&amp;gt;Test-&amp;gt;Production. This has the unfortunate consequence of complicating your quality assurance. You do not test code, you test the binaries that are a result of the compilation process. You might have clever packaging but ultimately you are releasing those binaries. However the reality is that if you create new binaries you are going to need to test them all over again to get any kind of assurance. Even without pick-n-mix code promotion is not the best of ideas but with! Now we are easily in a world of hurt.&lt;/p&gt;
&lt;p&gt;On small projects with few developer this can work. I even had a customer that create a software tool around this so that they could scale. However this is dysfunctional behaviour and results in a number of issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Technical Debt (or an un-hedged fund)&lt;/strong&gt; - More and more code will ley unfinished in the Development branch which results in an inability to have 100% working software every build.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Merge Chaos&lt;/strong&gt; - Over time the difference between development and production will increase leaving developers with less and less idea of what dependencies they can take. This results in total chaos at merge time, and it will only get worse as time goes on.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Retest required&lt;/strong&gt; - if you are creating new binaries then you have to re-execute all of your tests even if you think nothing has changed. You have just created a brand new version of your application.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Business Trust&lt;/strong&gt; - As your software erodes you will more often have failed rollouts and more major bugs in production. The result is a total lack of trust in your ability to deliver by your business. This often results in a crazy and convoluted gated model for deployments with loads of ass-covering paperwork.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The pick-n-mix branching anti-pattern is used as a crutch for poor planning. The solution for this is a single branch line and using feature flippers (toggles) to determine what code is run. However this requires engineering work and cannot be turned on with a switch. It will take some time, often a considerable amount of time, to engineer into the product. The only way to mitigate this in the short term is to switch to a Feature branching model.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image0021-2-2.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image002"&gt;
  &lt;img src="images/clip_image0021-2-2.png" loading="lazy" alt="clip_image002" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In a Feature branching model we have single main (or trunk) line with multiple branches for each feature. Features are one or more things that will ship together. There will be no pick-n-mix and everything on that feature line will merge to the &amp;lsquo;main&amp;rsquo; line at the same time. This will require a little more planning as you need to separate your features early. And a little more coordination from your management to make features distinct. This however gives you the capability to continue to release some features and not others without changing your code too much.&lt;/p&gt;
&lt;p&gt;There are still a few downsides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multiple instances&lt;/strong&gt; - we need an instance of our application per feature branch. This can be expensive and time consuming.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Break in binary pipeline&lt;/strong&gt; - as we are still on a separate branch and promoting code we can&amp;rsquo;t have a seamless binary promotion model. We can however have one per feature and then an end-to-end one pipeline for Integration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In an ideal world you need to change your code, using agile engineering practices, to allow you to be able to turn any feature off at any point in the release cycle. This would allow you to not ship a new feature as late as the day of release (or later) without having to rebuild, change a single line of code, or run your full regression again. When you are able to do this then you can move to a more advanced branching model where you maintain either a single source line, or for business reasons you may have a step structure for major releases.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image0031-3-3.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image003"&gt;
  &lt;img src="images/clip_image0031-3-3.png" loading="lazy" alt="clip_image003" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the step model you go back and fix bugs on the oldest version that you support that has the bug. You can then push forward from parent to child in the clear safety of never having to choose between bugs and new features.&lt;/p&gt;
&lt;p&gt;When you are in the zone with the need for withholding features between major versions for marketing reasons then you may need to work on separate branch lines. This is most effectively solved by using a step, or branch by release, model. This is not a branch for every bug fix or small change but instead is relegated only for the major changes. This allows your branch line to move through various states at different times depending on the criteria that you set. You may still have the idea of &amp;lsquo;dev&amp;rsquo;, &amp;rsquo;test&amp;rsquo;, and &amp;lsquo;prod&amp;rsquo;. However the difference between the states is likely only one of rules-of-engagement.&lt;/p&gt;
&lt;p&gt;However this is still just feature branching except we are looking at major releases. As you organisation realises the power of continuous delivery and the speed with which it can get function to market they will start to change and accept the reality. When that happens you can move to the most optimal branching model of all. The single line.&lt;/p&gt;

    
    

  
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;If you are currently in a pick-n-mix branching model you need to move immediately to a Feature branching model to reduce risk and promote stability. It may take a while to get to this point but it will make your life easier and allow you to start building more trust with your business as you are more likely to be successful with releasing. At this point you can move to binary promotion on your main line to reduce your test matrix.&lt;/p&gt;
&lt;p&gt;Once you are there you should look at implementing the engineering necessary in your product to implement Feature flippers to whatever level of granularity makes sense in your application. This may be by feature, user, or account and should provide you with the flexibility that your business require and is willing to pay for. Now we can move towards true binary promotion from our development phase all the way through to production.&lt;/p&gt;
&lt;p&gt;Even while in a single branching model with binary promotion you may find the need to have a stepped model where you need to support multiple versions of your product. This can be achieved without crippling your teams by having your branching flow forward from parent to child as you move through major releases of your software.&lt;/p&gt;
&lt;p&gt;Ultimately there is no excuse for using the pick-n-mix branching anti-pattern for branching. Step up, be professional, and fix this one for good.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>I do continuous deliver, why should I Sprint?</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/i-do-continuous-deliver-why-should-i-sprint/</link>
      <pubDate>Mon, 13 Jul 2020 18:42:03 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/i-do-continuous-deliver-why-should-i-sprint/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Framework</category>
      <category>Scrum</category>
      <category>Product Development</category>
      <category>Technical Leadership</category>
      <description>Sprints are not about limiting how often you release software, but about providing a regular cadence for planning, communication, and feedback. Teams can release as often as they want during a Sprint, even daily, and still be doing Scrum as long as they have a working increment by the end of the Sprint. The Sprint contains key feedback loops like Sprint Planning, Daily Scrum, Sprint Review, and Retrospective, all centred around producing something Done. Having a regular Sprint, for example "Sprint 231," gives management and dependent teams a reliable point of coordination. Scrum now emphasises not just development but also frequent delivery to production, with the expectation that teams deliver at least every 30 days but ideally more often.</description>
      <content:encoded>&lt;p&gt;Many folks believe that a Sprint is an arbitrary length of time in which you create and release software. They look at their &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;continuous delivery&lt;/a&gt; pipeline and say to themselves; &lt;em&gt;&amp;ldquo;Why would I limit myself to shipping only once every two weeks?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;UPDATE: &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt;.org just posted my &lt;a href="https://www.scrum.org/resources/scrum-and-continuous-delivery" target="_blank" rel="external noopener noreferrer"&gt;Scrum Tapas - Scrum and Continuous Delivery &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; which is posted inline below.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;[embed]https://www.youtube.com/watch?v=3XOorzoubYU[/embed]&lt;/p&gt;
&lt;p&gt;To that I say: &lt;em&gt;&amp;ldquo;Where in the Scrum Guide does it say that you can&amp;rsquo;t release every day?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You will not find it, I know as I have looked. I work with many teams that release software on a continuous delivery model of everything from a few hours, to a few days, and often on-demand. Can you say that they are not doing Scrum? Of course not.&lt;/p&gt;
&lt;p&gt;So why would you want a Sprint at all?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Sprint enshrines your empirical process by providing a maximum delivery cadence&lt;/li&gt;
&lt;li&gt;It increases communication and alignment&lt;/li&gt;
&lt;li&gt;It Adds some predictability to the unpredictable nature of software by evening the batch sizes.&lt;/li&gt;
&lt;li&gt;A Sprint is a container for planning!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As far as the Scrum Guide is concerned you must deliver &lt;a href="https://engineering-leadership.hinshelwood.com/tags/working-software/"&gt;working software&lt;/a&gt; at least every 30 days, but there is nothing to stop you doing it more frequently than that. Indeed continuous delivery and Scrum go together quite well in my experience.&lt;/p&gt;
&lt;p&gt;A Sprint enshrines inspect and adapt by containing your other feedback loops:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sprint Planning&lt;/strong&gt; - Inspect the Backlog and Adapt the plan for the next Sprint&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/daily-scrum/"&gt;Daily Scrum&lt;/a&gt;&lt;/strong&gt; - Inspect progress and adapt the plan for the next 24hours.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/sprint-review/"&gt;Sprint Review&lt;/a&gt;&lt;/strong&gt; - Inspect the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;Increment&lt;/a&gt; and adapt the Backlog&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sprint Retrospective&lt;/strong&gt; - Inspect the Sprint and adapt the process.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without a Sprint when would you bring all this together? The Sprint makes the effort required to pull your work together and create a Done increment of software mandatory. It is absolutely crucial to understand that if you don’t at least have working software that meets your &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;definition of done&lt;/a&gt; by the end of the Sprint then you are not doing Scrum.&lt;/p&gt;
&lt;p&gt;If you are an awesome disciplined team then by all means do something that looks a little more like &lt;a href="https://engineering-leadership.hinshelwood.com/categories/kanban/"&gt;Kanban&lt;/a&gt;, but if you don&amp;rsquo;t have the discipline to follow the rules of Scrum, how would you expect Kanban to work.&lt;/p&gt;

    
    

  
&lt;h3 id="communication--alignment"&gt;Communication &amp;amp; Alignment&lt;/h3&gt;
&lt;p&gt;An additional benefit of Sprinting is that it gives a cadence that your management, and other dependant teams, can follow easily. If you are coordinating work, then having a common frame of reference, Sprint 231, will aid in communication.&lt;/p&gt;


  
&lt;h3 id="creates-predictability"&gt;Creates Predictability&lt;/h3&gt;
&lt;p&gt;Software is inherently unpredictable. The standard deviation between the amount of work required for seemingly similar tasks is so big that it is very difficult to gain predictability. A Sprint creates an artificial batch of a fixed size (or at least less varied) with a time boxed Sprint so that you can create that cadence of predictability.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="conclusion"&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;A Sprint is a container for planning rather than releasing and while Scrum requires that you have a working increment of software at least every Sprint, there is nothing to stop you doing it more often. Indeed the recommendation from Scrum.org is that you not only ship your software at least every 30 days, you should endeavour to do so more often.&lt;/p&gt;
&lt;p&gt;Scrum.org recently changed its mantra from &amp;ldquo;Improve the profession of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/software-development/"&gt;software development&lt;/a&gt;&amp;rdquo; to &amp;ldquo;Improve the profession of software delivery&amp;rdquo; to start to enshrine the idea that delivery, to your customers, is no longer optional to get significant actionable feedback that you can reflect on.&lt;/p&gt;
&lt;p&gt;In short, while the Scrum Guide does not explicitly state it, it is no longer optional to ship your software to production at least every 30 days if you want to stay competitive and build the software that your users deserve.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Getting started with a modern source control system and DevOps</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/getting-started-with-a-modern-source-control-system-and-devops/</link>
      <pubDate>Mon, 13 Jul 2020 18:41:59 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/getting-started-with-a-modern-source-control-system-and-devops/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Tool</category>
      <category>Engineering Excellence</category>
      <category>DevOps</category>
      <description>Modern source control systems extend far beyond just code management, now supporting the full application lifecycle and DevOps practices through comprehensive metadata integration. All company code must be in source control to protect organisational assets, and deploying directly from workstations introduces serious business risks. An automated release pipeline and feature flags are essential to maintain quality, with VSTS highlighted as the most versatile and integrated platform seen, accommodating teams working on Java, .NET, Web, Android, iOS, and even Mainframe projects. Microsoft’s own shift of the entire Windows team to Git is a concrete example of modern practices. Continuous automated testing, frequent deliveries, and fast user feedback are now necessary elements for any competitive software team.</description>
      <content:encoded>&lt;p&gt;There are a number of things that you have to think about when selecting a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/modern-source-control/"&gt;modern source control&lt;/a&gt; system. Some of that is purely about code, but modern source control systems are about way more than code. They are about your entire application lifecycle and supporting &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; practices, they are about the metadata that you use to understand and manage your development processes and deliver great software. The tools you choose should compliment the professional people and practices that you use.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;DevOps is the union of people, processes, and practices to enable continious delivery of value to your end users&lt;/p&gt;
&lt;p&gt;Donovan Brown&lt;/p&gt;

  &lt;/blockquote&gt;


    
    

  
&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;I have been teaching the &lt;a href="https://nkdagility.com/training/courses/professional-scrum-developer-training/" target="_blank" rel="external noopener noreferrer"&gt;Professional Scrum Developer (PSD) training &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; and working with software teams for 7 years. I have never encountered a better platform than &lt;a href="https://www.visualstudio.com/team-services/" target="_blank" rel="external noopener noreferrer"&gt;Visual Studio Team Services (VSTS) &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; for managing the metadata required to facilitate the building of professional software on a regular cadence in any technology that is deployed to any platform. I have seen Java, .NET, Web, Android, iOS, and Mainframe teams all working together in VSTS with a shared vision and access to the same metadata. If you have many teams I did a webcast for &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt;.org on &lt;a href="https://nkdagility.com/scaling-professional-scrum-visual-studio-team-services/" target="_blank" rel="external noopener noreferrer"&gt;Scaling Professional Scrum with VSTS. &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;


  
&lt;h2 id="lets-get-some-things-out-the-way-first"&gt;Let&amp;rsquo;s get some things out the way first&lt;/h2&gt;
&lt;p&gt;If you are writing code then it SHOULD be in Source Control. More specifically, if you are writing code for your company then it MUST be in Source Control. Every line of code that you write or change is an asset of your organisation and should be reflected on a balance sheet somewhere. Any value you add is capital expenditure, of which your shareholders/owners should care, and any maintenance is operational expenditure, which your accountants can write off.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Put your code in source control…&lt;/strong&gt; and yes, I still meet organisations that DON’T use source control. No, not only small sweatshops but banks as well. Would you want your real-time transactional banking system under source control? Coz I would!&lt;/p&gt;
&lt;p&gt;Another thing to get out of the way is that deploying directly to production is a BAD IDEA! If you are deploying from your local workstation then you are introducing significant risk to your business and reducing the quality of the organisational asset. Any reduction of quality is a decision that needs to be taken by your executive board on advice from your accountant. Again, organisational asses sitting on a balance sheet. Its fraud to incorrectly represent the value of an asset, ignorance is not an excuse. Even if you have automated builds; if you ship irregularly, or with a lot of time between releases, then you likely have a way to bug-fix production quickly. Bypassing your usual checks and balances for shipping software reduces quality and shows an inherent lack of &lt;a href="https://engineering-leadership.hinshelwood.com/categories/engineering-excellence/"&gt;engineering excellence&lt;/a&gt; in your organisation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Deploy software through an automated release pipeline…&lt;/strong&gt; and yes, I have met companies that deploy directly to production from workstations. I even worked with one company that had operations using trial and error mixing and matching DLL&amp;rsquo;s to get the software working in production. One customer required to do 9000+ hours of manual testing to validate that&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modern source control is more than just code&amp;hellip;&lt;/strong&gt; in the past, just like operating systems used to be simple things, you could stick your code in source control and call it good. In the past, you used VSS, Subversion, or Perforce and it was good enough. Not anymore. Just as you expect a browser to ship with your OS, you now expect a build engine, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/release-management/"&gt;release management&lt;/a&gt;, and planning tools to ship with your source control system and for them all to be integrated. So don&amp;rsquo;t base your choice on that one thing, think of the integration and other tools that you need to support your modern &lt;a href="https://engineering-leadership.hinshelwood.com/tags/software-development/"&gt;software development&lt;/a&gt; pipeline.&lt;/p&gt;
&lt;p&gt;I would expect my release tools to understand exactly; what changes have been made to the code, which features of the system are affected, and what the resulting impact of that release had on both the user experience and system performance through telemetry. I would expect my work tracking tools to understand exactly; what branches are related to this work, which build include the changes, and who approved the pull requests that brought that code into the system. This is the type of metadata, regardless of the implementation technology, that I would expect to be available to Engineering and Management to help them understand their process and how things are going.&lt;/p&gt;
&lt;p&gt;That all said it is important to remember to focus on &lt;a href="https://nkdagility.com/scrum-tapas-importance-professionalism/" target="_blank" rel="external noopener noreferrer"&gt;becoming a professional Scrum team &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; rather than an amateur one. While you need to focus on the Scrum Guide, you also need Engineering Excellence and a set of Values and Principles.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="recommended-good-practices-for-a-modern-software-team"&gt;Recommended good practices for a modern software team&lt;/h2&gt;
&lt;p&gt;I almost never use the term &amp;ldquo;best practices&amp;rdquo;, especially for software delivery and anyone that gives you a best practice is generally talking out their ass. There are only good practices that fit the current needs of the business or the situation at hand. In the modern software development world, you need to accept that any process or practice that you adopt is imperfectly defined and will need to be adapted to meet your needs. That said, having source control and an automated release pipeline is not optional if you want to continue to be competitive. You need to be able to monitor both your &lt;a href="https://engineering-leadership.hinshelwood.com/tags/lead-time/"&gt;Lead Time&lt;/a&gt; and your &lt;a href="https://engineering-leadership.hinshelwood.com/tags/cycle-time/"&gt;Cycle Time&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some general guidelines you should consider:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Never code without Source Control&lt;/strong&gt; - Ultimately the tool does not matter but if you are building Open Source Software (OSS) then you need to be on &lt;a href="https://engineering-leadership.hinshelwood.com/tags/github/"&gt;GitHub&lt;/a&gt;. GitHub has cornered the OSS market and has not near competitor. If however, you are building closed source software then there is no better platform than Visual Studio Team Services (VSTS). You get unlimited private repositories and if you have MSDN licences, as most organisations building on the Microsoft stack does, then it is already included in your licence. If you are not on the Microsoft Stack then I would still recommend VSTS as the cheapest and most featureful platform available that supports any platform and any environment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use feature flags to minimise branches&lt;/strong&gt; - Branches introduce waste with merging and often introduce quality issues. Bypass the whole issue by using Feature flags and other software patterns to avoid it. If you are using a distributed source control system (DVCS) only ever release from MASTER with fully tested code, but you can have an unlimited number of topic and personal branches, as long as they are short lived. If you are using a server-based source control system (SVCS) then you should completely avoid branches where possible, and work to move towards a DVCS. Maybe you need only [trunk/master/main] and [dev/work] branches but focus on a zero branch policy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Move to Git&lt;/strong&gt; - Regardless of the scale of the software that you are building, you should be developing on Git. If you are clinging to your SVCS (TFVC, Perforce, SVN, whatever) then you are merely clinging to the past and relying on outmoded technology. Even the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/windows/"&gt;Windows&lt;/a&gt; team at Microsoft has moved to Git, as has Bing, Xbox, &amp;amp; the entire Developer Division.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Meet your &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt; at least every 30 days&lt;/strong&gt; - Create a definition of done that represents the minimum bar of quality for everything your develop. Make sure that definition reflects everything that you need to do to ship your software to production, and get there at least every 30 days. If you can get there more regularly that better, and if you can &lt;a href="https://nkdagility.com/continuous-deliver-sprint/" target="_blank" rel="external noopener noreferrer"&gt;practice continuous delivery inside of your planning Sprints &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; then that&amp;rsquo;s even better.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get feedback from your users at least every 30 days&lt;/strong&gt; - Part of the trick of delivering awesome software is building just what your customers need, just as they need it. The only way to do this is to get what you have just built into your customer&amp;rsquo;s hands so they can tell you is it is right, then pivot as soon as they give you feedback. &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;Continuous delivery&lt;/a&gt; to production is the best way to achieve this.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create tests first so you build what was asked the first time&lt;/strong&gt; - You should always work towards test-first practices. While for many this means &lt;a href="https://engineering-leadership.hinshelwood.com/tags/test-driven-development/"&gt;Test Driven Development&lt;/a&gt; (TDD) I like to look it as any form of test-first. How can your coders ever hope to pass the quality gates when the testers build the test cases separately and only show the coders after they are finished. Get your test cases written first and have the coders make them pass. I also recommend that coders use TDD and pair programming. Following Test First will help you move from testing quality in at the end to building quality in from the start.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automate every test you can&lt;/strong&gt; - Automation is key to a successful delivery because you can&amp;rsquo;t run all your tests every 30 days. Every 30 days you add more tests and without automation, you can&amp;rsquo;t keep up. Ideally, all of your tests are automated from the start. An interesting example is that Microsoft moved all of its testing efforts into the Development Teams around 3 years ago, and got rid of their last external test team about 2 years ago. Make your Development Team(s) accountable for Quality and give them the tools to make it happen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create automated release pipeline&lt;/strong&gt; - Creating an automated release pipeline is hard but the benefits are numerable. From quality to resilience you just must have one to support modern development practices. You should focus on delivering to production (start with as close as you can get) at least every 30 days, but expect to need to ship many times a day. Automation will make your process quick and easy an lets you focus on improving the pipeline over time as you his issues. This is where &lt;a href="https://engineering-leadership.hinshelwood.com/categories/lean/"&gt;lean&lt;/a&gt; practices and focusing on flow can really help minimise the waste and improve the process.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In order to support these things, I use VSTS as my software development platform. With the move by Microsoft to distance its platform from execution and focus on orchestration we get a system that can support any team developing with any technology for any platform. This allows us to have a single unified organisational vision and tool for our orchestration of portfolio, planning, execution, coding, build, test management, and release while leaving the execution of these tasks and the technologies used in and to build our software up to the team. You might have one team that used Nuget and another than uses NPM, or one using Maven and another on Gulp. Regardless of your implementation choice, VSTS can support your teams doing Scrum and deploying anything on a regular cadence to anywhere. When I am teaching a &lt;a href="https://nkdagility.com/training/courses/professional-scrum-developer-training/" target="_blank" rel="external noopener noreferrer"&gt;Professional Scrum Developer (PSD) &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; class I always use VSTS regardless of the technology that the students are working on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Don’t get locked into a limited set of technologies, VSTS supports every technology on every platform.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Find out more on &lt;a href="https://nkdagility.com/training/" target="_blank" rel="external noopener noreferrer"&gt;Visual Studio Team Services &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; from &lt;a href="https://nkdagility.com/company/about-martin-hinshelwood/" target="_blank" rel="external noopener noreferrer"&gt;naked Agility - Martin Hinshelwood &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>The Insufficiency of Scrum is a fallacy</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/the-insufficiency-of-scrum-is-a-fallacy/</link>
      <pubDate>Sat, 23 Mar 2013 17:37:31 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/the-insufficiency-of-scrum-is-a-fallacy/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Accountability</category>
      <category>Engineering Excellence</category>
      <category>Scrum</category>
      <description>Scrum alone does not cause project failure; lacking strong engineering practices and effective retrospectives leads to technical debt and poor Agile outcomes.</description>
      <content:encoded>&lt;p&gt;The insufficiency of Scrum is a fallacy perpetrated by teams that don’t step up their practices in concert with their planning and don&amp;rsquo;t really want to make it work anyway. You can fail doing Kanban, XP, Merise and SSADM just as easily unless you have good engineering practices as well.&lt;/p&gt;
&lt;p&gt;The goal of Agile it to have you fail sooner and for it to cost less. So what happens when you try to make your management practices more agile but forget about your engineers practices?&lt;/p&gt;
&lt;p&gt;Well &lt;a href="http://aventuraspuntonet.wordpress.com/" target="_blank" rel="external noopener noreferrer"&gt;José Manuel Nieto &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; contacted me on twitter after joining a team that was suffering from what he called &lt;a href="http://aventuraspuntonet.wordpress.com/2013/03/16/the-insufficiency-of-scrum/" target="_blank" rel="external noopener noreferrer"&gt;The Insufficiency of Scrum &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; and asked for thoughts and after a conversation some advice.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p&gt;@&lt;a href="https://twitter.com/mrhinsh" target="_blank"&gt;mrhinsh&lt;/a&gt; Hi What do you think about the thoughts I published? "The Insufficiency of SCRUM" &lt;a title="http://wp.me/p33ULi-5k" href="http://t.co/piKoVTO9YM" target="_blank"&gt;wp.me/p33ULi-5k&lt;/a&gt;&lt;/p&gt;&lt;p&gt;,  José Manuel Nieto (@SuperJMN) &lt;a href="https://twitter.com/SuperJMN/status/315446020039397378" target="_blank"&gt;March 23, 2013&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&#13;
&lt;p&gt;When we fail at something it is only human to look for something to blame other than ourselves as the implementers and the things that we did not take care of.&lt;/p&gt;
&lt;p&gt;We have to accept the fact that no process is perfect and that we will need to work hard at anything to make it work. Unfortunately we worked at traditional software development for over 40 years to prove that it did not work. But that is not really true…. it works in the small scale or if we are building something simple. I can’t think of any modern software that is either of those things. However Agile is not a silver bullet. I will say that again… &lt;strong&gt;Agile is not a silver bullet&lt;/strong&gt; and you should read &lt;a href="http://blog.hinshelwood.com/scrum-is-hard-to-adopt-and-disruptive-to-your-organisation/" title="http://blog.hinshelwood.com/scrum-is-hard-to-adopt-and-disruptive-to-your-organisation/" target="_blank" rel="external noopener noreferrer"&gt;Scrum is hard to adopt and disruptive to your organisation &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p&gt;@&lt;a href="https://twitter.com/mrhinsh" target="_blank"&gt;mrhinsh&lt;/a&gt; It WAS agile until bugs started to riddle the app. SCRUM only has short-term planning.&lt;/p&gt;&lt;p&gt;,  José Manuel Nieto (@SuperJMN) &lt;a href="https://twitter.com/SuperJMN/status/315513979948642304" target="_blank"&gt;March 23, 2013&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&#13;
&lt;p&gt;Most of the Agile Frameworks only cater for planning the ‘what’ and tells you to let the team decide on ‘how’ to build the software. Scrum, Kanban &amp;amp; Scaled Agile all focus on the Management process not the engineering practices. This does not mean that you don’t also need good engineering practices, and in fact the &lt;a href="http://www.scrum.org/Scrum-Guides" target="_blank" rel="external noopener noreferrer"&gt;Scrum Guide &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; explicitly tells you that your team needs “good engineering practices’ in order to succeed.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image46-1-1.png" class="post-img-link" data-toggle="lightbox" data-caption="image"&gt;
  &lt;img src="images/image46-1-1.png" loading="lazy" alt="image" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure: Testing is core to inspecting and adapting your engineering practices&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you don’t have those good engineering practices then you will spend more time sprint on sprint struggling with the technical debt that is built up and you will end up down an engineering blind ally.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p&gt;@&lt;a href="https://twitter.com/mrhinsh" target="_blank"&gt;mrhinsh&lt;/a&gt; Right. It lacks all of those -able adjectives. But, how to recover from the mess. How to refactor?&lt;/p&gt;&lt;p&gt;,  José Manuel Nieto (@SuperJMN) &lt;a href="https://twitter.com/SuperJMN/status/315532905977876481" target="_blank"&gt;March 23, 2013&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&#13;
&lt;p&gt;But now I am hosed, how to I get out of this?&lt;/p&gt;

    
    

  
&lt;h2 id="step-1-hold-effective-retrospectives-to-prevent-the-insufficiency-of-scrum"&gt;Step 1: Hold effective retrospectives to prevent the insufficiency of scrum&lt;/h2&gt;
&lt;p&gt;On of the reasons our team gets into this position is that they did not know that they was in a broken state until it is too late. If our organisation fails to understand the purpose of the retrospective as an inspect and adapt moment for ‘how’ we worked during our Sprint then one will fail to improve.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p&gt;@&lt;a href="https://twitter.com/mrhinsh" target="_blank"&gt;mrhinsh&lt;/a&gt; it was as soon as I entered the team. 6th sprint.&lt;/p&gt;&lt;p&gt;,  José Manuel Nieto (@SuperJMN) &lt;a href="https://twitter.com/SuperJMN/status/315532343857266688" target="_blank"&gt;March 23, 2013&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&#13;
&lt;p&gt;The accountable and responsible party here is the Scrum Master. Without an effective Scrum Master to guide the team you WILL fail. If you do not have an effective Scrum Master then you or they don’t fully understand the &lt;a href="http://agiletrail.com/2011/11/14/42-tasks-for-a-scrum-masters-job/" title="42 Tasks for a Scrum Master’s Job" target="_blank" rel="external noopener noreferrer"&gt;42 Tasks for a Scrum Master’s Job &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;According to the Scrum Guide the Development Team can ‘choose’ their Scrum Master to make sure that they get some one as effective as possible.&lt;/p&gt;
&lt;p&gt;Yes, this also means that they can ‘un-choose’ their current one.&lt;/p&gt;


  
&lt;h2 id="step-2-stop-creating-technical-debt-to-prevent-the-insufficiency-of-scrum"&gt;Step 2: Stop creating technical debt to prevent the insufficiency of scrum&lt;/h2&gt;
&lt;p&gt;You need to first stop creating technical debt. To do this you only need to focus on one thing; &lt;strong&gt;Working software at lease every 30 days&lt;/strong&gt;. If you are not able to create working software every sprint then you need to stop and look at why that is.&lt;/p&gt;
&lt;p&gt;Note I prefer ‘working software on every checkin’ and ‘continuous delivery’. That way I can ship working software at any time.&lt;/p&gt;
&lt;p&gt;Now I am not talking about that flaccid rendition of working software that lead you to this place of horror and despair. But instead take ‘working software’ at face value and have it mean ‘everything that I have delivered works with no further work required’. Does that mean that it meets the customers expectations? No it does not; unless their only expectation is for what you show them to work with no errors and that if they say ‘ship-it’ you can deploy what you have. If you have to reply with… “Well, maybe next sprint as we still have some bugs.” then you have failed as a professional and as a team to deliver the minimum bar.&lt;/p&gt;
&lt;blockquote class="twitter-tweet"&gt;&lt;p&gt;@&lt;a href="https://twitter.com/mrhinsh"&gt;mrhinsh&lt;/a&gt; The core is basically wrong. Now, nobody can fix that. No time for redesigns in a sprint&lt;/p&gt;&lt;p&gt;,  José Manuel Nieto (@SuperJMN) &lt;a href="https://twitter.com/SuperJMN/status/315519701960777729"&gt;March 23, 2013&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&#13;
&lt;p&gt;But if we do get into that state then you are in the very same ‘brownfield’ situation as software that have been built over years with no unit tests. So if the primary goal now is working software that meets our customers expectations and we augment our Definition of Done to reflect that then we will be delivering less features of higher quality.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image47-2-2.png" class="post-img-link" data-toggle="lightbox" data-caption="image"&gt;
  &lt;img src="images/image47-2-2.png" loading="lazy" alt="image" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure: There is &lt;a href="https://www.sugarsync.com/pf/D057810_69933305_087616" target="_blank" rel="external noopener noreferrer"&gt;1000% return of investment for every test written in TDD &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While we are still paying back our excessive build up of technical debt, using those engineering practices that will prevent future build up, we will be delivering less value to the customer.&lt;/p&gt;


  
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Remember that the software that you are building is an organisational asset and decisions to cut quality affect the value of that asset and thus must be reflected in your organisations financial statements .Cutting quality in your software without first gaining the approval to do so from your financial executives is unprofessional at best and fraud at worst and always incompetence.&lt;/p&gt;
&lt;p&gt;Don’t be incompetent. Don&amp;rsquo;t commit fraud.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Be a professional…&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>The Sprint is a container for Planning and not necessarily for Delivery</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/the-sprint-is-a-container-for-planning-and-not-necessarily-for-delivery/</link>
      <pubDate>Tue, 29 Nov 2011 04:36:22 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/the-sprint-is-a-container-for-planning-and-not-necessarily-for-delivery/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Strategy</category>
      <category>Engineering Excellence</category>
      <description>Explains how Scrum Sprints are primarily for planning, not fixed delivery, and discusses aligning delivery schedules, continuous deployment, and improving software quality.</description>
      <content:encoded>&lt;p&gt;I have been told time and again in the office that Scrum is an inflexible platform for developing software as it is way too prescriptive. This is far from reality and represents an invalid interpretation in the rules of the game. This fault lies not with those that have been turned away from the light, but with the fanatics that have brandished the burning torch and pitchfork at your door chanting &amp;ldquo;that is not Scrum because&amp;hellip;&amp;rdquo;.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/Image1_thumb-1-1.png" class="post-img-link" data-toggle="lightbox" data-caption="Image(1)"&gt;
  &lt;img src="images/Image1_thumb-1-1.png" loading="lazy" alt="Image(1)" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure: Please ignore these guys&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Many of us in the community have a vision of making Scrum more accessible to all and to that end, one of the goals of the entire Scrum community should be to help the misguided back to the light and re-educate the Scrum Coaches ( read Inquisitors here ) that have corrupted them.&lt;/p&gt;
&lt;p&gt;Let me ask you a question;&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&lt;strong&gt;If the Scrum Guide is the rules by which the game of Scrum is played, then where is it written that your delivery schedule must match up with your planning schedule?&lt;/strong&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;It does say that you should be meeting your definition of done for each PBI and at least each Sprint. As your definition of done is the quality bar set by the Development Team and negotiated with the Product Owner, what is to stop you having the following DoD:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Acceptance Tests have been turned into Test Cases&lt;/li&gt;
&lt;li&gt;Functional Tests have been turned into Test Cases&lt;/li&gt;
&lt;li&gt;Code coverage percentage is the same or better than the last build&lt;/li&gt;
&lt;li&gt;All Tests Cases pass&lt;/li&gt;
&lt;li&gt;All Test Cases have been turned into Coded UI Tests&lt;/li&gt;
&lt;li&gt;Deployed to QA and full automated test suit run&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deployed to Production&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are deploying to production every Sprint and even for every PBI then you are one step away from doing it for every build, which is Continuous Deployment. Does Scrum say that you can&amp;rsquo;t do this? Hell no, it encourages it without mandating it. As long as you meet a &lt;a href="http://blog.hinshelwood.com/are-you-doing-scrum-really/" target="_blank" rel="external noopener noreferrer"&gt;simple measurable checklist &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, you can say that you are doing Scrum.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&amp;ldquo;Businesses rely on getting valuable new software into the hands of users as fast as possible, while making sure that they keep their production environments stable. Continuous Delivery is a revolutionary and scalable agile methodology that enables any team, including teams within enterprise IT organizations, to achieve rapid, reliable releases through better collaboration between developers, testers, DBAs and operations, and automation of the build, deploy, test and release process.&amp;rdquo;&lt;br&gt;
-Jez Humble&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;Even if you are not practicing Continuous Delivery, I would encourage you to deploy more regularly than just once a Sprint. I am not saying that it is easy, because it is not.&lt;/p&gt;
&lt;p&gt;You can&amp;rsquo;t do this with immature software either. I see customers fail time and again with institutional technical debt and software teams that are highly tuned to create it. In order to achieve Continuous Delivery your organisation must be committed to minimizing technical debt and to maximizing the value delivered to your business. Apart from technical debt there are a quandary of things that need to be in place in order to achieve Continuous Delivery. Think about the ability to have different versions of the same code running in production at the same time while maintaining the contracts and separation of concerns that go to make that possible.&lt;/p&gt;
&lt;p&gt;There are only a few organisations that have mastered Continuous Delivery, but the benefit that they achieve in being able to get features into production almost as fast as the business can think of it.&lt;/p&gt;
&lt;p&gt;But if you do want to get there, or at least take a journey down that road and see how far you want to go then there are things that must happen. There are waypoints along the road and provide a simple guide to your maturity in this area:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Automated Build&lt;/li&gt;
&lt;li&gt;Build Verification Tests&lt;/li&gt;
&lt;li&gt;Automated Acceptance Tests&lt;/li&gt;
&lt;li&gt;Automated Functional Tests&lt;/li&gt;
&lt;li&gt;Automated Unit Tests&lt;/li&gt;
&lt;li&gt;Automated Deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Only once you have all of these thing should you then be thinking of what more do you need for your software in your environment to be able to successfully deploy your software to production and be happy that you have met the correct quality level to achieve this.&lt;/p&gt;
&lt;p&gt;I never tell teams that you MUST do a thing but instead encourage them to do the right thing for their organisation in a journey to build better software.&lt;/p&gt;
&lt;p&gt;Now, that is something that we can all aspire to.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Great Scrum Masters Need Technical, Business, and Organisational Mastery</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/great-scrum-masters-need-technical-business-and-organisational-mastery/</link>
      <pubDate>Mon, 24 Mar 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/great-scrum-masters-need-technical-business-and-organisational-mastery/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Capability</category>
      <category>Scrum</category>
      <category>Leadership</category>
      <category>Product Development</category>
      <description>A great Scrum Master must combine strong leadership skills with mastery in three key areas: technical, business, and organisational domains. Leadership qualities like facilitation, coaching, and conflict resolution are essential but not sufficient on their own. Mastery means understanding the philosophies, practices, and methods specific to the team's domain, such as SOLID principles or Test-Driven Development for software teams, or regulatory requirements in medical devices. Without knowledge in these three areas, a Scrum Master cannot effectively remove impediments, support the Product Owner, or drive meaningful organisational change. Scrum Masters are not junior roles; they require experience and ongoing development in each of these mastery areas to serve teams and organisations effectively.</description>
      <content:encoded>&lt;p&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-master/"&gt;Scrum Masters&lt;/a&gt; don’t need to be subject-matter experts in the way traditional management once required. We’re no longer in an era where managers direct unskilled labour; modern teams are intelligent, capable, and cross-functional. The &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; Master’s responsibility is not to do the work, but to enable others to do it better. They are leaders.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/categories/leadership/"&gt;Leadership&lt;/a&gt; requires a different kind of expertise, expertise in change, collaboration, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/coaching/"&gt;coaching&lt;/a&gt;, facilitation, conflict navigation, communication, team development, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/personal/"&gt;personal&lt;/a&gt; growth, and a &lt;a href="https://engineering-leadership.hinshelwood.com/articles/balance-of-leadership-and-control-in-scrum/"&gt;ballance of leadership with control&lt;/a&gt;. These are non-negotiable.&lt;/p&gt;
&lt;p&gt;But these skills alone are not enough; we should recognise that for leaders to be successful, domain-specific mastery matters too. A Scrum Master who understands the &lt;em&gt;technical, business, and organisational&lt;/em&gt; context their team operates in can better remove impediments, facilitate learning, and support adaptation.&lt;/p&gt;
&lt;p&gt;This idea doesn’t replace the core leadership capabilities. It &lt;strong&gt;builds on them&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For a Scrum Master to be an effective &lt;em&gt;Teacher, Mentor, Coach, and Facilitator&lt;/em&gt;, they require a deep understanding, or mastery, of the team&amp;rsquo;s work, the business they operate in, and the organisation they are navigating.&lt;/p&gt;
&lt;p&gt;Mastery in this context means knowledge and understanding of the philosophies, methods, practices, and techniques relevant to the domain in which the team operates. If a team is developing medical devices, the Scrum Master should understand that field&amp;rsquo;s regulatory and quality requirements. If they are working in industrial design, they need familiarity with prototyping, material constraints, and production processes. If they are developing software, they should understand &lt;a href="https://engineering-leadership.hinshelwood.com/tags/software-development/"&gt;software development&lt;/a&gt; practices, including &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;Continuous Delivery&lt;/a&gt;, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/test-first-development/"&gt;Test First&lt;/a&gt;, and &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; principles.&lt;/p&gt;
&lt;p&gt;Without this domain knowledge, how can they effectively help the team deliver value?&lt;/p&gt;
&lt;p&gt;There are three key areas of mastery that make a Scrum Master truly effective: &lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-mastery/"&gt;Technical Mastery&lt;/a&gt;, Business Mastery, and Organisational Evolutionary Mastery.&lt;/strong&gt;&lt;/p&gt;

    
    

  
&lt;h2 id="three-masteries-of-an-effective-scrum-master"&gt;Three Masteries of an effective Scrum Master&lt;/h2&gt;
&lt;p&gt;Many individuals take on the Scrum Master role without fully developing the expertise needed in even one of these masteries, let alone all three. This gap in &lt;a href="https://engineering-leadership.hinshelwood.com/tags/competence/"&gt;competence&lt;/a&gt; can hinder the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Team&lt;/a&gt;’s ability to navigate challenges effectively and maximise their potential. They often fall into the assumption of the knowledge fallacy trap because they don&amp;rsquo;t have the skills, knowledge, or experience to identify the deficiency in or corruption of a key practice or capability for the Scrum Team to be effective.&lt;/p&gt;
&lt;p&gt;While it is not mandatory to have all of these masteries to the same depth, depending on the size of the organisation and others working in the same field, a great Scrum Master possesses these three critical masteries that enable them to serve the Scrum Team, the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-owner/"&gt;Product Owner&lt;/a&gt;, and the organisation effectively.&lt;/p&gt;


  
&lt;h3 id="1-technical-mastery"&gt;1. Technical Mastery&lt;/h3&gt;
&lt;p&gt;One of the core capabilities of any team is their ability to deliver a valuable, usable product. For a Scrum Master to coach them on creating that value, they need to understand what effective looks like in the context. If they are working with a hardware team, they should understand product engineering and manufacturing constraints. If they are in finance, they should understand financial modelling and compliance.&lt;/p&gt;
&lt;p&gt;The key is domain-specific technical mastery that allows them to facilitate discussions, remove impediments, and guide the team towards better practices. If they are working with software teams they should be able to teach and coach the team members in the technical practices for software, for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Coach the Developers in SOLID principles&lt;/strong&gt; – ensuring that the team adheres to fundamental object-oriented design principles to create maintainable and scalable software.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Facilitate the adoption of Static Analysis &amp;amp; Linting&lt;/strong&gt; – Encouraging automated code quality checks to catch defects early and enforce coding standards.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mentor the team in Pair Programming&lt;/strong&gt; – Promoting collaborative coding to enhance knowledge sharing, reduce defects, and improve overall code quality.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Instill Test-Driven Development (TDD) practices&lt;/strong&gt; – Guiding the team to write tests before code, ensuring robust, verifiable, and high-quality software.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enable &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-integration/"&gt;Continuous Integration&lt;/a&gt; and Deployment (CI/CD)&lt;/strong&gt; – Driving automation and frequent delivery to accelerate feedback loops and improve release reliability.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Advocate for Cloud and DevOps principles&lt;/strong&gt; – Teaching the team how to leverage cloud-native architectures, Infrastructure as Code (IaC), and automated operations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ensure Clean Code and Refactoring discipline&lt;/strong&gt; – Encouraging best practices that result in readable, maintainable, and scalable codebases while reducing &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other contexts, like designing hardware, creating movies, or creating financial accounts, they would need to teach and coach the technical practices that make sense for those contexts. These skills help the Scrum Master serve the Scrum Team and increase their effectiveness.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;The Scrum Master serves the Scrum Team in several ways, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Coaching the team members in self-management and cross-functionality;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Helping the Scrum Team focus on creating high-value Increments that meet the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt;;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Causing the removal of impediments to the Scrum Team’s progress; and,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensuring that all Scrum events take place and are positive, productive, and kept within the timebox.&lt;/p&gt;
&lt;p&gt;, &lt;a href="https://engineering-leadership.hinshelwood.com/guides/scrum-guide/"&gt;The Scrum Master, Scrum Guide&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

  &lt;/blockquote&gt;

&lt;p&gt;Without technical mastery within the relevant domain, guiding a Scrum Team towards high-value &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-delivery/"&gt;product delivery&lt;/a&gt; is challenging.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="2-business-mastery"&gt;2. Business Mastery&lt;/h3&gt;
&lt;p&gt;The Product Owner is a key position that sets the tone for product leadership and defines success within the organisation. For them to be successful, they must implement modern &lt;a href="https://engineering-leadership.hinshelwood.com/categories/product-management/"&gt;product management&lt;/a&gt; practices and have a value-driven mindset. The Product Owner should be accountable for and have the authority to maximise the value of the product and the effectiveness of the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-backlog/"&gt;Product Backlog&lt;/a&gt;. Not every person who takes on the accountability of the Product Owner role will already possess these skills or even be aware that they should. Developing expertise in modern product management practices and value-driven decision-making is an ongoing journey. Since an effective Scrum Team requires an effective Product Owner, it falls within the accountability of the Scrum Master to teach, coach, and mentor the Product Owner as needed. This requires that they understand the business context of the Scrum Team and its product as well as the product management processes, techniques, and practices that a Product Owner might use to maximise the value of the Scrum Team&amp;rsquo;s work.&lt;/p&gt;
&lt;p&gt;This includes that the Product Owner is able to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Leverage customer insights and market research&lt;/strong&gt; – The Scrum Master helps the PO incorporate data-driven insights from customer feedback, competitive analysis, and market trends to inform Product Backlog decisions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Articulate the strategic vision of the product&lt;/strong&gt; – The Scrum Master should coach the PO on clearly defining and communicating the long-term vision of the product to stakeholders and the Scrum Team.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Actively manage stakeholders, their desires, expectations, and outcomes&lt;/strong&gt; – The Scrum Master mentors the PO in engaging with stakeholders effectively, ensuring alignment without compromising product integrity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Developing and explicitly communicating intermediate &lt;a href="https://engineering-leadership.hinshelwood.com/tags/strategic-goals/"&gt;strategic goals&lt;/a&gt;&lt;/strong&gt; – The Scrum Master supports the PO in setting achievable, incremental objectives that drive value and guide the Scrum Team.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ensuring that the Product Backlog is transparent, visible, and understood&lt;/strong&gt; – The Scrum Master teaches the PO how to refine, prioritise, and maintain a clear, actionable Product Backlog.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using evidence-based management techniques to optimise outcomes and value delivered&lt;/strong&gt; – The Scrum Master coaches the PO on leveraging data, metrics, and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/experimentation/"&gt;experimentation&lt;/a&gt; to make informed product decisions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Work with Developers daily to clarify and renegotiate the Scope of the Sprint&lt;/strong&gt; – The Scrum Master facilitates collaboration between the PO and Developers to ensure continuous alignment and adaptability.&lt;/li&gt;
&lt;/ul&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;Scrum Master Service to the Product Owner&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ensuring that goals, scope, and product domain are understood by the Scrum Team.&lt;/li&gt;
&lt;li&gt;Helping the Scrum Team understand the need for clear and concise Product Backlog items.&lt;/li&gt;
&lt;li&gt;Ensuring the Product Owner knows how to arrange the Product Backlog to maximize value.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;, &lt;a href="https://engineering-leadership.hinshelwood.com/guides/scrum-guide/"&gt;The Scrum Master, Scrum Guide&lt;/a&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;Without business mastery, a Scrum Master cannot effectively support the Product Owner or ensure the team&amp;rsquo;s alignment with business goals.&lt;/p&gt;


  
&lt;h3 id="3-organisational-evolutionary-mastery"&gt;3. Organisational Evolutionary Mastery&lt;/h3&gt;
&lt;p&gt;Most organisations operate within traditional hierarchical structures that prioritise control and predictability, which often conflict with the adaptability and empirical approach that Scrum fosters. Scrum enables teams to embrace change, iterate quickly, and focus on delivering value in an environment of uncertainty. To bridge this gap, Scrum Masters must actively guide organisations towards a more dynamic, self-organising model that supports agility and responsiveness to market shifts. Many Agile transformations fail due to a lack of understanding of how organisations truly function and evolve, making this mastery critical for any Scrum Master seeking lasting impact.&lt;/p&gt;
&lt;p&gt;Key aspects include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Navigate organisational structure and politics&lt;/strong&gt; – Helping teams and leadership understand and adapt to the organisation&amp;rsquo;s hierarchy, decision-making processes, and political dynamics to remove impediments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apply &lt;a href="https://engineering-leadership.hinshelwood.com/tags/change-management/"&gt;change management&lt;/a&gt; principles&lt;/strong&gt; – Facilitating sustainable change by addressing resistance, fostering adoption, and ensuring alignment with Agile values.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Engage stakeholders effectively&lt;/strong&gt; – Ensuring that decision-makers, sponsors, and key influencers understand Agile principles and support the Scrum Team’s ability to deliver value.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lead Agile and &lt;a href="https://engineering-leadership.hinshelwood.com/categories/lean/"&gt;Lean&lt;/a&gt; transformations&lt;/strong&gt; – Driving &lt;a href="https://engineering-leadership.hinshelwood.com/tags/organisational-agility/"&gt;organisational agility&lt;/a&gt; by educating leadership, coaching teams, and embedding &lt;a href="https://engineering-leadership.hinshelwood.com/tags/lean-thinking/"&gt;Lean thinking&lt;/a&gt; into strategic planning and execution.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Influence leadership to remove systemic impediments&lt;/strong&gt; – Advocating for structural and cultural changes that enable agility and improve &lt;a href="https://engineering-leadership.hinshelwood.com/tags/value-delivery/"&gt;value delivery&lt;/a&gt; across the organisation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Foster a culture of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-learning/"&gt;continuous learning&lt;/a&gt; and adaptation&lt;/strong&gt; – Encouraging a mindset of experimentation, feedback, and iterative improvement at all levels of the organisation.&lt;/li&gt;
&lt;/ul&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;Scrum Master Service to the Organisation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leading and coaching the organisation in its Scrum adoption.&lt;/li&gt;
&lt;li&gt;Planning Scrum implementations within the organisation.&lt;/li&gt;
&lt;li&gt;Helping employees and stakeholders understand Scrum and empirical &lt;a href="https://engineering-leadership.hinshelwood.com/categories/product-development/"&gt;product development&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Causing change that increases the productivity of the Scrum Team.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;, &lt;a href="https://engineering-leadership.hinshelwood.com/guides/scrum-guide/"&gt;The Scrum Master, Scrum Guide&lt;/a&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;Without organisational mastery, a Scrum Master will struggle to drive lasting, meaningful change within the organisation.&lt;/p&gt;


  
&lt;h2 id="conclusion-can-a-scrum-master-be-effective-without-these-skills"&gt;Conclusion: Can a Scrum Master Be Effective Without These Skills?&lt;/h2&gt;
&lt;p&gt;While the entire Scrum Team is accountable for delivery, the Scrum Master ensures the conditions for success by addressing systemic issues and empowering the team to work efficiently. They do not execute the work themselves but are responsible for enabling outcomes, ensuring that the Scrum framework is effectively applied, fostering collaboration, and removing impediments that hinder progress.&lt;/p&gt;
&lt;p&gt;A Scrum Master’s role is not passive; they actively influence the team’s ability to deliver by facilitating strategy, ensuring alignment with business goals, and advocating for &lt;a href="https://engineering-leadership.hinshelwood.com/tags/organisational-change/"&gt;organisational change&lt;/a&gt; where necessary. Without technical, business, and organisational mastery, they risk being ineffective in guiding the team towards high-value delivery.&lt;/p&gt;
&lt;p&gt;While a Scrum Master can function without deep technical knowledge, they will be far more effective if they understand the &lt;em&gt;technical, business, and organisational&lt;/em&gt; context they operate in. Mastery in these three areas allows them to serve their teams better, drive value, and enable true agility within the organisation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scrum Masters don’t need to be coders, but if their team is developing software, they should have mastery in software development as well as whatever domain is relevant to the industry their team operates in.&lt;/strong&gt; The &lt;a href="https://engineering-leadership.hinshelwood.com/articles/there-is-no-such-thing-as-a-junior-scrum-master/"&gt;Scrum Master is is not a juniors or entry level&lt;/a&gt; activity. They should be experienced professionals with a deep understanding of the three masteries.&lt;/p&gt;
&lt;p&gt;While there are no absolute right answers, some answers are better than others. Scrum Masters should continuously seek to deepen their knowledge in all three mastery areas to best serve their teams and organisations.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>The Estimation Trap: How Tracking Accuracy Undermines Trust, Flow, and Value in Software Delivery</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/the-estimation-trap-how-tracking-accuracy-undermines-trust-flow-and-value-in-software-delivery/</link>
      <pubDate>Mon, 22 Sep 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/the-estimation-trap-how-tracking-accuracy-undermines-trust-flow-and-value-in-software-delivery/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Philosophy</category>
      <category>Product Development</category>
      <category>Leadership</category>
      <category>Engineering Excellence</category>
      <description>Focusing on estimation accuracy as a measure of predictability in software delivery undermines trust, distorts team behaviour, and delivers false signals about progress. When teams are judged on how closely they match estimates to actuals, they shift from solving problems to gaming metrics: padding estimates, avoiding risk, hiding delays, and reporting “green” status until last-minute failure. In one case, teams capped story size and sprint points to appear predictable, but innovation and quality deteriorated, while technical debt doubled. Research shows that using estimation accuracy as a KPI leads to defensive, less truthful forecasting and reduced efficiency. Instead of tracking compliance with estimates, organisations should follow Evidence-Based Management, using metrics like time to market, customer satisfaction, and flow efficiency to measure value, system health, and real outcomes. True progress comes when teams feel safe to expose complexity and risks, focusing on learning and value rather than conformity to plans.</description>
      <content:encoded>&lt;p&gt;In many software organisations, estimation accuracy is mistaken for predictability and control. Leadership asks teams to compare &lt;em&gt;original estimates&lt;/em&gt; to &lt;em&gt;actuals&lt;/em&gt; in hopes of improving forecasts. But this creates a false sense of certainty , one that undermines trust, distorts priorities, and derails delivery.&lt;/p&gt;

    
    

  
&lt;h2 id="when-the-metric-becomes-the-target"&gt;When the Metric Becomes the Target&lt;/h2&gt;
&lt;p&gt;Metrics are never neutral. Once teams are judged by how closely they meet estimated timelines or planned outputs, those metrics stop reflecting the truth. The more visible and enforced the target becomes, the more teams adapt, not to improve outcomes, but to survive the system. What follows is a cascade of distorted behaviours: silence replaces honesty, delivery becomes performance theatre, and metrics become tools of compliance rather than learning. The following patterns are not outliers; they are systemic symptoms of measurement misuse.&lt;/p&gt;


  
&lt;h3 id="malicious-compliance-when-teams-give-up-on-caring"&gt;Malicious Compliance: When Teams Give Up on Caring&lt;/h3&gt;
&lt;p&gt;When systems overemphasise compliance, teams don’t rebel; they comply. Maliciously. They log the hours. They meet the metrics. They do exactly what’s asked; but no more. They stop asking questions. They stop raising concerns. They stop caring.&lt;/p&gt;
&lt;p&gt;This kind of mechanical compliance doesn’t improve delivery; it undermines it. Developers fill in timesheets at the end of the week with whatever gets approved. They make up hours to satisfy reporting tools. What ends up in the system looks clean and green, but it’s fiction.&lt;/p&gt;
&lt;p&gt;And what gets lost is far worse: safety, curiosity, technical excellence, and any sense of pride in the outcome. A culture of malicious compliance breeds disengagement, risk blindness, and degraded quality. If you’re measuring in six-minute increments, you’re not managing for value. You’re auditing obedience.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="green-shifting-when-metrics-replace-truth"&gt;Green Shifting: When Metrics Replace Truth&lt;/h3&gt;
&lt;p&gt;Once metrics become the focus, honesty becomes optional. Teams under pressure to hit targets will show green status until the very moment they can’t hide red anymore. This phenomenon, sometimes called “green shifting,” isn’t a failure of individuals. It’s the predictable result of a system that rewards status optics over empirical feedback.&lt;/p&gt;
&lt;p&gt;When the dashboard matters more than the work, risk gets buried. Quality is sidelined. And problems that could’ve been solved early are deferred until they explode. This isn’t management; it’s theatre.&lt;/p&gt;


  
&lt;h3 id="fear-driven-delivery"&gt;Fear-Driven Delivery&lt;/h3&gt;
&lt;p&gt;When performance is judged by how closely estimates match actuals, teams shift into survival mode. Psychological safety evaporates. People stop flagging problems, bugs, and risks. It’s not due to apathy, but fear of missing the number. Defects get buried. Safety is deferred. Risk is hidden.&lt;/p&gt;
&lt;p&gt;The focus moves from building the right thing to defending the wrong metric.&lt;/p&gt;
&lt;p&gt;When you penalise unpredictability, you don’t get more predictability. You get fear, silence, and a culture optimised for hiding reality. This is how delivery becomes theatre.&lt;/p&gt;


  
&lt;h3 id="distorted-behaviours-and-false-success"&gt;Distorted Behaviours and False Success&lt;/h3&gt;
&lt;p&gt;Comparing estimates to actuals can be useful for learning, but when it becomes a performance metric, it changes behaviour. Teams are no longer incentivised to improve forecasting; they’re incentivised to &lt;em&gt;look predictable&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;What happens next is entirely predictable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Padding&lt;/strong&gt;: Teams inflate estimates to guarantee hitting the target.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In one large organisation, teams were told they could deliver no more than five points per story, and no more than 24 points per sprint. The result? Teams padded everything to hit exactly 24 points. Story sizes gravitated to five points regardless of complexity. Innovation vanished, curiosity died, and delivery became a game of maximising perceived output. They met the metric perfectly and completely undermined the point of estimation. This is what happens when the system is designed for optics, not outcomes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Risk aversion&lt;/strong&gt;: Complex and innovative work is avoided because it’s difficult to estimate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scope distortion&lt;/strong&gt;: Work is redefined midstream to match the estimate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;False success&lt;/strong&gt;: Projects finish “on time” and “on budget,” but deliver little value. Many organisations never validate whether the promised benefits were actually realised. One team might deliver a multimillion-dollar system, only for no one to ever measure its usage or customer impact. The project is declared a success, but no one checks if it made a difference. In some cases, even the most advanced organisations fall into this trap. The cost of not checking actual outcomes is hidden until it&amp;rsquo;s too late.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These aren’t edge cases; they’re rational adaptations to a distorted system. The result is a culture of compliance, not curiosity.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&lt;strong&gt;Thurlow’s Law of Metric Distortion&lt;/strong&gt;: “Any metric you measure will appear to improve in the short term. This doesn’t mean the system improved, only that people adjusted their behaviour to game the metric.”&lt;/p&gt;

  &lt;/blockquote&gt;



  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="the-system-learns-to-lie"&gt;The System Learns to Lie&lt;/h3&gt;
&lt;p&gt;This principle highlights a broader risk. Once teams realise they’re being judged on metric performance, they start optimising for appearances. They stop focusing on delivery, learning, and value. The metric becomes a distraction from what really matters. It reinforces behaviours that prioritise green dashboards over working software. This is how green shifting starts. Status reports stay green until the moment they can no longer hide the red. It’s not deceit. It’s self-preservation. In a system optimised for appearances, truth is delayed until failure is unavoidable. The focus shifts away from delivery, learning, and value.&lt;/p&gt;


  
&lt;h2 id="the-evidence-behind-the-trap"&gt;The Evidence Behind the Trap&lt;/h2&gt;
&lt;p&gt;Studies from Lederer &amp;amp; Prasad, Jørgensen, and others show that using estimation accuracy as an evaluation criterion strongly influences behaviour, and often negatively. When estimation accuracy becomes a KPI, it reshapes incentives across the system, often with unintended results. One experimental study (Lorko et al., 2022) found that when participants were rewarded solely for estimation accuracy, they systematically overestimated and deliberately slowed down to “finish on schedule.” The appearance of control was preserved, but efficiency was lost.&lt;/p&gt;
&lt;p&gt;Another study (Jørgensen &amp;amp; Grimstad, 2008) showed that people who knew they’d be judged on their estimates produced more biased and less realistic figures. They weren’t aiming for truth; they were aiming for safety.&lt;/p&gt;
&lt;p&gt;This is a textbook example of Goodhart’s Law. When a measure becomes a target, it stops being useful as a measure and starts driving the wrong behaviours.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&lt;strong&gt;Goodhart&amp;rsquo;s law:&lt;/strong&gt;  &amp;ldquo;Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes.&amp;rdquo;&lt;/p&gt;

  &lt;/blockquote&gt;



  
&lt;h3 id="trust-is-a-two-way-street"&gt;Trust Is a Two-Way Street&lt;/h3&gt;
&lt;p&gt;If you treat your engineers like they’re untrusted contractors who need to account for every six-minute increment, don’t be surprised when morale tanks. One developer put it bluntly: “If you’re going to track me like a machine, don’t expect me to act like an innovator.” Research shows employees who feel trusted are more engaged and productive. Conversely, heavy time tracking breeds a culture of micromanagement and mistrust. More than half of knowledge workers say time tracking actually prevents them from doing their best work. When people feel every minute is under a microscope, they’re less likely to ask questions or offer improvements. You’re starving your team of psychological safety, and with it, the conditions for innovation, quality, and honesty. When people are punished for missing estimates, they stop raising risks. They stop discussing trade-offs. Data becomes performative. The real work gets buried under ritual. The system becomes more predictable on paper, but more brittle in reality.&lt;/p&gt;


  
&lt;h3 id="bad-estimates-dont-make-you-a-bad-developer"&gt;Bad Estimates Don’t Make You a Bad Developer&lt;/h3&gt;
&lt;p&gt;Software development is creative problem-solving. No two tasks are truly alike. You can’t reliably predict how long it will take to untangle a thorny bug or integrate a library. Sometimes, a “quick” fix can turn into a two-day rabbit hole. So why beat people up when they miss an arbitrary prediction? Estimating in hours assumes everyone is equally experienced and works at a constant pace. They don’t. Pressuring developers to “improve” their guesses assumes effort and duration are predictable. In knowledge work, they’re not. It only creates stress and encourages padding or sandbagging. It’s a game with no winners.&lt;/p&gt;


  
&lt;h3 id="time-pressure-kills-quality"&gt;Time Pressure Kills Quality&lt;/h3&gt;
&lt;p&gt;When management’s only lever is the schedule, quality suffers. Tom DeMarco and Tim Lister, in &lt;em&gt;Peopleware&lt;/em&gt;, warn that unreachable deadlines force developers to cut corners: “Workers kept under extreme time pressure will begin to sacrifice quality… deliver products that are unstable and not really complete.” Lab studies back this up. Developers under tight time pressure work faster, not better, and quality drops. And when shortcuts pile up, the cost isn’t just bugs, it’s fragile systems, frustrated customers, and eroded trust.&lt;/p&gt;


  
&lt;h3 id="hours-worked-do-not-equal-value-delivered"&gt;Hours Worked Do Not Equal Value Delivered&lt;/h3&gt;
&lt;p&gt;Customers don’t buy effort, hours, or estimation accuracy. They buy working software that solves their problems. A day spent cleaning up architecture might look unproductive on a timesheet, but it delivers enormous long-term value. Optimising for logged time only encourages burnout, presenteeism, and a celebration of busyness over outcomes.&lt;/p&gt;
&lt;p&gt;Metrics like velocity or hours measure output, but they don’t measure the value customers care about. It’s better to track what matters: how frequently you can deliver features, how quickly you recover from failures, and whether you’re improving the user experience. These metrics help track how fast you’re learning (Time to Market), how much waste exists in your delivery process (Ability to Innovate), and whether users are sticking around and benefiting from what you’ve delivered (Current Value).&lt;/p&gt;


  
&lt;h2 id="what-to-do-instead"&gt;What to Do Instead&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re serious about improving delivery outcomes, stop obsessing over time. Time-based metrics show what happened, not what mattered. They miss the nuance of complexity, cognition, and asynchronous problem-solving. When you treat delivery like stopwatch management, you reward appearances over insight.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Evidence-Based Management (EBM)&lt;/strong&gt; is a way of managing with data that reflects actual outcomes and system capability. It helps leaders move beyond speculation by focusing on what is observable and valuable.&lt;/p&gt;
&lt;p&gt;Good decisions start with real data, not guesses. EBM helps teams and leaders focus on what actually delivers value, not what was forecast, promised, or imagined.&lt;/p&gt;
&lt;p&gt;In large-scale systems, direct customer contact is rare. That makes feedback loops even more critical. We must rely on proxy signals like usage trends, satisfaction scores, defect trends, and change failure rates to know if we&amp;rsquo;re on track. Not every team needs direct access to the customer, but every team needs access to evidence that what they shipped is working.&lt;/p&gt;
&lt;p&gt;EBM encourages decisions based on what is actually happening, rather than what was &lt;em&gt;predicted&lt;/em&gt;. Forecasts can support decision-making, but only when used transparently to explore assumptions, not when turned into compliance targets. When forecast accuracy becomes a performance metric, it violates empiricism by rewarding appearances rather than actual outcomes.&lt;/p&gt;
&lt;p&gt;Leadership must create transparency around outcomes, not intentions. This means embracing metrics that reflect customer value, system health, and delivery capability, even when they challenge the status quo.&lt;/p&gt;
&lt;p&gt;Let’s be clear: in complex, knowledge-based work, there is no meaningful diagnostic value in “estimate vs actual.” Take, for example, a cross-functional team building an internal developer platform. In the first quarter, leadership tracked the estimated vs actual across epics to improve forecasting. Developers quickly learned to overestimate tasks, avoided exploratory work, and padded estimates to match targets. The numbers looked better, but progress slowed, innovation stalled, and valuable refactoring work vanished from the backlog. By the time leadership realised the disconnect, technical debt had doubled. The team hadn’t become more predictable; it had simply become more cautious and less effective. This is the cost of measuring the wrong thing. It leads to the wrong conclusions.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&amp;ldquo;Estimate vs actual measures the work, but the waste lives in the gaps , the wait, the handoff, the delay. So you&amp;rsquo;re optimising the wrong thing.&amp;rdquo;
- Nigel Thurlow&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;This is a clear example of Systems Thinking, as outlined in The Flow System (Thurlow et al., 2020). The true constraint rarely lies in the task. It lies in the system: the queues, context switching, blocked dependencies, or fragmented communication paths that hinder the delivery of value. In most cases, the constraint lies in the workflow, rather than in the functions themselves.&lt;/p&gt;
&lt;p&gt;Even when used &amp;ldquo;diagnostically&amp;rdquo;, estimate vs actual as a metric misleads:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It ignores queues, rework, and dependencies, which are often the actual sources of delay. Lean thinking teaches us that to improve flow we must visualise queues, limit work in progress (WIP), and actively manage handoffs; none of which are addressed by focusing on task-level estimate variance.&lt;/li&gt;
&lt;li&gt;It reinforces the illusion that better estimation leads to better outcomes.&lt;/li&gt;
&lt;li&gt;It promotes local optimisation over systemic improvement.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A reminder of &lt;strong&gt;Thurlow’s Principle of Estimation Distortion&lt;/strong&gt; above!&lt;/p&gt;


  
&lt;h3 id="a-better-path-forward-with-evidence-based-management"&gt;A Better Path Forward with Evidence-Based Management&lt;/h3&gt;
&lt;p&gt;EBM organises improvement around four Key Value Areas (KVAs):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Current Value&lt;/strong&gt; - Are We Delivering Value to Customers and Stakeholders Today?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unrealised Value&lt;/strong&gt; - What additional value could we deliver in the future?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time to Market&lt;/strong&gt; - How quickly can we learn, respond, and deliver?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ability to Innovate&lt;/strong&gt; - How effectively can we change and adapt the product?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The metrics we use should support these questions, not distract from them. Here&amp;rsquo;s how EBM-oriented alternatives compare:&lt;/p&gt;





&lt;table class="table table-striped table-bordered"&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Instead of&amp;hellip;&lt;/th&gt;
					&lt;th&gt;Try&amp;hellip;&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Estimate vs Actual&lt;/td&gt;
					&lt;td&gt;End-to-end lead time from commitment to usable customer delivery (&lt;em&gt;Time to Market&lt;/em&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Story points completed&lt;/td&gt;
					&lt;td&gt;Customer satisfaction (&lt;em&gt;Current Value&lt;/em&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;On-time delivery rate&lt;/td&gt;
					&lt;td&gt;Quality Trends, or % of effort on new vs sustaining work (&lt;em&gt;Ability to Innovate&lt;/em&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Headcount-based planning&lt;/td&gt;
					&lt;td&gt;Opportunity backlog delta (&lt;em&gt;Unrealised Value&lt;/em&gt;)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;







  &lt;div class="alert alert-warning subtle-alert" role="alert"&gt;
    
      &lt;h5 class="alert-heading subtle-heading"&gt;
        ⚠️
        Warning
      &lt;/h5&gt;
    
    &lt;p class="subtle-text"&gt;&lt;p&gt;Time-based metrics must be contextualised. Without insight into value, complexity, and customer outcomes, they risk becoming another distorted proxy.&lt;/p&gt;&lt;/p&gt;
  &lt;/div&gt;

&lt;p&gt;To understand and improve delivery, stop obsessing over how close your guesses were. Instead, measure how your system behaves across the value stream and under varying flow loads. EBM encourages the use of actionable, outcome-aligned metrics that reflect actual system health, rather than projected compliance.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cycle time trends&lt;/strong&gt; can reveal delivery latency across the value stream, but must be interpreted with caution. Without understanding the nature and complexity of the work, as well as its value, these trends are just noise. Measure flow to inspect how the system behaves, not how long individual items take.





  &lt;div class="alert alert-info subtle-alert" role="alert"&gt;
    
      &lt;h5 class="alert-heading subtle-heading"&gt;
        ℹ️
        Note
      &lt;/h5&gt;
    
    &lt;p class="subtle-text"&gt;&lt;p&gt;Cycle time only tracks how long one piece of work took. It says nothing about what the customer waited for or whether the system is flowing well. Lead time tells you how long the customer waits, starting from the moment a request is made until they receive something usable. Always measure from the outside in.&lt;/p&gt;&lt;/p&gt;
  &lt;/div&gt;

&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Work item ageing&lt;/strong&gt; reveals stuck or neglected work, or requirements that were added and then discarded.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow efficiency&lt;/strong&gt; indicates the proportion of total time spent progressing work versus waiting. It’s a measure of delay, not value. But beware: systems often mask latency by moving queued work into “in progress” prematurely. High flow efficiency with unchanged lead time may signal gaming.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Throughput variance&lt;/strong&gt; only tells you something if your work items are roughly the same size. If not, throughput becomes noise. Teams that right-size work can use this as a stability signal. Otherwise, avoid using it as an indicator of performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you must discuss estimates, use them to explore assumptions and complexity, not to evaluate people. The ultimate goal is to deliver meaningful outcomes to customers. That requires embracing uncertainty, surfacing impediments, and improving system capability. The aim is not to enforce forecast compliance. Value lies in understanding, not accuracy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;De-emphasise &amp;rsquo;estimate vs actual&amp;rsquo; entirely&lt;/strong&gt;. It is a false signal in complex domains.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reward flow mastery, not forecasting tricks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Focus on learning, adaptability, and real customer outcomes.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estimation should support informed conversations about uncertainty. It should not become a tool used to force predictability.&lt;/p&gt;


  
&lt;h3 id="quantitative-vs-qualitative"&gt;Quantitative vs Qualitative&lt;/h3&gt;
&lt;p&gt;Most metrics in delivery are quantitative, including lead time, flow efficiency, and throughput. But numbers don’t tell the whole story. If you want to know whether you’re building the right thing, you need qualitative feedback: real customer conversations, issue sentiment, satisfaction narratives, and behavioural observations.&lt;/p&gt;
&lt;p&gt;Quantitative data tells you &lt;strong&gt;what&lt;/strong&gt; happened. Qualitative insight helps you understand &lt;strong&gt;why&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;No chart or trendline can replace a conversation with a frustrated user or a support ticket that describes unmet needs. The most resilient teams blend data with dialogue, metrics with meaning.&lt;/p&gt;


  
&lt;h3 id="radical-candour-have-the-courage-to-stop"&gt;Radical Candour: Have the Courage to Stop&lt;/h3&gt;
&lt;p&gt;This isn’t about shielding teams from accountability. It’s about holding ourselves accountable to a higher standard of leadership. Framing time estimate accuracy as a condition for trust is a failure of leadership. It signals a lack of psychological safety and a misunderstanding of how complex work unfolds. True leadership fosters environments where learning is safe, discovery is encouraged, and performance is judged by value, not conformity to expectations. It’s not helping them grow; it’s punishing them for unpredictability inherent in complex work. Radical candour means caring personally and challenging directly. The challenge here is to stop clinging to false certainty and instead focus on the outcomes that matter for your business and your customers.&lt;/p&gt;
&lt;p&gt;Don’t replace one flawed proxy with another. Metrics like cycle time, throughput, or flow efficiency are helpful, but only as part of a broader conversation about value, quality, and improvement. Alone, they tell you nothing about whether you’re solving the correct problems or improving customer outcomes. Consider adopting Evidence-Based Management and DORA to shift focus toward empiricism and value flow across the organisation. Talk with your team about impediments and improvements rather than the hours they logged. When you remove the spotlight from the clock, you’ll find your people deliver better software, enjoy their work more, and build trust along the way.&lt;/p&gt;


  
&lt;h2 id="in-summary"&gt;In Summary&lt;/h2&gt;
&lt;p&gt;The Estimation Trap appears to be a process improvement effort. But underneath it creates a fear-based culture that rewards gaming and punishes uncertainty. It distorts delivery and kills innovation in the name of control.&lt;/p&gt;
&lt;p&gt;All quantitative measures can do, is inform of system &lt;em&gt;efficiency&lt;/em&gt;. They cannot inform of system &lt;em&gt;effectiveness&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;Instead of asking, “Why didn’t we match our original estimate?” ask, “What did we learn, how did we adapt, and are we improving the outcomes that matter?”&lt;/p&gt;
&lt;p&gt;Real progress starts when people feel safe enough to tell the truth about complexity, risk, and what it actually takes to deliver. That’s the objective measure of a team delivering meaningful outcomes, improving their system, and creating value for customers.&lt;/p&gt;
&lt;hr&gt;


  
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.theflowsystem.com" target="_blank" rel="external noopener noreferrer"&gt;Thurlow, Nigel; Turner, Brian Rivera; Helm, John.  &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;em&gt;&lt;a href="https://www.theflowsystem.com" target="_blank" rel="external noopener noreferrer"&gt;The Flow System: The Evolution of Agile and Lean Thinking in an Age of Complexity &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/em&gt;&lt;a href="https://www.theflowsystem.com" target="_blank" rel="external noopener noreferrer"&gt; (2020) &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://doi.org/10.1111/j.1540-5915.1998.tb01356.x" target="_blank" rel="external noopener noreferrer"&gt;Lederer &amp;amp; Prasad (1998). &amp;ldquo;A causal model for software cost estimating error&amp;rdquo; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4213670" target="_blank" rel="external noopener noreferrer"&gt;Lorko et al. (2022). &amp;ldquo;Hidden Inefficiency: Strategic Inflation of Project Schedules&amp;rdquo; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sciencedirect.com/science/article/abs/pii/S0950584908000852" target="_blank" rel="external noopener noreferrer"&gt;Jørgensen &amp;amp; Grimstad (2008). &amp;ldquo;The impact of irrelevant and misleading information on software development effort estimates&amp;rdquo; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sciencedirect.com/science/article/pii/S0164121203000581" target="_blank" rel="external noopener noreferrer"&gt;Jørgensen (2004). &amp;ldquo;A review of studies on expert estimation of software development effort&amp;rdquo; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pubsonline.informs.org/doi/abs/10.1287/mnsc.45.8.1104" target="_blank" rel="external noopener noreferrer"&gt;Abdel-Hamid et al. (1999). &amp;ldquo;The dynamics of software project performance&amp;rdquo; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.runn.io/blog/peopleware-book-summary" target="_blank" rel="external noopener noreferrer"&gt;Peopleware Book Summary &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC7810279/" target="_blank" rel="external noopener noreferrer"&gt;Impact of time pressure on software quality &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://we360ai.medium.com/why-managers-should-focus-on-outcomes-not-hours-and-how-to-do-it-bcde6625693e" target="_blank" rel="external noopener noreferrer"&gt;Why Managers Should Focus on Outcomes, Not Hours &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://itrevolution.com/products/accelerate" target="_blank" rel="external noopener noreferrer"&gt;Accelerate: The Science of Lean Software and DevOps (Forsgren, Humble, Kim) &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://queue.acm.org/detail.cfm?id=3454124" target="_blank" rel="external noopener noreferrer"&gt;SPACE Framework Whitepaper (GitHub) &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.easyagile.com/blog/why-leading-agile-teams-focus-on-customer-value" target="_blank" rel="external noopener noreferrer"&gt;Why Leading Agile Teams Focus on Customer Value &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Why Handoffs Are Killing Your Agility</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/why-handoffs-are-killing-your-agility/</link>
      <pubDate>Mon, 13 Jan 2025 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/why-handoffs-are-killing-your-agility/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Product Development</category>
      <category>Engineering Excellence</category>
      <category>Lean</category>
      <description>Handoffs between siloed teams in software development destroy agility by introducing waste, increasing cycle time, and reducing quality. Each handoff creates delays, causes loss of context, boosts work in progress, and leads to rework, while also eroding team morale and a sense of purpose. These costs compound to undermine your ability to deliver value quickly and sustainably. True agility requires eliminating handoffs by building cross-functional teams, adopting test-first and continuous delivery practices, minimising work in progress, and continuously removing unnecessary rules. Every handoff is an opportunity for waste; removing them lets teams focus on value and thrive.</description>
      <content:encoded>&lt;p&gt;Many organisations attempt to adopt &lt;a href="https://engineering-leadership.hinshelwood.com/categories/lean/"&gt;Lean&lt;/a&gt; practices without fully understanding their implications in &lt;a href="https://engineering-leadership.hinshelwood.com/tags/software-development/"&gt;software development&lt;/a&gt;. This often leads to excessive handoffs, which fragment communication and reduce agility.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the kicker: handoffs are &lt;em&gt;not&lt;/em&gt; Lean, Agile, or &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt;. They are an anti-pattern that introduces waste, increases &lt;a href="https://engineering-leadership.hinshelwood.com/tags/cycle-time/"&gt;cycle time&lt;/a&gt;, and makes collaboration difficult.&lt;/p&gt;

    
    

  
&lt;h3 id="tldr"&gt;TL;DR&lt;/h3&gt;
&lt;p&gt;Handoffs are a silent killer in software development. They create inefficiencies, reduce quality, and destroy agility. If your organisation is still riddled with handoffs between siloed teams, you are doing it wrong. Embrace cross-functional teams, optimise for flow, and maintain organisational hygiene to ensure only the minimal set of rules and alignments needed to deliver value effectively. Together, these practices protect your ability to focus on creating value.&lt;/p&gt;


  
&lt;h3 id="what-are-handoffs"&gt;What Are Handoffs?&lt;/h3&gt;
&lt;p&gt;Handoffs occur when one team or individual completes a task and passes it to another team for further work. Examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Developers handing off features to testers.&lt;/li&gt;
&lt;li&gt;Testers handing off validated features to operations.&lt;/li&gt;
&lt;li&gt;Business analysts tossing requirements over the fence to developers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each of these transitions is a point of failure, introducing delays, miscommunication, and opportunities for rework.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="the-hidden-costs-of-handoffs"&gt;The Hidden Costs of Handoffs&lt;/h3&gt;
&lt;p&gt;Handoffs come with a plethora of hidden costs that undermine agility and efficiency. Compounding these challenges is the build-up of organisational cruft, rules and processes that outlive their usefulness. This cruft can further slow progress and obscure &lt;a href="https://engineering-leadership.hinshelwood.com/tags/value-delivery/"&gt;value delivery&lt;/a&gt;. Each of these costs impacts not only the immediate work but also the organisation&amp;rsquo;s ability to deliver value quickly and sustainably.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Loss of Context&lt;/strong&gt;: Valuable information is lost when tasks move from one team to another. Teams waste time trying to re-establish the original intent. Moreover, the cost of context switching exacerbates this issue. When questions arise that cannot be answered immediately, team members often feel compelled to start new tasks, increasing work in progress (WIP) which in turn increases cycle time. This leads to further delays and amplifies the loss of context, making it even harder to regain clarity and focus on the original work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Increased Cycle Time&lt;/strong&gt;: Every handoff introduces a delay, pushing your delivery timelines further out. This delay often stems from an increase in batch size as teams attempt to locally optimise for handoffs, which ironically leads to even longer cycle times. Larger batch sizes also bring significantly higher risk, as larger changes are more prone to defects and harder to integrate.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Reduced Quality&lt;/strong&gt;: Misunderstandings and lack of accountability often lead to defects and lower overall product quality. The increase in cycle time and the loss of context also contribute to growing &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt;, making it much harder to identify and fix bugs in larger deployments. This, in turn, further degrades the overall quality and increases the risk of failures in production.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Decreased Morale&lt;/strong&gt;: Team members stuck in silos feel disconnected from the bigger picture, leading to frustration and burnout. This disconnect erodes their sense of &lt;strong&gt;purpose&lt;/strong&gt;, a critical element in achieving &amp;ldquo;autonomy, mastery, and purpose&amp;rdquo; as described in Daniel Pink&amp;rsquo;s &lt;em&gt;Drive&lt;/em&gt;. Without a clear connection to the end-to-end delivery of value, team members lose motivation and struggle to see the impact of their work.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Together, these hidden costs act as multipliers, compounding each other and magnifying the negative impact on your organisation&amp;rsquo;s ability to deliver high-quality software efficiently. Addressing one cost often reduces others, making it crucial to tackle these issues holistically.&lt;/p&gt;


  
&lt;h3 id="why-do-handoffs-persist"&gt;Why Do Handoffs Persist?&lt;/h3&gt;
&lt;p&gt;Handoffs are a symptom of functional silos. Organisations that structure themselves by discipline (e.g., separate teams for development, testing, and operations) create natural barriers to collaboration. This approach is a holdover from the &amp;ldquo;Scientific Management Method&amp;rdquo; developed during the Industrial Revolution when workers were mechanised to optimise for narrow, repetitive tasks rather than holistic, value-driven outcomes. Even well-meaning attempts to implement Agile often retain these silos, resulting in what I like to call &amp;ldquo;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/hybrid-agile/"&gt;hybrid Agile&lt;/a&gt;&amp;rdquo; , a mismatched combination of Agile practices and traditional command-and-control management. This ineffective blend perpetuates the very silos and inefficiencies that Agile aims to eliminate.&lt;/p&gt;


  
&lt;h2 id="the-solution-eliminate-handoffs"&gt;The Solution: Eliminate Handoffs&lt;/h2&gt;
&lt;p&gt;Eliminating handoffs requires a mix of modern &lt;a href="https://engineering-leadership.hinshelwood.com/tags/engineering-practices/"&gt;engineering practices&lt;/a&gt; and a commitment to automation. By automating repetitive tasks and adopting strategies like &amp;ldquo;testing in production,&amp;rdquo; organisations can significantly reduce the friction and delays associated with traditional handoffs. This approach enables faster feedback loops, improved quality, and a seamless delivery pipeline.&lt;/p&gt;
&lt;p&gt;To achieve true agility, a focus on eliminating handoffs is necessary by implementing cross-functional teams and optimising flow. Here&amp;rsquo;s how:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create Cross-Functional Teams&lt;/strong&gt; - Bring together individuals with all the skills needed to deliver end-to-end value. A cross-functional team might include developers, testers, designers, and operations personnel working collaboratively towards a shared goal. No sub-teams. No silos.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; Co-locate teams in timezones and use &lt;a href="https://engineering-leadership.hinshelwood.com/tags/collaboration-tools/"&gt;collaboration tools&lt;/a&gt; like Microsoft Teams or Slack to ensure seamless communication.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Adopt &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;Continuous Delivery&lt;/a&gt; Practices&lt;/strong&gt; - Automation is a cornerstone of Continuous Delivery (CD). By integrating &lt;a href="https://engineering-leadership.hinshelwood.com/tags/automated-testing/"&gt;automated testing&lt;/a&gt;, deployment, and monitoring into your pipeline, you ensure quality at every step while reducing manual intervention. Moving towards &amp;ldquo;testing in production&amp;rdquo; becomes a natural evolution of this strategy, allowing teams to gather real-world feedback quickly and address issues proactively.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Continuous Delivery (CD) eliminates the need for separate testing or deployment phases. Build pipelines that automatically validate and deploy changes, ensuring quality at every step.&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Leverage Test-First Development&lt;/strong&gt; - Adopt Test-Driven Development (TDD), Behaviour-Driven Development (BDD), or Acceptance Test-Driven Development (ATDD). Writing tests first ensures clarity and reduces rework, as discussed in &lt;a href="https://nkdagility.com/blog/you-are-doing-it-wrong-if-you-are-not-using-test-first/" target="_blank" rel="external noopener noreferrer"&gt;You are doing it wrong if you are not using test first &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Minimise Work in Progress (WIP)&lt;/strong&gt; - Limit WIP to reduce context switching and improve focus. A lower WIP means fewer handoffs and faster delivery cycles.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Invest in Collaborative Refinement&lt;/strong&gt; - &lt;a href="https://engineering-leadership.hinshelwood.com/tags/backlog-refinement/"&gt;Backlog refinement&lt;/a&gt; should be a team sport. The entire &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; Team , including the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-owner/"&gt;Product Owner&lt;/a&gt; and Developers , must collaborate to clarify and break down work items. See more in &lt;a href="https://nkdagility.com/blog/if-your-backlog-is-not-refined-then-you-are-doing-it-wrong/" target="_blank" rel="external noopener noreferrer"&gt;If your backlog is not refined then you are doing it wrong &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Shift Left and Own It&lt;/strong&gt; - All of these practices contribute to a &amp;ldquo;shift left&amp;rdquo; strategy, where quality, security, and deployment considerations are addressed earlier in the development lifecycle. Ultimately, the team that creates a feature should also own it in production, including gathering and acting on feedback. This end-to-end ownership fosters accountability, ensures quicker feedback loops, and allows teams to continuously improve based on real-world usage.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Organisations inevitably accumulate cruft, unnecessary rules, outdated processes, and misaligned practices. These accumulate quietly over time and, if left unchecked, undermine agility and the ability to focus on value creation. To combat this, periodic acts of organisational hygiene are essential. These involve critically assessing and removing unnecessary constraints, ensuring the organisation maintains only the minimal set of rules and alignment required to deliver value effectively. When combined with a shift-left approach and a relentless focus on flow, these practices help organisations stay lean, adaptive, and aligned with their goals.&lt;/p&gt;
&lt;p&gt;Handoffs might seem inevitable in large organisations, but they are a choice. By reorganising your teams, adopting modern engineering practices, and embracing a Lean-Agile mindset, you can minimise handoffs and unlock true agility.&lt;/p&gt;
&lt;p&gt;Remember: every handoff is an opportunity for waste. Eliminate them, and watch your teams thrive.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Daniel Pink, &lt;em&gt;Drive: The Surprising Truth About What Motivates Us&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;The 2020 Scrum Guide - &lt;a href="https://scrum.org/" target="_blank" rel="external noopener noreferrer"&gt;Scrum.org &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Martin Hinshelwood, &lt;em&gt;You are doing it wrong if you are not using test first&lt;/em&gt; - &lt;a href="https://nkdagility.com/blog/you-are-doing-it-wrong-if-you-are-not-using-test-first/" target="_blank" rel="external noopener noreferrer"&gt;NKD Agility &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Martin Hinshelwood, &lt;em&gt;If your backlog is not refined then you are doing it wrong&lt;/em&gt; - &lt;a href="https://nkdagility.com/blog/if-your-backlog-is-not-refined-then-you-are-doing-it-wrong/" target="_blank" rel="external noopener noreferrer"&gt;NKD Agility &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The Agile Manifesto - &lt;a href="https://agilemanifesto.org/" target="_blank" rel="external noopener noreferrer"&gt;AgileManifesto.org &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Don Reinertsen, &lt;em&gt;Principles of &lt;a href="https://engineering-leadership.hinshelwood.com/categories/product-development/"&gt;Product Development&lt;/a&gt; Flow&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;What challenges has your team faced in eliminating handoffs?&lt;/strong&gt; &lt;em&gt;Share your experiences and thoughts in the comments below.&lt;/em&gt; Let’s start a conversation about how we can all build better, faster, and more collaborative teams!&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Flow of Value vs Flow of Work – Misnomer or Useful Shorthand?</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/flow-of-value-vs-flow-of-work/</link>
      <pubDate>Mon, 15 Sep 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/flow-of-value-vs-flow-of-work/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Ethos</category>
      <category>Product Development</category>
      <category>Kanban</category>
      <category>Engineering Excellence</category>
      <description>In software development, the idea of “flow of value” should not be taken as a given; value is only realised once customers validate that a product improves their situation. Most work in knowledge systems, such as new features, represents potential value—untested hypotheses rather than sure outcomes. Equating work completed or features shipped with value delivered can lead to wasted effort and loss of accountability, such as shipping large batches without telemetry or validation. Instead, every work item should have a clear, testable hypothesis, and teams must focus on rapid feedback, observability, and outcome validation—for example, by attaching metrics or acceptance criteria to each card and emphasising trunk-based development. Without systems designed for evidence and learning, teams risk flowing only assumptions rather than true value.</description>
      <content:encoded>
    
    

  
&lt;h1 id="flow-of-value-vs-flow-of-work-misnomer-or-useful-shorthand"&gt;Flow of value vs. flow of work: misnomer or useful shorthand?&lt;/h1&gt;
&lt;p&gt;The Kanban Guide frames Kanban as a strategy to optimise the flow of value through a system. That phrase, “flow of value,” has helped teams shift from managing task queues to pursuing outcomes. But it can also obscure the truth.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Does value actually flow? Or is it just work that moves?&lt;/em&gt;&lt;/p&gt;


  
&lt;h2 id="value-is-not-a-mystical-force"&gt;Value is not a mystical force.&lt;/h2&gt;
&lt;p&gt;Value is validated by the customer. Never before. Until the customer confirms it solved a problem, improved their life, or moved a meaningful metric, it’s just work. Calling it “flow of value” without qualification is misleading.&lt;/p&gt;
&lt;p&gt;In knowledge work, such as software development, services, and product discovery, most of what flows through the system is hypotheses, not guarantees. Assuming WIP equals value encourages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Closing tickets before a release&lt;/li&gt;
&lt;li&gt;Shipping features with no telemetry&lt;/li&gt;
&lt;li&gt;Pushing large batches through based on stakeholder opinion&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It hides waste and sidesteps accountability.&lt;/p&gt;
&lt;p&gt;The Kanban Guide helps by pointing to &lt;em&gt;potential&lt;/em&gt; value. Work items are bets, nothing more. Managing flow well means reducing the time it takes to validate whether those bets pay off.&lt;/p&gt;
&lt;p&gt;Scrum reinforces this by focusing on maximising the potential for value, not assuming it. That is why empirical control exists: transparency, inspection, and adaptation. There is no inspection without delivery to the customer.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="why-the-manufacturing-metaphor-fails"&gt;Why the manufacturing metaphor fails&lt;/h2&gt;
&lt;p&gt;In manufacturing, value accumulates visibly. Raw material becomes a part. A part becomes a product. Waste is obvious. In knowledge work, it’s invisible. We’re not assembling. We’re exploring.&lt;/p&gt;
&lt;p&gt;You don’t know if something is valuable until it’s in the hands of users. That is why “flow of value” only makes sense in hindsight. Day-to-day, you’re managing the flow of &lt;em&gt;potential&lt;/em&gt; value.&lt;/p&gt;
&lt;p&gt;Finishing a feature doesn’t deliver value. It creates the &lt;em&gt;possibility&lt;/em&gt; of value. If no one uses it, or it solves the wrong problem, it’s a waste. Intent is not impact. That is why systems of work must optimise for learning, not motion.&lt;/p&gt;
&lt;p&gt;Unfinished work delivers no value. It clogs the flow and delays feedback. Measuring WIP, lead time, and cycle time isn’t micro-management. It is how we ensure we’re learning fast enough.&lt;/p&gt;


  
&lt;h2 id="useful-shorthand-with-context"&gt;Useful shorthand with context&lt;/h2&gt;
&lt;p&gt;“Flow of value” is not a declaration of certainty. It is deliberate shorthand for the pursuit of work believed to be valuable. That belief isn’t enough. You need to make intent visible, validate early, and cut what doesn’t deliver. This means building systems where each item has a purpose. Why does it matter? How will we know? If those questions can’t be answered, it’s just noise.&lt;/p&gt;
&lt;p&gt;Value isn’t defined at deployment. It begins with a hypothesis and ends with validation. Efficient delivery pipelines mean nothing if they’re optimising junk. Observability is how you fix that. Define start and end points. Limit WIP. Measure time to feedback.&lt;/p&gt;
&lt;p&gt;Attach outcomes to cards. Acceptance criteria. OKRs. Usage metrics. Use SLEs to forecast the time to learning. In DevOps terms, version everything, automate validation, monitor behaviour, use feature flags, and ship small. Then measure. Learn. Adapt.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;If your system isn’t designed to validate outcomes, it isn’t flowing value. It is flowing assumptions.&lt;/em&gt;&lt;/p&gt;


  
&lt;h2 id="radical-candour-stop-lying-to-yourselves"&gt;Radical candour: stop lying to yourselves&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re calling every backlog item “value” and measuring success by throughput alone, you&amp;rsquo;re lying to yourself. You&amp;rsquo;re accountable for maximising product value, not just moving work.&lt;/p&gt;
&lt;p&gt;Kill unvalidated work. Break big bets into small, testable increments. Use data to kill features that fail. Stop equating motion with impact.&lt;/p&gt;
&lt;p&gt;Every item should have a testable hypothesis. Every workflow should surface whether it was delivered. Use flow metrics to measure time to feedback. Run forecasts, but act on what you learn. And stop promoting through environment-linked branches. It’s a waste. Move to trunk-based flow. Ship fast. Learn fast.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="2" data-ga-param-position="6" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;“Flow of value” is not free. It’s not automatic. And it’s not a slogan.&lt;/p&gt;
&lt;p&gt;It’s a claim. Claims require evidence.&lt;/p&gt;
&lt;p&gt;Used lazily, it breeds complacency. Used rigorously, it drives alignment, urgency, and focus. That is the difference between being busy and being valuable.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Hiring a Professional Scrum Master</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/hiring-a-professional-scrum-master/</link>
      <pubDate>Mon, 15 Mar 2021 14:11:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/hiring-a-professional-scrum-master/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Accountability</category>
      <category>Scrum</category>
      <category>Technical Leadership</category>
      <category>Leadership</category>
      <description>Hiring a Scrum Master is particularly challenging, as the role covers accountability for the Scrum Team's effectiveness by bridging business insight, technical understanding, and team coaching. Certification like PSM I or II is helpful as a minimum bar, but true competence shows in a candidate's proven leadership, skill in servant leadership, facilitation, and supporting team maturity at a sustainable pace. The Scrum Master is tasked with removing impediments, ensuring productive Scrum events, and fostering a safe, trust-based environment. For software teams, knowledge of Agile techniques like Continuous Integration and Automated Testing is valuable. A successful Scrum Master leads to reliable delivery, continuous improvement, and a self-sustaining, happy team.</description>
      <content:encoded>&lt;p&gt;One of my customers is hiring for the &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; Master Role and asked if I had a handy-dandy &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-master/"&gt;Scrum Master&lt;/a&gt; Job Spec that they could use. I did not, but there have been a few good ones floating around in the ether so I thought that pulling one together would be a good idea anyway. Here is my best effort to use the existing job postings, and combine them with the latest version of the Scrum Guide.&lt;/p&gt;
&lt;figure&gt;&#13;
![](images/Wide-screen-scrum-master-1280x720-2-2.jpg)&#13;
{ .post-img }&#13;
&lt;figcaption&gt;[Professional Scrum](/tags/professional-scrum/) Master&lt;/figcaption&gt;&lt;/figure&gt;&#13;

    
    

  
&lt;h2 id="hiring-a-professional-scrum-master"&gt;Hiring a Professional Scrum Master&lt;/h2&gt;
&lt;p&gt;The Scrum Master is a challenging position to hire for and finding the right person is even more difficult. Ultimately the Scrum Master is accountable for the effectiveness of the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Team&lt;/a&gt;. That means that they need to have some level of knowledge of both the relevant business domain to help the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-owner/"&gt;Product Owner&lt;/a&gt;, as well as enough technical knowledge to help the Scrum Team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/articles/are-technical-skills-required-to-be-a-scrum-master/"&gt;Are technical skills required to be a Scrum Master?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While there is no need for a Scrum Master to be technical, they do need to understand what effective looks like within the product and the technical domain within which you are creating the product. Ultimately it&amp;rsquo;s worth remembering that certification is not an indication of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/competence/"&gt;competence&lt;/a&gt;, but may be used as a simple bar to reduce the load on interviews and assert a minimum level of knowledge. At $200 for a PSM I assessment and $250 for the PSM II assessment, and with a reputation in the industry of not being totally easy, these are a no-brainer for any aspiring or experienced Scrum Master. At the time of writing there are more than &lt;a href="https://www.scrum.org/professional-scrum-certifications/count" target="_blank" rel="external noopener noreferrer"&gt;350k people with PSM I and 11k people with PSM II &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image-1-1-1.png" class="post-img-link" data-toggle="lightbox"&gt;
  &lt;img src="images/image-1-1-1.png" loading="lazy" alt="Hiring a Professional Scrum Master" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;


  
&lt;h2 id="a-scrum-master-job-spec"&gt;A Scrum Master Job Spec&lt;/h2&gt;
&lt;p&gt;The Scrum Master is accountable for establishing Scrum as defined in the Scrum Guide. They do this by helping everyone understand Scrum theory and practice, both within the Scrum Team and the organization. The Scrum Master is accountable for the Scrum Team’s effectiveness. They do this by enabling the Scrum Team to improve its practices, within the Scrum framework. Scrum Masters are true leaders who serve the Scrum Team and the larger organization.&lt;/p&gt;


  
&lt;h3 id="role-summary"&gt;Role Summary&lt;/h3&gt;
&lt;p&gt;This Scrum Master position is a &lt;a href="https://engineering-leadership.hinshelwood.com/categories/leadership/"&gt;leadership&lt;/a&gt; role that is accountable for the effectiveness of the Scrum Team by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Leading, training, and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/coaching/"&gt;coaching&lt;/a&gt; the organization in its Scrum adoption;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Helping establish empirical product planning for a complex environment;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Helping find techniques for effective Product Goal definition and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-backlog/"&gt;Product Backlog&lt;/a&gt; management;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Coaching the team members in self-management and cross-functionality;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Helping the Scrum Team focus on creating high-value Increments that meet the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt;;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Causing the removal of impediments to the Scrum Team’s progress;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensuring that all Scrum events take place and are positive, productive, and kept within the timebox.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Planning and advising Scrum implementations within the organization;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Helping employees and stakeholders understand and enact an empirical approach for complex work;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Removing barriers between stakeholders and Scrum Teams.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Should work to build a trusting and safe environment where problems can be raised without fear of blame, retribution, or being judged, with an emphasis of healing and problem-solving.&lt;/p&gt;


  
&lt;h3 id="role-requirements"&gt;Role Requirements&lt;/h3&gt;
&lt;p&gt;The successful candidate must have the following attributes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;First level Scrum Master certification (PSM I, CSM, RSM)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Excellent Leadership skills;&lt;/strong&gt; with a proven track record of assessing the Scrum Maturity of the team and organization and coaching the team to higher levels of maturity, at a pace that is sustainable and comfortable for the team and organization&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Personify Scrum and Agile;&lt;/strong&gt; Providing all support to the team using a servant leadership style and leading by example.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Facilitation skills;&lt;/strong&gt; Facilitating getting the work done without coercion, assigning, or dictating the work; Facilitating discussion, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/decision-making/"&gt;decision making&lt;/a&gt;, and conflict resolution&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Excellent communication skills;&lt;/strong&gt; Assisting with internal and external communication, improving &lt;a href="https://engineering-leadership.hinshelwood.com/tags/transparency/"&gt;transparency&lt;/a&gt;, and radiating information&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Diverse knowledge of agile mindsets;&lt;/strong&gt; an ability to guide and coach the Scrum Team in self-management to fill the intentional gaps of the Agile/Scrum frameworks.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, the successful candidate will have some or all of the following attributes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Second level Scrum Master certification (PSM II, CSP)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Experience playing the Scrum Master role for at least two years for a &lt;a href="https://engineering-leadership.hinshelwood.com/categories/product-development/"&gt;product development&lt;/a&gt; team that was diligently applying Scrum principles, practices, and theory.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Knowledge of other Agile approaches: XP, &lt;a href="https://engineering-leadership.hinshelwood.com/categories/kanban/"&gt;Kanban&lt;/a&gt;, Crystal, FDD, Less, Nexus, etc&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[If Software Team] Knowledge and/or experience with widely successful Agile techniques: User Stories, ATDD, TDD, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-integration/"&gt;Continuous Integration&lt;/a&gt;, Continuous Testing, Pairing, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/automated-testing/"&gt;Automated Testing&lt;/a&gt;, Agile Games&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[Applicable knowledge of the Business used by the team] &lt;strong&gt;&amp;lt;&amp;ndash; Add your Business Domain Here&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[Applicable knowledge of the technologies used by the team] &lt;strong&gt;&amp;lt;&amp;ndash; Add your Technical Domain Here&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;


  
&lt;h3 id="role-sucess"&gt;Role Sucess&lt;/h3&gt;
&lt;p&gt;If the Scrum Master is successful then the Scrum Team will have the following characteristics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Reliable delivery of the quality valuable product.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Solid understanding of Scrum framework, theory, &amp;amp; values&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-improvement/"&gt;Continuous improvement&lt;/a&gt; and learning&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Happyness&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Self-sustaining&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;I would love to get your feedback and discussion on this job specification so that we can make it better!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://scrumguides.org/scrum-guide.html#scrum-master" target="_blank" rel="external noopener noreferrer"&gt;Scrum Guide | Scrum Guides &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.scrum.org/forum/scrum-forum/5366/scrum-master-job-description" target="_blank" rel="external noopener noreferrer"&gt;Scrum Master job description | Scrum.org &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://luis-goncalves.com/scrum-master-job-description/" target="_blank" rel="external noopener noreferrer"&gt;Scrum Master job description - The Ultimate Description (luis-goncalves.com) &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Stop Writing Business Logic in Stored Procedures</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/stop-writing-business-logic-in-stored-procedures/</link>
      <pubDate>Mon, 23 Jun 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/stop-writing-business-logic-in-stored-procedures/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Practice</category>
      <category>Engineering Excellence</category>
      <description>Storing business logic in SQL stored procedures creates long-term problems, including lack of proper testing, poor fit with CI/CD practices, manual and risky deployments, and tightly coupling logic to the database, which makes portability and debugging difficult. Instead of attempting a costly rewrite, stop writing new business logic in stored procedures and refactor existing ones only when you need to make changes, moving logic into testable, maintainable code. The Azure DevOps team took four years of incremental changes to remove brittle system tests, showing that steady progress works. Each refactor improves unit testing, maintainability, feedback speed, and reduces bugs and costs. Modern software demands code that is testable and observable; stored procedures make every part of engineering harder, so shift business logic out of the database as you go.</description>
      <content:encoded>&lt;p&gt;Over the years, I&amp;rsquo;ve encountered many companies that have maintained their business logic in stored procedures, but the practice of doing so has died out, for good reasons ill hilight below. However, many codebases have been around for 10+ years, and may still have large amounts of business logic in them.&lt;/p&gt;
&lt;p&gt;If you’re still writing business logic in SQL Stored Procedures, it’s time to stop. If you still have code that stores business login in  SQL Stored Procedures its time to refactor!&lt;/p&gt;
&lt;p&gt;I’m not saying rewrite everything at once. That would be ridiculous. It’s a massive cost with no direct stakeholder value. What I &lt;em&gt;am&lt;/em&gt; saying is this:&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;From this point forward, stop creating new business logic in stored procedures.&lt;/p&gt;
&lt;p&gt;And when you &lt;em&gt;must&lt;/em&gt; change one, refactor that logic out into testable, mockable, maintainable code.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;This is not about doing everything at once!&lt;/p&gt;
&lt;p&gt;Take inspiration from the Azure &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; team. When they decided to eliminate their suite of brittle, long-running system tests, they didn’t try to replace them in a single sprint. It took them four years of consistent work, in three-week sprints, to fully remove and replace those tests with something better. One step at a time. That’s what change looks like.&lt;/p&gt;
&lt;p&gt;Break the cycle of adding more mess to the mess. Every stored procedure you don&amp;rsquo;t write is a future bug you won&amp;rsquo;t have to debug in production. Every time you choose code over SQL for business logic, you&amp;rsquo;re reclaiming control of your system.&lt;/p&gt;

    
    

  
&lt;h2 id="stored-procedures-are-the-wrong-place-for-business-logic"&gt;Stored Procedures are the wrong place for Business Logic&lt;/h2&gt;
&lt;p&gt;Let’s be clear: this isn’t an abstract architectural debate. The reasons stored procedures are a bad place for business logic are grounded in hard-learned lessons from real teams, real outages, and real maintenance headaches. If you&amp;rsquo;re serious about &lt;a href="https://engineering-leadership.hinshelwood.com/categories/engineering-excellence/"&gt;engineering excellence&lt;/a&gt;, you need to treat stored procedures as a legacy constraint, not a strategic tool.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;They can’t be tested properly&lt;/strong&gt; - You need a full database instance with seed data. You need to run a slow test harness. There’s no mocking, no fast feedback, no isolation. If it can’t be unit tested, it can’t be trusted. Long-running system tests do not tell you if the code works, only that the long-running system tests that you created work.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;They don’t participate in CI/CD&lt;/strong&gt; - Stored procedures are almost always deployed manually or via fragile SQL scripts. While it can be automated by things like Redgate, it&amp;rsquo;s often still brittle, breaks reproducibility, and blocks automated pipelines.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;They aren’t version-controlled like real code&lt;/strong&gt; - While you can have them under source control, they are &amp;ldquo;copied&amp;rdquo; into source control..&lt;strong&gt;.&lt;/strong&gt; either by Readgate or manually by a developer. Manual tasks are risky! Remember the Knight Capital Group!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;They tightly couple your logic to the database&lt;/strong&gt; - That kills portability and locks you into a specific database engine. It also makes testing, debugging, and observability painful. There have been attempts in the past to create &amp;ldquo;Unit Tests&amp;rdquo; for stored procedures, but they have largely been abandoned in favour of just getting our logic out of that scenario.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;They don’t scale&lt;/strong&gt; - Stored procedures run on the most expensive, least scalable part of your infrastructure: the database server. Business logic belongs in services that can scale out.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;They violate the separation of concerns&lt;/strong&gt; - Your database should store and retrieve data. Your application should handle logic. Stored procedures blur that line and create a big ball of mud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;They’re hard to reason about&lt;/strong&gt; - No dependency injection. No composition. No mocking. No telemetry. No proper logging. Just deeply procedural code with limited tooling support. If you have to rely on a debugger to see if your code works, you are doing it wrong.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Before you write the next line of business logic in a stored procedure, ask yourself: is this something I want to debug at 2am with no tests, no telemetry, and no rollback plan?&lt;/p&gt;
&lt;p&gt;That’s the reality of stored procedures. They make every part of your engineering practice harder. Get the logic out. Put it where it belongs, alongside the rest of your tested, observable, maintainable code.&lt;/p&gt;


  
&lt;h2 id="the-strategy-dont-rip-refactor"&gt;The strategy: don’t rip, refactor&lt;/h2&gt;
&lt;p&gt;You don’t need permission to start this. You don’t need a project. You just need a commitment to modern engineering discipline:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When you build new features, do it in application code, not SQL.&lt;/li&gt;
&lt;li&gt;When you touch an existing stored procedure, &lt;em&gt;refactor it&lt;/em&gt;. Move the logic into testable code.&lt;/li&gt;
&lt;li&gt;Leave a thin wrapper if necessary, but relocate the behaviour.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a &lt;em&gt;pay-as-you-go&lt;/em&gt; modernisation strategy. It lets you progressively reduce &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt; without halting delivery.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="the-benefits-are-compounding"&gt;The benefits are compounding.&lt;/h2&gt;
&lt;p&gt;Every time you refactor, you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Increase the ability to create unit tests&lt;/li&gt;
&lt;li&gt;Improve maintainability&lt;/li&gt;
&lt;li&gt;Enable faster feedback loops&lt;/li&gt;
&lt;li&gt;Reduce runtime costs&lt;/li&gt;
&lt;li&gt;Shrink the surface area for bugs&lt;/li&gt;
&lt;li&gt;Move toward &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;continuous delivery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No single change flips the system. But every change you make is a step away from the fragile procedural past and toward a sustainable engineering future.&lt;/p&gt;


  
&lt;h2 id="the-outcome"&gt;The outcome?&lt;/h2&gt;
&lt;p&gt;This isn’t about dogma. It’s about discipline. Modern &lt;a href="https://engineering-leadership.hinshelwood.com/tags/software-development/"&gt;software development&lt;/a&gt; demands testability, traceability, observability, and scalability. Stored procedures give you none of that.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re maintaining logic in stored procedures, you&amp;rsquo;re fighting your tooling, your pipeline, and your team. Stop doing that.&lt;/p&gt;
&lt;p&gt;Start small. Move incrementally. Raise the bar.&lt;/p&gt;
&lt;p&gt;Modern software is built in code, not SQL.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Are technical skills required to be a Scrum Master?</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/are-technical-skills-required-to-be-a-scrum-master/</link>
      <pubDate>Sun, 01 Sep 2019 15:37:41 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/are-technical-skills-required-to-be-a-scrum-master/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Principle</category>
      <category>Scrum</category>
      <category>Technical Leadership</category>
      <description>A Scrum Master is not required to have technical skills according to the Scrum Guide, but being a truly effective Scrum Master requires mastery in three areas: technical, business, and organisational change. Understanding technical practices like test-driven development and continuous integration enables a Scrum Master to effectively support a development team building, for example, financial software for a bank or a system at Boeing. Business mastery is vital to guide Product Owners and ensure the team delivers valuable and relevant products. Organisational transformational mastery is critical to drive real, lasting change within an organisation. While a non-technical Scrum Master is possible, a strong grasp of all three contexts makes for a much stronger Scrum Master who can coach, mentor, and facilitate real team and organisational improvement.</description>
      <content:encoded>&lt;p&gt;As part of the &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt;.org webinar “Ask a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/professional-scrum/"&gt;Professional Scrum&lt;/a&gt; Trainer - Martin Hinshelwood - Answering Your Most Pressing Scrum Questions” I was asked a number of questions. Since not only was I on the spot and live, I thought that I should answer each question that was asked again here, as well as those questions I did not get to.&lt;/p&gt;
&lt;p&gt;In case you missed it, here is the recording of yesterday&amp;rsquo;s Ask a Professional Scrum Trainer webinar with Martin Hinshelwood! Watch here: &lt;a href="http://ow.ly/ijiM50vwEkD" target="_blank" rel="external noopener noreferrer"&gt;http://ow.ly/ijiM50vwEkD &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

    
    

  
&lt;h3 id="question-are-technical-skills-required-to-be-a-scrum-master"&gt;[Question] Are technical skills required to be a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-master/"&gt;Scrum Master&lt;/a&gt;?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;As per the Scrum Guide there is no requirement for a Scrum Master to have technical skills.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;The Scrum Master is responsible for promoting and supporting Scrum as defined in the Scrum Guide. Scrum Masters do this by helping everyone understand Scrum theory, practices, rules, and values.&lt;/p&gt;
&lt;p&gt;The Scrum Master is a servant-leader for the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Team&lt;/a&gt;. The Scrum Master helps those outside the Scrum Team understand which of their interactions with the Scrum Team are helpful and which aren’t. The Scrum Master helps everyone change these interactions to maximize the value created by the Scrum Team.&lt;/p&gt;
&lt;p&gt;-&lt;a href="https://scrumguides.org/scrum-guide.html#team-sm" target="_blank" rel="external noopener noreferrer"&gt;The Scrum Master, Scrum Guide &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;When I discuss the Scrum Master in class and with customers I talk about them as being someone that can be a Teacher, Mentor, Coach, &amp;amp; Facilitator for your Scrum Team. So let&amp;rsquo;s ask a question: If you were the Scrum Master for a Scrum Team building some financial software for a bank, how would you expect to guide and mentor the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-owner/"&gt;Product Owner&lt;/a&gt; without some understanding of what their challenges are? Oh, you can coach them, one does not need expert knowledge of the problem to coach a subject. The Product Owner is the one that knows the answer, the Scrum Master just needs to facilitate their own discovery. That is only part of the Scrum Master role, I also need to teach &amp;amp; mentor the Product Owner to become better at realising value; for that, I need to have an understanding of the context within which they operate.&lt;/p&gt;
&lt;p&gt;I think that while you can be a non-technical Scrum Master, you can be a better Scrum Master with more knowledge of the context for each of the roles; you need more than technical skills! In order to be an awesome Scrum Master you are going to need 3 main masteries that you can leverage to help each of the roles, as well as the wider organisation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-mastery/"&gt;Technical Mastery&lt;/a&gt;&lt;/strong&gt; – While I would not expect a Scrum Master to have to be able to do everything that the Engineering team members can, they need to understand what the mastery of that profession looks like as well as the context within which the engineering team are practising. For example, they should be able to tell if TDD is appropriate for this team, what does it look like, and if so, are they doing it well. There are a wide range of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/engineering-practices/"&gt;engineering practices&lt;/a&gt; that I would expect a Scrum Master to guide the team towards which include, but is not limited to: Pair programming, (A)TDD, Refactoring, UI testing, Functional testing, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-integration/"&gt;Continuous Integration&lt;/a&gt; (unit, deployment, build, integration, regression, … tests), Performance testing. How would they change their approach if the technical team was at Boeing, or if it was a call centre line-of-business app?





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&lt;strong&gt;Scrum Master Service to the Development Team&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Scrum Master serves the Development Team in several ways, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/tags/coaching/"&gt;Coaching&lt;/a&gt; the Development Team in self-organization and cross-functionality;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Helping the Development Team to create high-value products;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Removing impediments to the Development Team’s progress;&lt;/li&gt;
&lt;li&gt;Facilitating Scrum events as requested or needed; and,&lt;/li&gt;
&lt;li&gt;Coaching the Development Team in organizational environments in which Scrum is not yet fully adopted and understood.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-&lt;a href="https://scrumguides.org/scrum-guide.html#team-sm" target="_blank" rel="external noopener noreferrer"&gt;The Scrum Master, Scrum Guide &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;
Without technical mastery, I think it would be very difficult to help the development team build high-value products.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Business Mastery&lt;/strong&gt; – The Scrum Team, and especially the Product Owner need to understand the business, and how they can optimise the product they are delivering to best support it. Does everyone understand the product qualities that are required within their context? Do you have Quality code base (clean, readable, naming conventions), Valuable functionality only, Architectural conventions respected, According to design/style guide, According to usability standards, Documented, Service levels guaranteed (uptime, performance, response time)? How would you help the Scrum Team get better at meeting the business goals without a keen understanding of what those are?





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&lt;strong&gt;Scrum Master Service to the Product Owner&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Scrum Master serves the Product Owner in several ways, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Ensuring that goals, scope, and product domain are understood by everyone on the Scrum Team as well as possible;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Finding techniques for effective &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-backlog/"&gt;Product Backlog&lt;/a&gt; management;&lt;/li&gt;
&lt;li&gt;Helping the Scrum Team understand the need for clear and concise Product Backlog items;&lt;/li&gt;
&lt;li&gt;Understanding product planning in an empirical environment;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Ensuring the Product Owner knows how to arrange the Product Backlog to maximize value;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Understanding and practicing agility; and,&lt;/li&gt;
&lt;li&gt;Facilitating Scrum events as requested or needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-&lt;a href="https://scrumguides.org/scrum-guide.html#team-sm" target="_blank" rel="external noopener noreferrer"&gt;The Scrum Master, Scrum Guide &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;
Without business mastery how could the Scrum Master ensure that the backlog maximizes value; without the context of the business how can they ensure that everyone understands the goals, scope, and domain?&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Organisational Transformational Mastery&lt;/strong&gt; – Have you ever tried to change an organization without really understanding the structure, people, and history that led to the current culture and organisation? This is why so many organisational transformations fail. If the Scrum Master really understands the organisation, the people, and the key players that need to come together to effect real change then they can make a difference. Without that knowledge, they have little hope of success.





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&lt;strong&gt;Scrum Master Service to the Organization&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Scrum Master serves the organization in several ways, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leading and coaching the organization in its Scrum adoption;&lt;/li&gt;
&lt;li&gt;Planning Scrum implementations within the organization;&lt;/li&gt;
&lt;li&gt;Helping employees and stakeholders understand and enact Scrum and empirical &lt;a href="https://engineering-leadership.hinshelwood.com/categories/product-development/"&gt;product development&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Causing change that increases the productivity of the Scrum Team; and,&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Working with other Scrum Masters to increase the effectiveness of the application of Scrum in the organization&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-&lt;a href="https://scrumguides.org/scrum-guide.html#team-sm" target="_blank" rel="external noopener noreferrer"&gt;The Scrum Master, Scrum Guide &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;
Without organisational transformational mastery, and the context of the organisation there is very little likelihood of real lasting change.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These masteries for me mean that a Scrum Master needs to be fully familiar with the Technical, Business, and Organisational context within which they are operating and how and when to encourage the Scrum Team to particular practices based on the Scrum Teams and the Organisational maturity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does it sound to you as if the Scrum Master can be awesome if they don’t have technical, business, and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/organisational-change/"&gt;organisational change&lt;/a&gt; skills?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While there are no right answers there are some answers that are better than others. For your given situation select the most right answer and iteration to the best version of it.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>You are doing Scrum but the Scrum Master tells the team what to do!</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/you-are-doing-scrum-but-the-scrum-master-tells-the-team-what-to-do/</link>
      <pubDate>Tue, 13 Sep 2011 20:40:07 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/you-are-doing-scrum-but-the-scrum-master-tells-the-team-what-to-do/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Accountability</category>
      <category>Scrum</category>
      <category>Technical Leadership</category>
      <description>Explains why Scrum Masters should not direct teams, emphasising self-organisation, shared responsibility, and the importance of team autonomy in Scrum practices.</description>
      <content:encoded>&lt;p&gt;If you are doing Scrum but the Scrum Master tells the team what to do then you may be missing the point.&lt;/p&gt;
&lt;p&gt;Ultimately the Scrum Master should never tell the Development Team what to do and they should make sure that the Development Team has both the knowledge and the skills to work things out for themselves. This is critical to the teams ability to self organise going forward because we all learn by the mistakes we make.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A Scrum Master does NOT equal Project Manager. In Scrum, project management is the responsibility of the entire Scrum Team (Scrum Master, Product Owner and Development Team) and is distributed as such, with the Scrum Master keeping an eye on the mechanics of Scrum to make sure it is working. The top-down management model traditionally used for project execution is rejected in favour of self-organization and shared accountability. While this is alien to many organisations it has been proven time and time again to increase the accountability, efficiency and quality of the software delivered by the Scrum Team.&lt;/p&gt;
&lt;p&gt;In Scrum the responsibilities between the Scrum Master and the Development Team are very explicit. The Scrum Master is there to serve the Development Team, not to manage them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scrum Master&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Scrum Mechanics&lt;/li&gt;
&lt;li&gt;Individual &amp;amp; Team Training&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Development Team&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Conflict Resolution&lt;/li&gt;
&lt;li&gt;Engineering Practices&lt;/li&gt;
&lt;li&gt;Grooming the Backlog (with Product Owner)&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All implementation, whither centred around working together, working to build software or working on the backlog, is the purview of the Development Team. This, however, does not mean that the Development Team are left to flounder. I mentioned that the Scrum Master is responsible for making sure that the Development Team has the Knowledge and Skills necessary to allow that Development Team to resolve things themselves.&lt;/p&gt;
&lt;p&gt;In order to allow the Scrum Master to provide the knowledge necessary to resolve conflicts they could ask questions of the team to illicit knowledge and learning.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;The term &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Socratic_questioning" target="_blank" rel="external noopener noreferrer"&gt;Socratic questioning &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt; is used to describe a kind of questioning in which an original question is responded to as though it were an answer. This in turn forces the first questioner to reformulate a new question in light of the progress of the discourse.&lt;br&gt;
-&lt;a href="http://en.wikipedia.org/wiki/Socratic_method" target="_blank" rel="external noopener noreferrer"&gt;Socratic method &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;Using this method a Scrum Master can “guide” a Development Team through the muddy waters of finding solutions to problems without enforcing their views or restricting the creativity of the Development Team.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;Groups that defer to a person of higher status will miss many good ideas, and fail to tap and develop the talents of the entire group.&lt;br&gt;
&lt;a href="http://www.estherderby.com/weblog/2009/07/why-group-dynamics-and-interpersonal.html" target="_blank" rel="external noopener noreferrer"&gt;-Esther Derby: Why Group Dynamics and Interpersonal Skills Matter &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;In addition the Scrum Master should never provide the team with options, unless they are specifically asked by the team for their opinion or their assistance. This removes the responsibility of the Development Team to make decisions and may limit the options that the Development Team creates. If they are provided with options they are unlikely to try to formulate their own and if that option fails they can claim it is the responsibility of the person who provided that option and not of the Development Team.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;You will have to have, learn, or improve requirements gathering and presentation techniques; quality techniques; refactoring; customer engagement; collaboration; teaming; conflict resolution techniques; and other practices, as well. But the Scrum framework will help you by providing continual feedback on your progress and success.&lt;br&gt;
-&lt;a href="http://kenschwaber.wordpress.com/2010/09/08/scrum-as-a-framework/" target="_blank" rel="external noopener noreferrer"&gt;Ken Schwaber: Scrum As A Framework &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;The Development Team must be empowered to come up with resolutions to the problems that they have without interference.&lt;/p&gt;

    
    

  
&lt;h3 id="references"&gt;References&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.scrum.org/scrumguides" target="_blank" rel="external noopener noreferrer"&gt;Scrum Guide 2011 &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.estherderby.com/weblog/2009/07/why-group-dynamics-and-interpersonal.html" target="_blank" rel="external noopener noreferrer"&gt;Why Group Dynamics and Interpersonal Skills Matter &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kenschwaber.wordpress.com/2010/09/08/scrum-as-a-framework/" target="_blank" rel="external noopener noreferrer"&gt;Scrum As A Framework &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Engineering as a Leadership System: Moving Beyond Frameworks</title>
      <link>https://leadership-system.hinshelwood.com/moving-beyond-frameworks/</link>
      <pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://leadership-system.hinshelwood.com/moving-beyond-frameworks/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Strategy</category>
      <category>Leadership</category>
      <category>Technical Leadership</category>
      <description>Every organisation runs on a theory of the business, and its operating model is that theory made structural. Once the theory is embedded in governance, funding, measurement, decision rights, and accountability, it governs what work is possible regardless of which framework the teams use. This is why practice adoption, coaching, training, and AI produce local gains that do not persist, and why the useful diagnostic is not maturity but movement, whether work moves, waits, learns, or decays.</description>
      <content:encoded>&lt;p&gt;Most of the engineering leaders I work with have already done the work. Scrum is in place. Teams are cross functional and mostly stable. There is a platform team, a pipeline that builds and deploys, a dashboard with four metrics on it, and now an AI assistant on every desk. The practices are not missing. The people are not weak.&lt;/p&gt;
&lt;p&gt;And yet delivery is still slower than anyone expects, less predictable than anyone will admit in a board meeting, and more expensive to change than it was three years ago.&lt;/p&gt;
&lt;p&gt;That gap is what this is about. My argument is easy to state and uncomfortable to act on. The frameworks and practices your teams adopt cannot overcome the operating model your organisation runs them inside. Engineering is not a set of team practices. It is a leadership system.&lt;/p&gt;

    
    

  
&lt;h2 id="your-operating-model-is-a-theory-of-the-business"&gt;Your operating model is a theory of the business&lt;/h2&gt;
&lt;p&gt;Every organisation runs on what Peter Drucker called a theory of the business: a set of assumptions about the environment, about who the customer is, about what that customer values, and about what the organisation has to be good at in order to win. Most of those assumptions were never written down, and almost none of them are revisited. They were correct once. That is usually why nobody questions them.&lt;/p&gt;
&lt;p&gt;Two things make this worse than it sounds. First, a theory of the business does not become obsolete because it failed. It becomes obsolete because it worked, and success is what stops it being questioned. Second, and sharper: for many organisations the theory never matched the realities of their environment at all. But when every company in your competitive arc makes the same mistake, it is not noticeable. Nothing in the market punishes an error everyone shares. The mistake becomes institutional.&lt;/p&gt;
&lt;p&gt;There is one exception worth naming. A personality, or a group, can through sheer force of will make an organisation override the implications of its theory of the business. But it is almost always departmentally local, and it rarely outlives the person. Heroics are not a structure, and this piece is about what persists.&lt;/p&gt;
&lt;p&gt;An operating model is that theory made structural. It is the assumptions converted into governance, funding, measurement, decision rights, and accountability, so that they no longer have to be argued. They become the way things are done here.&lt;/p&gt;
&lt;p&gt;&lt;a href="images/theory-made-structural.svg" class="post-img-link" data-toggle="lightbox" data-caption="The theory of the business becomes structure, becomes &amp;ldquo;how things are done here&amp;rdquo;, and the loop that should test the theory is the piece almost nobody builds"&gt;
  &lt;img src="images/theory-made-structural.svg" loading="lazy" alt="The theory of the business becomes structure, becomes &amp;ldquo;how things are done here&amp;rdquo;, and the loop that should test the theory is the piece almost nobody builds" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Drucker&amp;rsquo;s requirement was never just that the theory exists. It was that the theory be tested constantly, because it is a hypothesis, not scripture. That dashed return arrow is the piece almost nobody builds, and it cannot build itself: a theory made structural has no sensor. Nothing inside the structure can detect that its founding assumptions have lapsed, because the structure exists precisely so those assumptions no longer get argued. Detection is a job, and in most organisations it is an unowned job.&lt;/p&gt;
&lt;p&gt;This is why operating models are simultaneously so powerful and so hard to see. A framework is something you adopt, and you can point at it. A theory of the business is something you inherit, and it points at you. Scrum can be installed in a quarter. The assumption that work can be specified up front, approved centrally, and then executed to plan is installed in your budget cycle, your capitalisation rules, your job architecture, and your promotion criteria. One of those two things is going to win, and it is not the framework.&lt;/p&gt;
&lt;p&gt;The distinction between a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/predictive-operating-model/"&gt;predictive operating model&lt;/a&gt; and an &lt;a href="https://engineering-leadership.hinshelwood.com/tags/adaptive-operating-model/"&gt;adaptive&lt;/a&gt; one is not a moral one, and it is not modern against traditional. Predictive structures work extremely well when their assumptions hold: stable demand, knowable work, long product lifecycles, advantage from efficiency and consistency. They fail when the environment changes faster than the planning cadence that governs it. Most organisations I see are not badly run. They are running a theory of the business that stopped matching their environment some years ago, and nobody was accountable for noticing. I have written about that distinction at length &lt;a href="https://engineering-leadership.hinshelwood.com/articles/why-most-companies-operating-models-fail-in-dynamic-markets/"&gt;elsewhere&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The two theories are mutually exclusive. They make contradictory claims about the same environment, so at most one is true of yours. That does not make organisations pure: an adaptive theory of the business freely uses predictive practices wherever the work is knowable, in payroll, in regulated execution, in any known-good procedure. The practices serve; the theory governs. If you believe your organisation holds both theories, look at what your budget process does when the two collide. That is your theory.&lt;/p&gt;


  
&lt;h2 id="when-this-is-not-your-problem"&gt;When this is not your problem&lt;/h2&gt;
&lt;p&gt;I should say this plainly, because the argument reads as universal and it is not.&lt;/p&gt;
&lt;p&gt;If your demand really is stable, your work really is knowable in advance, and your product lifecycle is measured in years, a predictive operating model is not your constraint. It is the correct design, and changing it would cost you the advantage you have.&lt;/p&gt;
&lt;p&gt;If your teams genuinely cannot do the work, structure will not save you. Genuine means absent: nobody in the system has the skill yet, and the work would fail even with every gate removed. That is fixed by hiring, training, and time. But if skilled people keep leaving, or mastery never gets funded time, that is not a capability gap. That is the funding surface wearing a skills costume, and you are back in this article. My claim is narrower than it sounds. When the practices are present and the people are capable, the operating model is the explanation you have least examined, and it is the only one this piece gives you a way to test.&lt;/p&gt;
&lt;p&gt;And if you can answer the five questions at the end of this piece with evidence rather than opinion, you are not the reader I wrote this for.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;If this sounds like your organisation, it isn&amp;#39;t your teams&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;Most of what I&amp;#39;m describing here lives in how the work is set up, not in your people. That setup was put in place by leadership, which means leadership can change it. Making it visible with evidence from your own delivery, then fixing it, is what I do for a living.&lt;/p&gt;
        &lt;a href="https://nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="nkdagility" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;See how I work with organisations →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="where-the-theory-is-actually-written-down"&gt;Where the theory is actually written down&lt;/h2&gt;
&lt;p&gt;If you want to find an organisation&amp;rsquo;s real theory of the business, do not read the strategy deck. Read five things instead. These are the surfaces where the theory stops being an idea and starts governing behaviour.&lt;/p&gt;


  
&lt;h3 id="governance-what-requires-permission"&gt;Governance: what requires permission&lt;/h3&gt;
&lt;p&gt;Governance answers one question: what may a person do without asking. Every approval gate is a recorded statement that the organisation does not trust the information held at the point of work, and would rather pay delay than accept variance. That is sometimes a sound trade. It is rarely a conscious one, because approval gates are added one incident at a time and removed almost never.&lt;/p&gt;
&lt;p&gt;The cost is not the meeting. The cost is that a decision cannot be tested until it has been approved, and by then it has usually also been committed. The property being destroyed here is what I call decision testability: the ability to validate a decision against reality before the commitment becomes irreversible. Every gate lowers it.&lt;/p&gt;


  
&lt;h3 id="funding-what-you-buy-and-for-how-long"&gt;Funding: what you buy, and for how long&lt;/h3&gt;
&lt;p&gt;Funding decides what an organisation is structurally able to change its mind about. Fund a project and you have bought a scope, a date, and a team that disbands at the end, which means learning that arrives late has nowhere to go and no one to carry it. Fund a product, or a long-lived team that owns an outcome, and you have bought a capability that can absorb what it learns.&lt;/p&gt;
&lt;p&gt;There is a third rung. Fund an outcome, and the money is attached to the result rather than the plan, so learning redirects the work instead of being defended against. A project buys a plan. A product buys a capability. An outcome buys a direction. The chain should run downward from the vision: the vision defines the outcomes, outcomes drive the products, each product hosts a capability, and projects, if you use them at all, are batches of work inside a product, never the unit of funding.&lt;/p&gt;
&lt;p&gt;Annual funding cycles in a market that moves monthly do not just slow the organisation down. They make it structurally rational for everyone in it to defend a plan they know is wrong, because the plan is the thing the money was attached to. The book calls this surface economic ownership.&lt;/p&gt;


  
&lt;h3 id="measurement-what-you-count"&gt;Measurement: what you count&lt;/h3&gt;
&lt;p&gt;Measurement determines what leaders are able to see, and therefore what they are able to decide. When the measures are outputs, and the people being measured cannot change the system that produces those outputs, the measures stop describing reality and start describing what people need reported. Signal integrity, the degree to which the signals reaching leadership reflect operational reality, degrades quietly, and it degrades first in exactly the places where you most need the truth.&lt;/p&gt;
&lt;p&gt;The diagnostic is not whether your metrics are good. It is what happens when a metric reveals a structural problem rather than an execution one. Organisations that change the metric have told you where their accountability actually sits.&lt;/p&gt;


  
&lt;h3 id="decision-rights-who-may-decide-without-asking"&gt;Decision rights: who may decide without asking&lt;/h3&gt;
&lt;p&gt;Context does not survive travel. Every layer it crosses on the way to a decision maker strips detail and adds interpretation. When authority sits several layers above where the information is generated, the organisation has designed decision latency into itself, the time between recognising a need for change and having the authority to act, and the delay is not a behaviour anyone can be coached out of.&lt;/p&gt;
&lt;p&gt;The compounding cost is not slowness. It is that by the time a decision reaches the person entitled to make it, the option to reverse it cheaply has usually already expired.&lt;/p&gt;


  
&lt;h3 id="accountability-who-carries-the-consequence"&gt;Accountability: who carries the consequence&lt;/h3&gt;
&lt;p&gt;The most common structural defect I find is accountability without authority. A team is held to an outcome it does not control the conditions for. Engineers are asked for quality by an organisation whose funding, deadlines, and measurement all penalise the behaviour that produces it. Nobody in that arrangement is behaving badly. They are behaving rationally, given the system they have been handed.&lt;/p&gt;
&lt;p&gt;Where accountability and authority sit apart, no amount of intent closes the gap. It is a structural property, and it is fixed structurally or not at all.&lt;/p&gt;


  
&lt;h2 id="why-frameworks-coaching-training-and-ai-change-so-little"&gt;Why frameworks, coaching, training and AI change so little&lt;/h2&gt;
&lt;p&gt;Once you see those five surfaces, the disappointing return on transformation investment stops being mysterious.&lt;/p&gt;
&lt;p&gt;Frameworks, coaching, training, and tooling all operate inside the constraint. The operating model is not a layer above the work. It wraps it. They can make a team better at working within the system. They cannot change the system, because the levers that define it (budget, structure, policy, decision rights) are outside everything they touch. This is why improvement arrives, holds for a while, and then regresses. The operating model reasserts its constraints, and everyone concludes the framework did not work.&lt;/p&gt;
&lt;p&gt;&lt;a href="images/operating-model-wraps-the-work.svg" class="post-img-link" data-toggle="lightbox" data-caption="The operating model wraps the frameworks, which wrap the teams. Interventions operate inside the constraint they are trying to change"&gt;
  &lt;img src="images/operating-model-wraps-the-work.svg" loading="lazy" alt="The operating model wraps the frameworks, which wrap the teams. Interventions operate inside the constraint they are trying to change" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;AI is the sharpest current example, and it is worth being precise about why. AI does not create a new operating-model requirement. It accelerates execution, and in doing so it removes the technical effort that used to disguise where the real constraint was. When writing the code was the slow part, governance delay and context decay were hidden inside the estimate. When writing the code is fast, they are all that is left. The queue does not disappear. It just becomes visible.&lt;/p&gt;
&lt;p&gt;There is a second effect that is easier to miss. AI output arrives quickly and looks precise, which means an invalid assumption can survive longer under AI than it did under manual work, because nothing about the output signals that it was built on the wrong premise. Where context quality is poor, AI does not compensate. It multiplies. This is why I treat AI as a diagnostic rather than an intervention: it will tell you, faster and more expensively than anything else you could buy, exactly what your operating model was already doing.&lt;/p&gt;


  
&lt;h2 id="the-tell-stated-intent-against-the-operating-model"&gt;The tell: stated intent against the operating model&lt;/h2&gt;
&lt;p&gt;Almost every organisation I work with has a stated intent that is genuinely held and an operating model that contradicts it. The contradiction is not hypocrisy. It is usually that the intent was updated and the structure was not.&lt;/p&gt;
&lt;p&gt;The tells are consistent, and you can look for them this week:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You have asked for empowered teams, and every decision above a fixed value goes to a forum that meets fortnightly.&lt;/li&gt;
&lt;li&gt;You have asked for faster feedback, and you fund in annual cycles against fixed scope.&lt;/li&gt;
&lt;li&gt;You have asked for quality, and the only measure with consequences attached is date adherence.&lt;/li&gt;
&lt;li&gt;You have asked people to surface problems early, and the last person who did is still explaining it.&lt;/li&gt;
&lt;li&gt;You have asked for experiments, and there is no mechanism to stop one, so every experiment quietly becomes a commitment.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Where stated intent and structure conflict, structure wins, because structure is the thing with consequences attached. It wins without a meeting. People are reading the system, not the memo, and they are reading it correctly.&lt;/p&gt;
&lt;p&gt;This is also why culture change programmes fail. Culture is the shadow the structure casts on the wall, cast by the structure, which was formed from the theory of the business. You cannot change a shadow. You can only move the thing that casts it. Culture is a read-out, not a lever: read it, because it is excellent diagnostics about your structure, and stop pulling on it.&lt;/p&gt;


  
&lt;h2 id="move-wait-learn-decay"&gt;Move, wait, learn, decay&lt;/h2&gt;
&lt;p&gt;The most useful diagnostic I know is not a maturity model. It is four questions about what your system does with work, and you can answer all four this week from things you already have.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does work move?&lt;/strong&gt; Take ten items you shipped last quarter. For each, write down the date work started and the date a customer could use it, then subtract the days anyone actually touched it. What is left is waiting. In the organisations I look at, the waiting is usually the larger number.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does work wait?&lt;/strong&gt; Walk your board and find everything that is done but not released, or decided but not authorised. Count them, and note what each one is waiting for. If most are waiting for a person rather than for work, you have found where authority sits relative to information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does your organisation learn?&lt;/strong&gt; Look at the last five problems that reached your desk and ask what changed afterwards. A new rule, a new report, a new dashboard, or a new approval is a reaction. A removed approval, a moved decision, or a changed budget line is learning. Count the two. Most people are surprised by the ratio.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does the system decay?&lt;/strong&gt; Find one approval, one report, and one recurring meeting that exist because of an incident nobody in the room can now date. Then ask who is accountable for removing them. If the answer is nobody, this is not entropy and it is not the market. It is an unowned job.&lt;/p&gt;


  
&lt;h2 id="five-questions-worth-answering-honestly"&gt;Five questions worth answering honestly&lt;/h2&gt;
&lt;p&gt;If you take one thing into your next leadership meeting, take these. They are diagnostic, not rhetorical, and the answers are usually already known by someone who has not been asked.&lt;/p&gt;
&lt;p&gt;The four questions above tell you what your system does with work. These five tell you where that behaviour is written, one per surface. The order matters: run the four yourself, this week, on the span you control. No permission needed. Take the five to your next leadership meeting once you have the numbers, and leave that meeting with one name and one date per question, or the meeting produced nothing.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Governance.&lt;/strong&gt; What decisions currently require permission, and what evidence would tell us that permission is buying us more than the delay costs?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Funding.&lt;/strong&gt; What are we funding that we would not start today, and what is our standing mechanism for stopping it? Drucker asked the first half of that question in 1954, and his version was not a question but a calendar entry. Most organisations still cannot answer the second half.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Measurement.&lt;/strong&gt; When a measure last revealed a structural problem, did we change the structure or the measure?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decision rights.&lt;/strong&gt; Where is the largest gap between where information first appears and where the decision about it is made, and what is that gap costing us in reversibility?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Accountability.&lt;/strong&gt; Who is currently accountable for an outcome whose determining conditions they do not control?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Not one of these questions is about your teams. That is the point.&lt;/p&gt;


  
&lt;h2 id="this-work-does-not-finish"&gt;This work does not finish&lt;/h2&gt;
&lt;p&gt;The uncomfortable part of treating engineering as a leadership system is that it removes the possibility of completion. There is no target state. Operating models degrade through accumulation and through decay, continuously, and the work of removing obsolete commitments, realigning decision rights, and refreshing the assumptions the model rests on is permanent executive work. It cannot be delegated to a transformation office, because the levers are not there.&lt;/p&gt;
&lt;p&gt;What changes when leaders take this on is not that delivery becomes fast. It is that problems arrive while they are still cheap, decisions get tested before they become irreversible, and leadership attention stops being consumed by crisis response and retrospective justification. That capacity is the real return, and it is structural rather than heroic.&lt;/p&gt;
&lt;p&gt;If your organisation has adopted the practices and is still disappointed by the results, the constraint is very unlikely to be your engineers. Start with the five surfaces. The theory of your business is written there, and so is the reason your work moves, waits, learns, or decays.&lt;/p&gt;
&lt;p&gt;Engineering as a leadership system means two things, and I mean both. Engineering, the function, is a leadership system: its performance is produced by structures leaders own. And the leadership system is what needs engineering: your operating model is an engineered artefact, designed once, by someone, under assumptions that were true at the time. It deserves what any engineered system deserves. Instrumentation. Testing against reality. Maintenance. Refactoring when its assumptions expire.&lt;/p&gt;
&lt;p&gt;The engineering problem in your organisation was never the code. It is the company. Go engineer it.&lt;/p&gt;
&lt;p&gt;Everything above is diagnosis. It will let you recognise your own organisation and tell you where to look, but it deliberately stops short of two things. It does not give you the mechanism by which each of these structures produces its outcome, and it does not tell you what evidence would prove the argument wrong. Both matter, because a diagnosis you cannot falsify is only a strongly held opinion. That is the work the book does.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I wrote this alongside my session for The Future of Work in Scotland, on engineering as a leadership system and what lies past framework adoption. You can &lt;a href="https://engineering-leadership.hinshelwood.com/videos/engineering-as-a-leadership-system-future-of-work-scotland/"&gt;watch the session recording&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://leanpub.com/engineering-as-a-leadership-system" target="_blank" rel="external noopener noreferrer"&gt;Read &lt;em&gt;Engineering as a Leadership System&lt;/em&gt; on Leanpub &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, where the ebook comes with free updates for life and you set the price. Paperback and Kindle are &lt;a href="https://mybook.to/EngLeadershipSystem" target="_blank" rel="external noopener noreferrer"&gt;on Amazon &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Big Scrum: All you need and not enough</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/big-scrum-all-you-need-and-not-enough/</link>
      <pubDate>Wed, 01 Jul 2015 16:33:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/big-scrum-all-you-need-and-not-enough/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Strategy</category>
      <category>Scrum</category>
      <description>Scaling Scrum requires truly professional teams who embody agile values and strong engineering practices, not just following processes superficially. Off-the-shelf frameworks do not fit every organization, so adapting Scrum to your unique context is essential. Focus on building skilled teams, fostering effective communication, and adopting only the practices that support your specific scaling needs.</description>
      <content:encoded>&lt;p&gt;I was in Norway for NDC Oslo 2015 and I was there to talk about &amp;ldquo;Big &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt;: All you need and not enough&amp;rdquo; which is a kind of oxymoron as it really is enough, you just need to apply the values and principals at scale. I tried to cover what for me is a total 100% requirement for Scale.&lt;/p&gt;
&lt;p&gt;[embed]https://vimeo.com/131642789[/embed]&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image0011-1-1.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image001"&gt;
  &lt;img src="images/clip_image0011-1-1.png" loading="lazy" alt="clip_image001" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In order to scale you first need Professional Team and not Amateur Teams. In the Scrum world that means that you need to &lt;a href="http://nkdagility.com/big-scrum-are-you-doing-mechanical-scrum/" target="_blank" rel="external noopener noreferrer"&gt;embody the values and principals of agile, have awesome engineering practices, and know the mechanics &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;. Its really not enough to simply pay lip service to your process. Dig in and really do it.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image0021-2-2.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image002"&gt;
  &lt;img src="images/clip_image0021-2-2.png" loading="lazy" alt="clip_image002" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The second thing that I covered is why a cookie cutter process will not work. Your companies change is a unique fingerprint and the idea that you can buy and off-the-shelf process that will suit your culture and your journey is ludicrous.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image003-3-3.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image003"&gt;
  &lt;img src="images/clip_image003-3-3.png" loading="lazy" alt="clip_image003" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To support &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scaling/"&gt;scaling&lt;/a&gt; Scrum you need to have many &lt;a href="https://engineering-leadership.hinshelwood.com/tags/professional-scrum/"&gt;Professional Scrum&lt;/a&gt; Teams working together, and for that we need a few extra communication lines that are not new, but that need enshrined in the model to make sure that it works. Check out the video below to get a walk-through of the new events and their significance and value.&lt;/p&gt;
&lt;p&gt;At the end of the session I highlighted a small number of additional, but optional, practices that make scaling a lot easier. These practices only scratch the surface of what is presented in Scrum.org&amp;rsquo;s new Scaled Professional Scrum course, but they are representative of practices that we know, from experience, you need to build software big.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    
    
    

  
&lt;h2 id="big-scrum-all-you-need-and-not-enough"&gt;Big Scrum: All you need and not enough&lt;/h2&gt;
&lt;p&gt;The proliferation of scaling frameworks shows there are real challenges in scaling agility, and the solutions don’t seem to involve inventing yet more frameworks or formal processes. So then, why is it so hard to find success in agility at scale? &lt;a href="https://engineering-leadership.hinshelwood.com/tags/large-scale-agility/"&gt;Large scale agility&lt;/a&gt; can be found in exploiting Scrum’s simplicity while emerging and sustaining &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-excellence/"&gt;technical excellence&lt;/a&gt;. Something that sounds so easy shouldn&amp;rsquo;t be so hard, and for some it isn&amp;rsquo;t. This session highlights successes in growing large scale agility using Big Scrum while maintaining technical excellence to deliver value faster.&lt;/p&gt;

  &lt;/blockquote&gt;

</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Delivery is the only Measure of Progress in Scrum</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/delivery-is-the-only-measure-of-progress-in-scrum/</link>
      <pubDate>Mon, 03 Feb 2025 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/delivery-is-the-only-measure-of-progress-in-scrum/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Ethos</category>
      <category>Scrum</category>
      <category>Product Development</category>
      <category>DevOps</category>
      <description>Delivery, not just completion, is the true measure of progress in Scrum. Modern DevOps practices have made continuous delivery to real users routine, so every Scrum Team should deliver increments to production at least once per Sprint, ideally even more frequently. Work that is “Done” but not delivered creates no value; genuine business impact comes only when users benefit from the product in production. A feature sitting on a shelf is as useless as one never built, so teams must automate releases, focus on real user impact, and break down silos to ensure delivery is always the default. In today’s environment, Scrum Teams that do not deliver are only simulating progress.</description>
      <content:encoded>&lt;p&gt;As a social technology, &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; has remained steadfast in its ethos for over 32 years, enabling teams to generate value through adaptive solutions to complex problems. Yet, a subtle distinction in its guidance often trips up practitioners - Scrum &lt;strong&gt;explicitly&lt;/strong&gt; mandates a &lt;strong&gt;Done &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;Increment&lt;/a&gt;&lt;/strong&gt; but &lt;strong&gt;implicitly&lt;/strong&gt; mandates &lt;strong&gt;Delivery&lt;/strong&gt;. This distinction, though subtle, holds profound implications in a modern context where &lt;a href="https://engineering-leadership.hinshelwood.com/categories/devops/"&gt;DevOps&lt;/a&gt; has reshaped the landscape of software delivery.&lt;/p&gt;

    
    

  
&lt;h3 id="tldr"&gt;TLDR;&lt;/h3&gt;
&lt;p&gt;Modern software &lt;a href="https://engineering-leadership.hinshelwood.com/tags/engineering-practices/"&gt;engineering practices&lt;/a&gt; have made it easy to ship to production and validate that your product is of a quality level that would allow it. I would expect every &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Team&lt;/a&gt; to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;deliver &lt;a href="https://engineering-leadership.hinshelwood.com/tags/working-software/"&gt;working software&lt;/a&gt; to at least some subset of real users every iteration, including the first&lt;/li&gt;
&lt;li&gt;turn feedback from users into concrete work items on timelines shorter than one month&lt;/li&gt;
&lt;li&gt;change the requirements based on user feedback&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At a very minimum, I expect them to deliver their increments to production at least once per Sprint, preferably continuously.&lt;/p&gt;


  
&lt;h3 id="delivery-as-the-fundamental-measure-of-progress"&gt;Delivery as the Fundamental Measure of Progress&lt;/h3&gt;
&lt;p&gt;Scrum Teams are measured not by what they start but by what they finish, and more importantly, by what they &lt;strong&gt;deliver&lt;/strong&gt;. A Done Increment is only as valuable as its ability to drive change and provide feedback in the hands of real users. Anything less is just inventory.&lt;/p&gt;
&lt;p&gt;It’s time to shift the focus: delivery is not an afterthought, it is &lt;strong&gt;the measure of progress&lt;/strong&gt;. In the 1990s, releasing software to production was a cumbersome, risky process, and the Scrum Guide was written in that world. Today, with modern DevOps capabilities, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;continuous delivery&lt;/a&gt; is not just possible, it is expected.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&lt;strong&gt;If a Scrum Team is producing Done Increments but not delivering them, they are not actually doing Scrum, they are simply simulating progress.&lt;/strong&gt;&lt;/p&gt;

  &lt;/blockquote&gt;



  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h3 id="done-is-not-enough"&gt;Done Is Not Enough&lt;/h3&gt;
&lt;p&gt;A Done Increment, according to Scrum, meets the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt;: it is properly tested, meets quality standards, and is potentially shippable. But potential is not value, realised value comes only from delivery.&lt;/p&gt;
&lt;p&gt;The distinction between Done and Delivered is simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Done means the work meets an internal quality standard.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Delivered means the work has been put into production and is creating impact.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If an Increment remains in staging or internal QA, it does not matter how refined or polished it is, it is not delivering value.&lt;/p&gt;


  
&lt;h3 id="why-this-matters"&gt;Why This Matters&lt;/h3&gt;
&lt;p&gt;The speed of market responsiveness defines competitive advantage today. A product that remains undelivered provides no feedback, no learning, and no adaptation. Organizations that mistake Done for Delivered risk falling behind more responsive competitors who understand that speed to value is everything.&lt;/p&gt;
&lt;p&gt;A feature sitting on a shelf has the same business impact as a feature that was never built.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Delivery is what separates successful Scrum Teams from ineffective ones.&lt;/strong&gt;&lt;/p&gt;


  
&lt;h3 id="how-to-ensure-delivery-becomes-the-default"&gt;How to Ensure Delivery Becomes the Default&lt;/h3&gt;
&lt;p&gt;Scrum Teams must reframe their Definition of Done to include deployment while ensuring that they &lt;a href="https://engineering-leadership.hinshelwood.com/articles/definition-of-done-objective-vs-subjective/"&gt;don&amp;rsquo;t inadvertently compromise&lt;/a&gt; it. Every Sprint should result in increments that go into production. Here’s how teams can bridge the gap:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automate Everything&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If your release process requires manual intervention, it is a liability. CI/CD pipelines eliminate constraints and ensure every increment is delivered safely and efficiently. Don&amp;rsquo;t end up like the Knight Capital Group or CrowdStrike.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Treat Delivery as a First-Class Citizen&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The goal of every Sprint should not be to produce an increment, it should be to deliver value. A backlog item is not complete until users are benefiting from it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect User Impact, Not Just Internal Quality&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sprint Reviews should not be about demonstrating functionality in a staging environment; they should be about real user impact. What changed for the customer? What insights did we gain from their usage?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Break Down Barriers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Silos between development, operations, security, and compliance must be removed. Cross-functional teams should be fully empowered to deploy without external dependencies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Make Undelivered Work Visible&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Track work that is &amp;ldquo;Done but not Delivered.&amp;rdquo; If work is piling up, ask why. This is an issue of flow, not just completion.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Remember &lt;a href="https://engineering-leadership.hinshelwood.com/articles/how-usable-working-products-are-your-ultimate-weapon-against-risks/"&gt;usable working product is how we manage risk and deliver value&lt;/a&gt;. If you are not delivering, you are not managing risk, and you are not delivering value.&lt;/p&gt;


  
&lt;h3 id="conclusion"&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;In 2025, there is no reason why a Done Increment should not be delivered. The tools, practices, and knowledge exist. The only thing standing in the way is outdated ways of thinking.&lt;/p&gt;
&lt;p&gt;Delivery is no longer just an aspiration, it is the fundamental measure of progress. The ability to deliver frequently, safely, and reliably is what makes a Scrum Team truly professional.&lt;/p&gt;
&lt;p&gt;The question is no longer &amp;ldquo;Are we Done?&amp;rdquo; but &lt;strong&gt;&amp;ldquo;Have we Delivered?&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Getting started with a Definition of Done (DoD)</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/getting-started-with-a-definition-of-done-dod/</link>
      <pubDate>Mon, 14 Dec 2020 13:03:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/getting-started-with-a-definition-of-done-dod/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Artifact</category>
      <category>Scrum</category>
      <category>Engineering Excellence</category>
      <category>Product Development</category>
      <description>A Definition of Done (DoD) is essential for software teams to ensure consistent quality and transparency in each increment they deliver. Developers must collaborate to define what "done" means for their product and organisation, capturing it as a measurable checklist that reflects shippability and ensures no further work is needed to release. Concrete examples for a DoD include criteria such as "Increment passes SonarCube checks with no critical errors," code coverage does not decrease, engineering and UX standards are met, and security checks pass. Teams should regularly review and organically grow their DoD, adjusting it to reflect lessons learned and higher expectations for quality. If quality issues arise that prevent working software, teams should pause feature development, fix the issue (sometimes via a "Scrumble"), and update the DoD to prevent recurrence.</description>
      <content:encoded>&lt;p&gt;In my last post about &lt;a href="https://nkdagility.com/blog/professional-scrum-teams-build-software-works/" target="_blank" rel="external noopener noreferrer"&gt;Professional software teams creating working software &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a href="https://www.scrum.org/david-corbin" target="_blank" rel="external noopener noreferrer"&gt;David Corbin &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; made a good point. How do you determining what &amp;ldquo;Free from fault or defect&amp;rdquo; means? Since that is different for each Product and may change over time you need to focus on Quality and reflecting that quality in a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt; (DoD).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nkdagility.com/blog/update-scrum-guide-25th-anniversary-scrum-framework/" target="_blank" rel="external noopener noreferrer"&gt;Updated to reflect the 2020 Scrum Guide! &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

    
    

  
&lt;h2 id="tldr"&gt;TL;DR;&lt;/h2&gt;
&lt;p&gt;Your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; are ultimately responsible for creating done increments of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/working-software/"&gt;working software&lt;/a&gt;. Done Increments. &lt;strong&gt;Done&lt;/strong&gt;.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/naked-Agility-Scrum-Framework-Definition-of-Done-920x720-1-2.jpg" class="post-img-link" data-toggle="lightbox"&gt;
  &lt;img src="images/naked-Agility-Scrum-Framework-Definition-of-Done-920x720-1-2.jpg" loading="lazy" alt="Getting started with a Definition of Done (DoD)" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; needs to decide what Done means within the organisational context and the product domain. They need to sit down and create a list of things that must be true for every &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;Increment&lt;/a&gt; of software that they deliver. Working Software is not specific to a PBI; it&amp;rsquo;s applied regardless of PBI to the entire delivery. Not just for each PBI.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&amp;ldquo;The Definition of Done creates &lt;a href="https://engineering-leadership.hinshelwood.com/tags/transparency/"&gt;transparency&lt;/a&gt; by providing everyone a shared understanding of what work was completed as part of the Increment. If a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-backlog/"&gt;Product Backlog&lt;/a&gt; item does not meet the Definition of Done, it cannot be released or even presented at the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/sprint-review/"&gt;Sprint Review&lt;/a&gt;. Instead, it returns to the Product Backlog for future consideration.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;-&lt;a href="https://nkdagility.com/the-2020-scrum-guide/" target="_blank" rel="external noopener noreferrer"&gt;The 2020 Scrum Guide &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;If you can&amp;rsquo;t ship working software at least every 30 days then by its very definition, you are not yet doing &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt;. Since &lt;a href="https://engineering-leadership.hinshelwood.com/blog/professional-scrum-teams-build-software-works/"&gt;Professional Scrum Teams build software that works&lt;/a&gt;, stop, create a working increment of software that meets your definition of done (DoD), and then start Sprinting, and review what you mean by &amp;ldquo;working&amp;rdquo; continuously, and at least on a regular cadence.&lt;/p&gt;


  
&lt;h2 id="what-is-a-definition-of-done-dod"&gt;What is a Definition of Done (DoD)&lt;/h2&gt;
&lt;p&gt;You need to start somewhere, and most often we don’t have a greenfield product. Either we are handed an existing product, or we are the team that built it and are switching to Scrum. Wherever your product originated, the code, and thus the product, will not currently be working software. How can it be when you don&amp;rsquo;t have a definition of what working means? So what do you do?&lt;/p&gt;
&lt;p&gt;Before you cut a single line of code, you need to decide what done means for your product and your company. It will be defined very differently if you are building firmware for pacemakers or if you are creating an e-commerce portal. Here are some characteristics of a Definition of Done:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A short, measurable checklist&lt;/strong&gt; - try and have things on your DoD that can be measured, that you can test the outcome, preferably in an automated fashion.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mirrors shippable&lt;/strong&gt; - While you might not have shipped your product, &lt;a href="https://nkdagility.com/blog/continuous-deliver-sprint/" target="_blank" rel="external noopener noreferrer"&gt;although we recommended it &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, you should have that choice. Your &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#product-owner" target="_blank" rel="external noopener noreferrer"&gt;Product Owner &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; should be able to say, at the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#sprint-review" target="_blank" rel="external noopener noreferrer"&gt;Sprint Review &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;ldquo;That’s Awesome… lets ship it.&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No further work&lt;/strong&gt; - There should be no further work required from the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; to ship your product to production. Any additional work means that you were not Done, and it takes away from the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#product-owner" target="_blank" rel="external noopener noreferrer"&gt;Product Owner &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; capacity for the next iteration. Ideally, you have a fully automated process for delivering software, and &lt;a href="https://nkdagility.com/blog/a-better-way-than-staggered-iterations-for-delivery/" target="_blank" rel="external noopener noreferrer"&gt;never use staggered iterations for delivery &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your short, measurable checklist that mirrors usable and results in no further work required to ship your product needs to be defined. I find the best way to do this is to get the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#scrum-team" target="_blank" rel="external noopener noreferrer"&gt;Scrum Team &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; (the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-owner"&gt;Product Owner&lt;/a&gt; plus the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; and any relevant &lt;a href="https://nkdagility.com/training/audiences/stakeholders/" target="_blank" rel="external noopener noreferrer"&gt;Stakeholders &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;) into a facilitated &lt;a href="https://nkdagility.com/training/courses/engineering-practices-workshop/" target="_blank" rel="external noopener noreferrer"&gt;DoD Workshop &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;. Without a Defenition of Done we don&amp;rsquo;t understand what working software means, and &lt;a href="https://nkdagility.com/blog/release-planning-and-predictable-delivery/" target="_blank" rel="external noopener noreferrer"&gt;without working software we cant have predictable delivery &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;. Your &lt;a href="https://nkdagility.com/blog/the-fallacy-of-the-rejected-backlog-item/" target="_blank" rel="external noopener noreferrer"&gt;Product Owner can&amp;rsquo;t reject a Backlog Item &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, only whether the Increment is working or not.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="my-first-definition-of-done-dod"&gt;My first Definition of Done (DoD)&lt;/h2&gt;
&lt;p&gt;Your &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#commitment-definition-of-done" target="_blank" rel="external noopener noreferrer"&gt;Definition of Done &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; does not just magically appear, and your software does not magically comply. Making your Software comply with your definition of done is hard work, and while your definition of done should organically grow, you need to create the seed that you can build on.&lt;/p&gt;
&lt;p&gt;I recommend that you run a workshop with the entire &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#scrum-team" target="_blank" rel="external noopener noreferrer"&gt;Scrum Team &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;, and likely some other domain experts. If there are Stage Gates that your software has to pass after &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; are Done, then you need representatives from those Gates to participate in the workshop. Regardless of your product you likely need representatives with the following expertise; Code, Test, Security, UX, UI, Architecture, etc. You may have this expertise on your team, or you may need to bring in an expert from your organisation, or even external to your organisation.&lt;/p&gt;
&lt;p&gt;Some examples of things to put on your definition of done:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Increment Passes SonarCube checks with no Critical errors&lt;/strong&gt; - You will be increasing over time, so maybe you need to say &amp;ldquo;&lt;em&gt;Code Passes SonarCube checks with no more than 50 Critical errors&lt;/em&gt;&amp;rdquo; then work on it over time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Increment&amp;rsquo;s Code Coverage stays the same or gets higher&lt;/strong&gt; - Looking at a specific measure, like 90%, of code coverage is a read hearing and tells you nothing of code quality. However, it might be advantageous to monitor and measure for adverse change in code coverage, and we &lt;a href="https://nkdagility.com/blog/you-are-doing-it-wrong-if-you-are-not-using-test-first/" target="_blank" rel="external noopener noreferrer"&gt;always advocate for TDD practices &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Increment meets agreed engineering standards&lt;/strong&gt; - You should decide rules for naming of methods, tests, variables and everything in-between. Start small and add over time. Link to your agreed standards on a Wiki and continuously improve and expand your rules. Automate if possible.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acceptance Criteria for Increment pass&lt;/strong&gt; - Making sure you at least meet the prescribed criteria is a laudable goal and &lt;a href="https://nkdagility.com/blog/you-are-doing-it-wrong-if-you-are-not-using-test-first/" target="_blank" rel="external noopener noreferrer"&gt;automating them with ATDD practices &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; is even better.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acceptance Tests for Increment are Automated&lt;/strong&gt; - Make sure that you automate all of your tests. If you think something will break, then you should have a test for it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security Checks Pass on Increment&lt;/strong&gt; - Use an automated tool as part of your build and check for known security vulnerabilities. You will not find all of your security issues, but at least don’t do things we know to be reflective of poor Security.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Increment meets agreed UX standards&lt;/strong&gt; - Again, have a Wiki page and make sure that you check it twice. If you are not using an automated DoD entry, then you need to agree as a Team that you have met the criteria.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Increment meets agreed Architectural Guidelines&lt;/strong&gt; - Wiki&amp;rsquo;s are fantastic for this, but automate what you can.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whatever &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#commitment-definition-of-done" target="_blank" rel="external noopener noreferrer"&gt;Definition of Done &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; you come up with it is unlikely that your entire Product currently meets the criteria. You are not yet doing Scrum. Before you start Sprinting, you need to focus on making sure that your current Increment meets your new Definition of Done. Focus on Quality, which is what the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#developers" target="_blank" rel="external noopener noreferrer"&gt;Developers &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; are accountable for, and make sure that your &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#increment" target="_blank" rel="external noopener noreferrer"&gt;Increment &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; meets that new quality bar before you start. The next Increment can only reach the quality bar of all those that came before do, but you can and should &lt;a href="https://nkdagility.com/blog/can-the-definition-of-done-change-per-sprint/" target="_blank" rel="external noopener noreferrer"&gt;add to that quality bar &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;The &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#commitment-definition-of-done" target="_blank" rel="external noopener noreferrer"&gt;Definition of Done &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; is the commitment to quality for the &lt;a href="https://nkdagility.com/the-2020-scrum-guide/#increment" target="_blank" rel="external noopener noreferrer"&gt;Increment &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Create a usable increment that meets your definition of done and then start sprinting. Keeping your software in a working state &lt;a href="https://nkdagility.com/getting-started-with-modern-source-control-system-and-devops/" target="_blank" rel="external noopener noreferrer"&gt;will require a modern source control system that provides you with the facility to implement good DevOps &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; practices.&lt;/p&gt;


  
&lt;h2 id="growing-your-definition-of-done-dod"&gt;Growing your Definition of Done (DoD)&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s super important that quality is always increasing, and that means that you will need to at least reflect on your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#commitment-definition-of-done"&gt;Definition of Done&lt;/a&gt; on a regular cadence. In &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/"&gt;Scrum&lt;/a&gt;, this cadence is defined by your Sprint length, and you have a Kaizen moment at the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#sprint-retrospective"&gt;Sprint Retrospective&lt;/a&gt;. That does not mean that you don’t reflect on your DOD all the time, you do. You reflect continuously on whether your increment currently meets your DoD, and what you need to do to get it there. You should always be reflecting on whether your DoD fits your needs. If your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; finds that something is missing from the DoD halfway through the Sprint, then they should go ahead and add it, making sure that they are not endangering the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#commitment-sprint-goal"&gt;Sprint Goal&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You may discover that you have a performance problem with your product as David Corbin pointed out in my previous post. How do we make sure that we fix that issue? As I see it there are two pieces to this once you are in flight. You can Scrumble (stop Sprinting because of poor quality), and fix it, or you can integrate this new knowledge into your product cycle.&lt;/p&gt;
&lt;p&gt;If it is a significant issue that results in you not having working software, then you need to stop and fix. In Scrum, this is called a Scrumble, as a reflection that the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; stumbled because something is missing. You should stop adding new features and create a usable increment before you continue Sprinting and adding new features. Once you have repaired the issue, you can increase your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#commitment-definition-of-done"&gt;Definition of Done&lt;/a&gt; to make sure that all future &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#increment"&gt;Increments&lt;/a&gt; meet the new requirements.&lt;/p&gt;
&lt;p&gt;If it is less significant, you might want to keep working and add what you need to your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-backlog"&gt;Product Backlog&lt;/a&gt;. You can then deliver improvements over the next few Sprints that mitigate and then resolve the identified issue. Once you have resolved it, you can then pin the outcome by adding something to your DoD.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Always look for ways that you can increase your quality. What does your definition of done look like today?&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Metrics that matter with evidence-based management</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/metrics-that-matter-with-evidence-based-management/</link>
      <pubDate>Tue, 25 Feb 2014 13:29:14 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/metrics-that-matter-with-evidence-based-management/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Strategy</category>
      <category>Engineering Excellence</category>
      <category>Product Management</category>
      <description>Explains how evidence-based management uses reliable metrics and KPIs at team and organisational levels to drive better decisions, value delivery, and process improvement.</description>
      <content:encoded>&lt;p&gt;I was recently asked to speak at ALM Days in Dusseldorf and more specifically to create a talk on Metrics and KPI’s for Quality. As I have been working a lot recently with evidence-based management. I am pretty sure that my session title translates as “Test management and reporting – KIP’s for better decisions” so I am going to concentrate on reporting and KPI&amp;rsquo;s as the session before mine is on Agile Testing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;slideshare &lt;a href="http://nkdalm.net/1eVh1UP" target="_blank" rel="external noopener noreferrer"&gt;Metrics that matter with evidence-based management @ ALM Days in Dusseldorf &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;slideshare &lt;a href="http://nkdalm.net/1q4ZM7R" target="_blank" rel="external noopener noreferrer"&gt;The pursuit of Agility @ Agile into Finance in London &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image21-3-3.png" class="post-img-link" data-toggle="lightbox" data-caption="image2"&gt;
  &lt;img src="images/image21-3-3.png" loading="lazy" alt="image2" class="post-img" /&gt;
&lt;/a&gt; Figure: Testmanagement und Recording - KPIs für schnellere Entscheidungen&lt;/p&gt;
&lt;p&gt;There are really  two levels of metrics that I want to talk about, the first being at the team level and the second being the organisation level. If we are making decisions on the metrics that are being presented then we had better have the right metrics. I have recently been learning a lot about Evidence based Management and I think that it holds somewhat of the answer to which metrics we should be looking at and that we can consistently trend over time.&lt;/p&gt;
&lt;p&gt;Evidence-based Management (EBM) comes out of Evidence Based Practices that have been used extensively in medical fields. Where we have life and death being the result of our decisions we want to make very sure that our metrics are being accurate. What I think that we forget is that while not strictly life threatening the executive leadership of an organisation is making critical decisions based on the information that they get from their subordinates. If these metrics are not the right ones or totally the wrong ones then you could find a company plunged into a critical state. So what is EBM all about?&lt;/p&gt;
&lt;p&gt;In order to be using EBM we need to be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Evaluate the current outcomes in the organisation&lt;/li&gt;
&lt;li&gt;Carefully analyse the most likely contributors to these outcomes&lt;/li&gt;
&lt;li&gt;Implement improvements in short cycles&lt;/li&gt;
&lt;li&gt;Evaluate outcomes based on solid evidence.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If we were to apply these principals to organisations that deliver software what might these metrics look like?&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image81-19-19.png" class="post-img-link" data-toggle="lightbox" data-caption="image8"&gt;
  &lt;img src="images/image81-19-19.png" loading="lazy" alt="image8" class="post-img" /&gt;
&lt;/a&gt; Figure: Overview of Organisational Metrics&lt;/p&gt;
&lt;p&gt;Out of these metrics there are really only three that I can hope to calculate at the team level and the rest are organisational or product based. The three for the team are Cycle Time, Innovation Rate and Defects which are all data points that I can get from Team Foundation Server. There is also a whole host of circumstantial evidence that we can get from TFS.&lt;/p&gt;

    
    

  
&lt;h2 id="data-data-everywhere"&gt;Data, Data, Everywhere&lt;/h2&gt;
&lt;p&gt;Circumstantial evidence is data that we use to support our analysis and with Team Foundation Server we get a plethora of options. We still need to make sure that we are not looking at the wrong metrics and at least TFS metrics are much more difficult to game as they come from an auditable system. However…&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image171-1-1.png" class="post-img-link" data-toggle="lightbox" data-caption="image17"&gt;
  &lt;img src="images/image171-1-1.png" loading="lazy" alt="image17" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;…always check the data with the source.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image201-2-2.png" class="post-img-link" data-toggle="lightbox" data-caption="image20"&gt;
  &lt;img src="images/image201-2-2.png" loading="lazy" alt="image20" class="post-img" /&gt;
&lt;/a&gt; Figure: Data relationships in Visual Studio ALM&lt;/p&gt;
&lt;p&gt;There tends to be so much data in TFS that it can be difficult to sort out the information that can be useful from a project managers wet dream of exceptionally bad metrics. I bet every developer has seen metric used for the wrong results. Have you ever been measured on the number of lines of code that you have written? Or a tester by the number of bugs found? The result is people gaming the system.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/WP_20140225_11_42_35_Pro-25-25.jpg" class="post-img-link" data-toggle="lightbox" data-caption="WP_20140225_11_42_35_Pro"&gt;
  &lt;img src="images/WP_20140225_11_42_35_Pro-25-25.jpg" loading="lazy" alt="WP_20140225_11_42_35_Pro" class="post-img" /&gt;
&lt;/a&gt; Figure: Reports in Visual Studio ALM&lt;/p&gt;
&lt;p&gt;There is so much data available that it can be difficult to know where to start and indeed this is the reason that there are only a few reports out of the box with TFS. Not only can it be dangerous to provide to many reports that “generically” apply, you would invariable be wrong and have angry teams at your door with pitchforks and torches. And above all we need to avoid vanity metrics…&lt;/p&gt;
&lt;p&gt;I worked at Meryl Lynch back in the day as a developer we had to provide some data in a spread sheet up the chain. It amazed me that my box, the Lead Developer for my Team, would massage the statistics a little to make them slightly more favourable. Turning the KPI’s from just a little to many red to a little more green and orange. Not only that but his boss would take those massaged figures, merge it with all his lead developers, and then proceed to massage them himself… Can you imagine the total fiction that the person at the top of the chain gets? And what decisions are they making based on that fiction?&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image26-4-4.png" class="post-img-link" data-toggle="lightbox" data-caption="image26"&gt;
  &lt;img src="images/image26-4-4.png" loading="lazy" alt="image26" class="post-img" /&gt;
&lt;/a&gt; Figure: Project Estimate Overview from the Project Overview Report&lt;/p&gt;
&lt;p&gt;At one of my customers I was presented with the “Project Overview Report” that consisted of a ring bound book of data that was viewed all the way at the 3C’s level.  The keystone report was the “Project Estimate Overview” report with which the lead BA and owner of the report was very proud. The report showed the original estimate versus the actual time taken to deliver a project. I looked at the report for all of 30 seconds before I turned to him and said:&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;“Two of these projects have original estimates that are within 20%, one is within 10% and the other two are exact or almost exact matches. I call bull shit.” -MrHinsh on being presented with the report above&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;The answer I got was interesting to say the least. He said:&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;“Well Martin, we were so far off with our estimates that we had to come up with a solution. We created a system that allowed the a project manager to submit a change to the original estimate. Its all recorded and above board.” -Customer&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;Wait what? Where in the graph above is that reflected… well of course it is not. The whole purpose is to legalize a fake report and cover their asses should someone challenge them on it, which no one did until an external consultant came along. I just hope that no one made any decisions at the executive level that resulted in the loss of jobs based on this fiction.&lt;/p&gt;
&lt;p&gt;SO what data can we look at?&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/WP_20140225_11_43_33_Pro1-26-26.jpg" class="post-img-link" data-toggle="lightbox" data-caption="WP_20140225_11_43_33_Pro"&gt;
  &lt;img src="images/WP_20140225_11_43_33_Pro1-26-26.jpg" loading="lazy" alt="WP_20140225_11_43_33_Pro" class="post-img" /&gt;
&lt;/a&gt; Figure: Stories Overview report&lt;/p&gt;
&lt;p&gt;One of the key reports in TFS for quality indicators is the overview report. The overview report comes in different flavours depending on the process template that you choose. You get the Requirements Overview, Backlog Overview, and the Stories overview pictured above. Whatever the format you get to see the maturity of each of the pieces of work that your team currently has underway. You can see the number of Tests that are passing and failing as well as he outstanding bugs.&lt;/p&gt;
&lt;p&gt;You should generally see more completeness at the top as these are displayed in backlog priority. I would also expect to see more passing tests the more ‘complete’ the feature. If you see something that is marked as very complete but has lots of outstanding bugs, few successful test results, or no test then you can be sure that the quality will not be high.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image32-6-6.png" class="post-img-link" data-toggle="lightbox" data-caption="image32"&gt;
  &lt;img src="images/image32-6-6.png" loading="lazy" alt="image32" class="post-img" /&gt;
&lt;/a&gt; Figure: Build Quality Indicators&lt;/p&gt;
&lt;p&gt;The automated build that you all obviously have on your software is another point of inspect and adaption for your code. You cant look at all of your codebase so trending some key build metrics will help us gain some general insight into the trends of your quality.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Active Bugs&lt;/strong&gt; – This is the number of bugs that are active at the time of the build&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code Churn&lt;/strong&gt; – The cumulative number of lines of code that have been touched between the last build and this one.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code Coverage&lt;/strong&gt; – The total percentage of your codebase that is covered by the tests that are executed as part of the build&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test Status&lt;/strong&gt; – The number of unit tests and their status&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When pulled together the representation of the Build Quality above shows that while code churn has been increasing the coverage has been dropping. While circumstantial, this would likely result in a reduction in quality and technical debt that will need to be paid back later. Indeed couple that with the reduction in bug count and increase in tests passing and you could construe that the wrong tests might also be being written. This signifies something to look into…&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image38-7-7.png" class="post-img-link" data-toggle="lightbox" data-caption="image38"&gt;
  &lt;img src="images/image38-7-7.png" loading="lazy" alt="image38" class="post-img" /&gt;
&lt;/a&gt; Figure: Build Success over Time&lt;/p&gt;
&lt;p&gt;If however I have many build I may not want to monitor each one in that level of detail. I can use the Build Success Over Time reports to figure out which ones I might want to delve into. Having some form of KPI’s for my builds allows me to see at a glance something that I might want to investigate and you can see above that both the Code Coverage and the Main Nightly Build are having issues. However the Continuous Integration build was doing poorly and now now improving.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image44-8-8.png" class="post-img-link" data-toggle="lightbox" data-caption="image44"&gt;
  &lt;img src="images/image44-8-8.png" loading="lazy" alt="image44" class="post-img" /&gt;
&lt;/a&gt; Figure: Martin’s Fitbit Status&lt;/p&gt;
&lt;p&gt;It is important to be less concerned with individual values and instead be more focused on trends. You need to know when the team has fallen off the waggon.&lt;/p&gt;


  
&lt;h2 id="creating-custom-reports"&gt;Creating custom reports&lt;/h2&gt;
&lt;p&gt;Being able to create custom reports is a mixed blessing. It is incredibly powerful however you then have to create custom reports…&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image47-9-9.png" class="post-img-link" data-toggle="lightbox" data-caption="image47"&gt;
  &lt;img src="images/image47-9-9.png" loading="lazy" alt="image47" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With TFS you get a complete Data Warehouse and Cube. The Data Warehouse is updated every 5 minutes and the cube once every few hours. This data has everything described above and more. It has data on Source Code, Work Item Tracking, Build, and Tests that is all related.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image50-10-10.png" class="post-img-link" data-toggle="lightbox" data-caption="image50"&gt;
  &lt;img src="images/image50-10-10.png" loading="lazy" alt="image50" class="post-img" /&gt;
&lt;/a&gt; Figure: Report Builder &amp;amp; Excel&lt;/p&gt;
&lt;p&gt;You can use Report Build to create reports in Reporting Services that you can render in the web and schedule. You can also just simply create reports in Excel and either run them locally or put them on Excel Services.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image56-11-11.png" class="post-img-link" data-toggle="lightbox" data-caption="image56"&gt;
  &lt;img src="images/image56-11-11.png" loading="lazy" alt="image56" class="post-img" /&gt;
&lt;/a&gt; Figure: Stories Released vs Unreleased&lt;/p&gt;
&lt;p&gt;I am no Excel reporting expert so I asked my colleague Steven Borg from Northwest Cadence for a few Excel TFS reports and he sent me this…&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image59-12-12.png" class="post-img-link" data-toggle="lightbox" data-caption="image59"&gt;
  &lt;img src="images/image59-12-12.png" loading="lazy" alt="image59" class="post-img" /&gt;
&lt;/a&gt; Figure: Test Case Automation&lt;/p&gt;
&lt;p&gt;…And this…&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image62-13-13.png" class="post-img-link" data-toggle="lightbox" data-caption="image62"&gt;
  &lt;img src="images/image62-13-13.png" loading="lazy" alt="image62" class="post-img" /&gt;
&lt;/a&gt; Figure: Defect by Severity and Cumulative Defect Detection Trend&lt;/p&gt;
&lt;p&gt;…mmmm data… and this one…&lt;/p&gt;
&lt;p&gt;However we do need to remember one thing….&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image65-14-14.png" class="post-img-link" data-toggle="lightbox" data-caption="image65"&gt;
  &lt;img src="images/image65-14-14.png" loading="lazy" alt="image65" class="post-img" /&gt;
&lt;/a&gt; Figure: Team Metrics only&lt;/p&gt;
&lt;p&gt;These may not be the metrics that you are looking for!&lt;/p&gt;


  
&lt;h2 id="beyond-the-team-metrics-that-really-matter"&gt;Beyond the team, metrics that really matter&lt;/h2&gt;
&lt;p&gt;If we look beyond the team we need metrics that scale a little better. The team metrics of code, code coverage, test coverage, and velocity are fine for a single team, however they do not work well for multiple teams.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image68-15-15.png" class="post-img-link" data-toggle="lightbox" data-caption="image68"&gt;
  &lt;img src="images/image68-15-15.png" loading="lazy" alt="image68" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What about that division you want to measure and create KPI’s for?&lt;/p&gt;
&lt;p&gt;There are two things to note before we get started on which KIP’s I am going to propose that we look at…&lt;/p&gt;
&lt;p&gt;First is some extensive Forrester analysis on metrics that saw that we often use the wrong metrics or focus on the wrong goal, also resulting in the wrong metrics. Effectively that metrics should match the goal and the goal, if we are going to be measuring an organisation, should be the delivery of value.&lt;/p&gt;
&lt;p&gt;The second is that The Sandish Group while re-examining the 50k some projects that they have listed in their analysis data base found an inverse relationship between projects deemed a success under PMI, and value delivered. So your goal should be delivering value and you better not use PMI to measure success…&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image74-16-16.png" class="post-img-link" data-toggle="lightbox" data-caption="image74"&gt;
  &lt;img src="images/image74-16-16.png" loading="lazy" alt="image74" class="post-img" /&gt;
&lt;/a&gt; Figure: Organisational Metrics from Agility Index&lt;/p&gt;
&lt;p&gt;There are few metrics that follow the evidence-based approaches described in “The Leaders Guide to Radical Management by Steven Denning” but one such emerging dataset is the Agility Index from Scrum.org. It looks at a number of areas shown above and concentrates on Value, Lead Time, and Quality.&lt;/p&gt;
&lt;p&gt;Within each area we have a number of data points that we collect. Each one brings a specific balance to the equation of wither we are providing value and how quickly that value can be implemented. And very specifically, each one is a leading metric. They are metrics that are directly related to the outcome and can often precede any negative results that we are trying to avoided.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/WP_20140225_12_10_41_Pro-27-27.jpg" class="post-img-link" data-toggle="lightbox" data-caption="WP_20140225_12_10_41_Pro"&gt;
  &lt;img src="images/WP_20140225_12_10_41_Pro-27-27.jpg" loading="lazy" alt="WP_20140225_12_10_41_Pro" class="post-img" /&gt;
&lt;/a&gt; Figure: Direct Evidence is Consolidated into one indicator&lt;/p&gt;
&lt;p&gt;The dataset that is the outcome of collecting the previous stats are then rolled up into a single indicator called the Agility Index. Scrum.org provides a tool for capturing the data and calculating the Agility Index in a consistent manor.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image80-18-18.png" class="post-img-link" data-toggle="lightbox" data-caption="image80"&gt;
  &lt;img src="images/image80-18-18.png" loading="lazy" alt="image80" class="post-img" /&gt;
&lt;/a&gt; Figure: Relating outcome to value creation&lt;/p&gt;
&lt;p&gt;There are really two types of evidence available to us:&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;Evidence, broadly construed, is anything presented in support of an assertion:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Strongest type of evidence is that which provides direct proof of the validity of the assertion.&lt;/li&gt;
&lt;li&gt;Weakest type of evidence is that which is merely consistent with the assertion, but doesn’t rule out contradictory assertions, as in circumstantial evidence.&lt;/li&gt;
&lt;/ul&gt;

  &lt;/blockquote&gt;

&lt;p&gt;This is Evidence-based Management (EBM) and while new in the world of software delivery it has been round for quite a while in the medical world.&lt;/p&gt;
&lt;p&gt;While we have the direct, strong, type of evidence from the left we still need  to look at the softer evidence of the right. These are the more circumstantial pieces that may or may not provide us with an assertion of affect on the strong evidence.&lt;/p&gt;
&lt;p&gt;If we look at the Skills, Knowledge, and understanding of the participants and the Practices, Tools, Architectures, and Standards that they have implemented to try and gain some insight into what might be limiting the direct evidence that we have on the value delivery. We can then take a look at things that we might change. Just as a doctor would gather some data before making a diagnosis.&lt;/p&gt;
&lt;p&gt;So what sorts of things might we want to take a look at?&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/WP_20140225_12_13_06_Pro-28-28.jpg" class="post-img-link" data-toggle="lightbox" data-caption="WP_20140225_12_13_06_Pro"&gt;
  &lt;img src="images/WP_20140225_12_13_06_Pro-28-28.jpg" loading="lazy" alt="WP_20140225_12_13_06_Pro" class="post-img" /&gt;
&lt;/a&gt; Figure: Practice domains of Agility Index&lt;/p&gt;
&lt;p&gt;Out of these broad domains above Scrum.org have identified over 300 practices that have been ordered and provide an organisation with a deeper, if circumstantial, understanding of where they might want to spend some investment.&lt;/p&gt;
&lt;p&gt;What would you want to do? Try something random or that is hot in the market? Or use Evidence-based Management to observe and analyse how work is done, asses the capabilities of the people doing the work and identify the most likely improvements to add value.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image89-21-21.png" class="post-img-link" data-toggle="lightbox" data-caption="image89"&gt;
  &lt;img src="images/image89-21-21.png" loading="lazy" alt="image89" class="post-img" /&gt;
&lt;/a&gt; Figure: Trend analysis of evidence&lt;/p&gt;
&lt;p&gt;If we go around that cycle of measure, diagnose, and then improve multiple times we can build up a picture of the trends within the organisation and a relationship between activates to improve and measureable results will emerge. This allows us to not only direct activity but to see the value derived for euros spent to implement improvements.&lt;/p&gt;
&lt;p&gt;Have you ever been asked to justify continued spending on activities that are designed to improve your processes?&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image92-22-22.png" class="post-img-link" data-toggle="lightbox" data-caption="image92"&gt;
  &lt;img src="images/image92-22-22.png" loading="lazy" alt="image92" class="post-img" /&gt;
&lt;/a&gt; Figure: Patterns within practices&lt;/p&gt;
&lt;p&gt;We should then be able to delve into each of the domains and identify which practice areas are improving and which are not to more explicitly diagnose additional improvements.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image95-23-23.png" class="post-img-link" data-toggle="lightbox" data-caption="image95"&gt;
  &lt;img src="images/image95-23-23.png" loading="lazy" alt="image95" class="post-img" /&gt;
&lt;/a&gt; Figure: The Agility Index Calculator&lt;/p&gt;
&lt;p&gt;The Agility Index calculator rolls all of the gathered evidence up and aggregates the values across all three dimensions into a single KPI to allow us to track trends and ROI.&lt;/p&gt;


  
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is a game changer for the software industry at large and create a credible set of metrics for the first time that can be used to guide process improvement initiatives regardless of the framework used to deliver that improvement. Agility Path, SAFe, or Kanban can be measured equally.&lt;/p&gt;
&lt;p&gt;Do you want to use Evidence-based Management to improve your processes?&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Building a release pipeline with Release Management with Visual Studio 2013</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/building-a-release-pipeline-with-release-management-with-visual-studio-2013/</link>
      <pubDate>Tue, 18 Feb 2014 16:30:59 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/building-a-release-pipeline-with-release-management-with-visual-studio-2013/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>DevOps</category>
      <category>Engineering Excellence</category>
      <description>Explains how to set up a scalable release pipeline using Release Management in Visual Studio 2013, covering continuous release, feedback environments, and DevOps practices.</description>
      <content:encoded>&lt;p&gt;With the release of Visual Studio 2013 we now have release management built right into the product that we can use to build a scalable release pipeline. It&amp;rsquo;s not perfect but it does hit the spot.&lt;/p&gt;
&lt;p&gt;Unlike the other Application Lifecycle Management (ALM) tools on the market Visual Studio ALM actually lives up to the name. Most tools out there tend to concentrate on a single angle. Specialising in work item tracking, source control or build. Then there are tools like HP ALM or Rational that have many integrated tools within the Application Development Lifecycle Management (ADLM) world. They in effect concentrate on the development side of the process and don&amp;rsquo;t look at deployment or operations. This i think is a critical gap as we bring DevOps into the fold and integrate the developers and operational work to provide better products. Indeed many of the most successful products out there were developed by the same folk that support it. Why do they continue to be successful? When there is no one else to blame for the mess you end up just cleaning it up.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image001-1-1.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image001"&gt;
  &lt;img src="images/clip_image001-1-1.png" loading="lazy" alt="clip_image001" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Figure: Introduction to Release Management in TFS 2013&lt;/p&gt;
&lt;p&gt;Visual Studio ALM has implemented the next level of delivery by incorporating continuous release right into the product. Notice that I said &amp;ldquo;Continuous Release&amp;rdquo; and not simply &amp;ldquo;Continuous Deployment&amp;rdquo;. I was asked recently be a colleague if I had meant deployment, and if not, why release. Well, here was my answer:&lt;/p&gt;
&lt;p&gt;Deployment is for those folks that can&amp;rsquo;t get it into Production. Releasing continuously with high quality is the real goal.&lt;/p&gt;
&lt;p&gt;Today&amp;rsquo;s world of software delivery is very different from that of even a few years ago. Lean-agile thinkers have been pushing continuous quality, feedback and delivery for quite some time as the only way to really deliver acceptable quality. Now, with the modern application lifecycle even large enterprises are using cloud and delivering to mobile. We are all moving towards that ideal on continuous delivery and for many companies it is already a reality. Even if your organisation is not ready for continuous release you should be releasing continuously even if the only folks that use that environment are within your team.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image002-2-2.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image002"&gt;
  &lt;img src="images/clip_image002-2-2.png" loading="lazy" alt="clip_image002" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Figure: Application lifecycle trends&lt;/p&gt;
&lt;p&gt;In the past it has only been the smaller development shops that have been able to deliver continuously, however as larger organisations see those smaller organisations taking their business they also need to change, if only to keep up. This is what happened to the Visual Studio ALM team with the 2010 release, they were behind the curve and they had to aggressively innovate to get ahead of it. With a modern development platform there really is no excuse to not delivering continuously. If your organisation wants any sort of business agility then they will need to be looking at agility in their supporting departments as they can only move at the pace of their slowest part.&lt;/p&gt;
&lt;p&gt;One of the most important supporting processes to both your development and operations teams when it comes to your software is something called a release pipeline. Even if you don’t know you have one, you do, you just may not have formalised it. A release pipeline is the process by which you get code from its text based from all the way through all of your environments to production. How long that takes can mean success or failure in the long run for your business. In a typical release pipeline we first compile our code and run unit tests before packaging it for deployment. This package would typically take the form of one or more binaries and this is what we are going to promote through our release pipeline.&lt;/p&gt;
&lt;p&gt;Teams have tried for many years to work within a source code promotion model and it just does not scale to agility and indeed is one of the many any-patterns that can make agility harder than it should be. Why should test, QA or even operations need to wait for you to merge and retest your code before they get a copy? More to the point, why are you changing it after it has been tested? Did you run all of your tests again? Your full regression? Really?&lt;/p&gt;
&lt;p&gt;Most teams, under pressure to deliver not only cherry-pick the changes that will be promoted between branch lines but almost always cherry-pick the tests that are run again. Your code coverage is only as good as the coverage attained since the last code change.&lt;/p&gt;
&lt;p&gt;To combat these many issues you need a solid binary promotion model for your release pipeline.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image003-3-3.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image003"&gt;
  &lt;img src="images/clip_image003-3-3.png" loading="lazy" alt="clip_image003" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Figure: Release Pipeline in Visual Studio ALM&lt;/p&gt;
&lt;p&gt;Your release pipeline is usually made up of a number of instances of your application that you need to update between your build and your production systems. I have tended towards call these environments &amp;lsquo;Feedback&amp;rsquo; rather than the traditional Dev, QA, and UAT as the old form pigeonholes them a little to specifically for what I want. All of these intermediary environments have one purpose and one purpose only, to provide the Development Team with feedback. Who the intended target is that you want to retrieve that feedback from is the only thing that really changes between instances.&lt;/p&gt;
&lt;p&gt;In the Release Pipeline for Visual Studio 2013 graphic above I have depicted four environments, the first two of which are owned and managed traditionally by the development team. The one constant we have through the flow is the tooling for deployment. We are using Release Management for Visual Studio 2013 for all of our environments however we are using different tooling to gather data from these environments. Feedback comes in many forms and while feedback from people provides the most value we sometimes need feedback from systems as well.&lt;/p&gt;

    
    

  
&lt;h2 id="development-realm"&gt;Development Realm&lt;/h2&gt;
&lt;p&gt;When we are within the realm of the Development Teams I am looking for feedback that will help the development team understand defects and usability issues. The team needs to understand if they have met the business requirements . They need data that tells them things about their test coverage as well as which tests are most impacted by the changes that my team had delivered since the last change. I want to know how much and often the code is changing as rapidly changing areas of my code may be problem areas as well as identifying where I my need my team to spend time refactoring.&lt;/p&gt;
&lt;p&gt;Here under the gaze of the Development Team we are mostly interested in functionality and quality:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test Impact&lt;/strong&gt; - Looking at how the changes that are being made to your system affect your tests is key to reducing the number of tests that you need to run and increasing your agility.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unit Test Coverage&lt;/strong&gt; - As a key quality indicator test coverage still needs to be taken with a pinch of salt. Look at test courage in conjunction with other metrics like code churn.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code Churn&lt;/strong&gt; - Code churn helps us understand how much or codebase is changing over time. Greater change is greater risk but again it is only an indicator.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acceptance Coverage&lt;/strong&gt; - Based on my acceptance criteria that I have pre-agreed with the business I need to know how good I am at meeting those criteria and when I am not how important it is to the product owner.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are all things that we need to look at as our software travels down our release pipeline. We need to be seeing an increase in maturity as our software makes it further towards production. The more often your push an increment of your software through the pipeline the more data points that you get. The more data points you get the more accurate your measure.&lt;/p&gt;
&lt;p&gt;While in the development realm we should be using Lab Management environments configured to execute our tests. The deployment capabilities of Lab Management were never that mature with the team that created it focusing more on vitalization than deployment. To relive this deficiency we can create dual environments so that we can &lt;a href="http://nkdagility.com/execute-tests-release-management-visual-studio-2013/" target="_blank" rel="external noopener noreferrer"&gt;execute test automation as part of our release pipeline &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; with the new Release Management tools.&lt;/p&gt;


  
&lt;h2 id="operational-realm"&gt;Operational Realm&lt;/h2&gt;
&lt;p&gt;As we get closer to production we start to need a different set of data we need operational data. This data is about what matters to those that are going to support your application even if it is the same folks as those that built it. Here we need to look at scalability and stability rather than meeting functional requirements. We need to monitor server performance, perhaps under load, and look at where there are gaps between support and action. All of this needs fed back to the Product Owner so that they can prioritise as needed to achieve the desired level of quality that meets the business needs.&lt;/p&gt;
&lt;p&gt;In the world of Operations and DevOps we need information on performance and stability:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Performance Counters&lt;/strong&gt; - Within your operating system there are a plethora of capture able metrics that allow you to identify where you might have problems. Getting access to this data in a way that you can slice it across multiple servers will allow you to scale quickly.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Load Test Results&lt;/strong&gt; - to really get good metrics we need to be able to exercise our applications. While it is hard to scale UI testing it is easy to scale up the calls that are a result of that testing. You can create recordings from scratch or intercept examples using Fiddler and turn them into parameterised and scalable tests that you can use to exercise your application to the brink.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Incidents&lt;/strong&gt; - how many incidents are required to be responded to by the team&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hopefully you are in the process of merging your operations and development teams but that does not mean that terms like operations and devops go away. It only means that they become more designations of types of work rather than of who will perform that work.&lt;/p&gt;


  
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;When you put these together, sometimes with a little overlap depending on how progressive your teams are, you get a release pipeline that is, and should be, a challenging gauntlet for your software. Software that makes it through the trial by fire should be stable, and scalable as well as functional.&lt;/p&gt;
&lt;p&gt;In other words… Quality.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Quality enablement to achieve predictable delivery</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/quality-enablement-to-achieve-predictable-delivery/</link>
      <pubDate>Wed, 24 Jul 2013 09:46:22 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/quality-enablement-to-achieve-predictable-delivery/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Strategy</category>
      <category>Engineering Excellence</category>
      <description>Explains how defining quality standards, acceptance criteria, and automation in software delivery leads to predictable outcomes, fewer bugs, and improved team performance.</description>
      <content:encoded>&lt;p&gt;You need quality enablement to achieve predictable delivery for your organisation which takes effort to achieve.&lt;/p&gt;
&lt;p&gt;I do a lot of ALM Assessments for companies and almost every customer that I speak to has unpredictable quality in the software delivery that they receive from their teams. This is not always the Development Teams fault and is often the result of an organisation that is finely tuned to minimise the ability to have a defined and predictable level of quality. In most cases this is due to a lack of a bar that quantifies the minimum things that need to be completed in order for and organisation to understand what i involved in each delivery.&lt;/p&gt;
&lt;p&gt;If you have no bar for delivery and thus no idea what needs to be completed for each thing to be delivered then how can you expect to make accurate (or at least as good as we can get) prediction on when things are going to be delivered? You would effectively have no empirical evidence to rely on for predictability of delivery. In addition, the varied quality level results in more bugs in production, which then puts those individuals’ responsible for adding features under more pressure. If you put developers under pressure they will consistently and increasingly cut quality to meet the same deliverable.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image11-1-1.png" class="post-img-link" data-toggle="lightbox" data-caption="image"&gt;
  &lt;img src="images/image11-1-1.png" loading="lazy" alt="image" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Figure: The Iron Triangle&lt;/p&gt;
&lt;p&gt;In addition many product backlogs lack acceptance criteria leaving the Development Team to guess at the basis by which the customer will accept that something is complete. Indeed because if this lack of acceptance criteria backlog items can often be deceptively large which puts the development team under greater pleasure for delivery and thus the cut quality.&lt;/p&gt;

    
    

  
&lt;h2 id="fix-quality-for-improved-predictability"&gt;Fix quality for improved predictability&lt;/h2&gt;
&lt;p&gt;The only way to successfully create predictable software delivery is to fix 3 of the 4 points of the Iron Triangle. In traditional software development quality is the hidden value and if you fix everything else it is Quality that suffers. Quality should be anchored with an explicit definition.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Definition of Done&lt;/strong&gt; – Your DoD is the fixed measure or explicit definition of quality for your software development process. It is a short measurable checklist which mirrors shippable that can and is applied to every unit of work delivered. It can be hard to define but without it we don’t know how much work needs to be done in order to ship any backlog item. Apply it at least to the output of the iteration and ideally to every backlog item that you complete.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acceptance Criteria&lt;/strong&gt; – While the DoD is applied equally to every backlog item acceptance criteria only applies to an individual item. All conversations between the Development Team, Product Owner and the Business should be reflected in the acceptance criteria so that things that are discussed are mot missed. This also serves to understand scale and encourages breaking down backlog items into smaller units of work. Once you understand what needs to be done to complete an item, overly large items become transparently obvious.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automated Builds –&lt;/strong&gt; Having automated builds that can measure the quality of your software is paramount to minimising the amount of work that the team needs to do to verify the software and creating automated acceptance tests and unit tests increase the validity of those builds. Ideally you should have an automated test (UI or Unit) for every acceptance criteria that was added to the backlog item.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automated Deployment&lt;/strong&gt; – Having automated deployment will force the team to create working software and allow you to build and maintain something that will minimize the cost of delivery. If the Development Team knows that the business can choose to ship at any time they are then under pressure to maintain that ship-ability and thus quality.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Doing all of these things will serve to make quality the goal not the lack of it.&lt;/p&gt;


  
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The way that we have traditionally measured our development teams have finely tuned them to fluctuate quality in order to meet aggressive delivery schedules. However this fluctuating quality only serves to reduce our ability to deliver and annoy our customers when they find the resulting bugs.&lt;/p&gt;
&lt;p&gt;The goal is to increase quality not reduce it but first we need to be able to measure that quality and enforce it.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Storms of Neglect The Perils of Not Delivering Usable Products in Agile Iterations</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/storms-of-neglect-the-perils-of-not-delivering-usable-products-in-agile-iterations/</link>
      <pubDate>Thu, 27 Jul 2023 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/storms-of-neglect-the-perils-of-not-delivering-usable-products-in-agile-iterations/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Tenet</category>
      <category>Product Development</category>
      <category>Scrum</category>
      <category>Product Management</category>
      <description>Failing to deliver a usable product at the end of each agile iteration leads to serious, compounding problems. Trust with stakeholders erodes as they repeatedly receive unfinished work, much like being handed loose laptop parts instead of a computer. Technical debt builds up rapidly, creating a looming backlog that becomes harder to fix over time. Teams that skip usable increments struggle to adapt, find themselves directionless without feedback, and see morale fade as their efforts fail to engage stakeholders. Delivering a usable product each iteration is essential for trust, alignment, adaptability, and maintaining true agility.</description>
      <content:encoded>&lt;p&gt;In light of the importance professional teams place on delivering usable, working products, I find myself compelled to address the woes that befall teams that need to adhere to this crucial tenet. We understand the need for working products; now, let us dissect the perils of straying from this righteous path.&lt;/p&gt;

    
    

  
&lt;h3 id="tldr"&gt;TL;DR;&lt;/h3&gt;
&lt;p&gt;Neglecting to deliver a usable product at the end of each iteration breeds an ecosystem of compounding issues. From eroding trust to &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt; and from sluggish adaptability to misaligned expectations, the outcomes go from bad to worse. Inspection and adaption should be our guide, helping us navigate towards professionalism and quality.&lt;/p&gt;


  
&lt;h3 id="what-happens-when-we-ignore-usable-working-product"&gt;&lt;strong&gt;What happens when we ignore usable working product?&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Erosion of Trust with Stakeholders:&lt;/strong&gt; Imagine walking into a store to purchase a laptop, only to be handed the bits and pieces with a pat on the back for your ‘future’ computer. The retailer can’t fathom why your faith dwindles. Similarly, with each iteration bereft of a usable product, the trust vested in you by stakeholders wears thin. Like sand slipping through fingers, trust is painfully hard to regain once lost.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tsunami of Technical Debt:&lt;/strong&gt; With each iteration that lacks a tangible product, you’re essentially signing IOUs against your future. This accrues as Technical Debt – a mammoth wave looming on the horizon. The resources required to address this increase exponentially as the interest piles on. Continuing down this road with abandon results in nothing but pain and suffering for everyone involved.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sluggish Adaptability – The Quicksand:&lt;/strong&gt; In the ever-changing landscape of customer needs, adaptability is key. Delivering usable increments is akin to the agile footing on uncertain terrain. When teams neglect this, it is like walking in quicksand – the more they struggle without clear direction, the deeper they sink. The lethargy in adaptation will drag them down as the world moves on; without them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Misaligned Expectations – A Compass Gone Haywire:&lt;/strong&gt; A usable product at the end of iterations acts as the compass, keeping stakeholders and the team aligned. Without this neither you nor your stakeholders have any &lt;a href="https://engineering-leadership.hinshelwood.com/tags/transparency/"&gt;transparency&lt;/a&gt; of what is going on and where we have arrived. The stakeholders expected one thing but got another, and the chasm between them widens with every iteration that the expectations are not validated.  We often get so far apart that we can’t see how we bridge that gap!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Decreased Morale – The Fading Flame:&lt;/strong&gt; Morale is the lifeblood of creativity and productivity. Delivering a working product is the kindling that keeps this fire alive in the team. Being able to see how the stakeholders use the product, are engaged by what we are creating, and care about the outcomes are the foundation of team morale. If we can’t see the stakeholders care about what we are creating, Im not sure why we would care…&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Feedback Drought – direction-lessness:&lt;/strong&gt; How do we know that we are heading in the right direction without feedback. When we encounter an obstacle and have to go around, how to we reorientate on the direction to go? Our usable working product is like our compass, allowing us to orienteer as effectively as we can towards our destination.  Without it, you’re navigating blind, guessing the direction based on our assumptions.&lt;/p&gt;
&lt;p&gt;Usable working product, every iteration, including the first, is the bedrock upon which we build the pillars of trust, alignment, adaptability, and quality. It is the very foundation of inspection and adaptation. Without it, we have no transparency, inspection, or adaptation!&lt;/p&gt;
&lt;p&gt;Without it, we are not agile.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Stop normalizing unprofessional behaviour in the name of agility</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/stop-normalizing-unprofessional-behaviour-in-the-name-of-agility/</link>
      <pubDate>Mon, 19 Apr 2021 14:04:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/stop-normalizing-unprofessional-behaviour-in-the-name-of-agility/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Ethos</category>
      <category>Scrum</category>
      <description>Agile practices demand high levels of professionalism, including diligence, discipline, and competence. Unprofessional behaviour, like failing to deliver a usable product increment each iteration or assigning work without clear understanding, is often excused as "how agile works" but actually undermines true agility. Agility requires continuous planning, knowledge, and readiness to adapt based on feedback, not less. The example of the Volkswagen engineer serving a three-year prison sentence for unethical code highlights the serious consequences of ignoring professional standards. Once aware that certain actions harm delivery and quality, continuing them moves from ignorance to incompetence, making it vital to uphold ethical and professional responsibility.</description>
      <content:encoded>&lt;p&gt;In &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; Events across the world, I hear repeated the phrase &amp;ldquo;that&amp;rsquo;s how agile works&amp;rdquo; when describing behaviours that are both unprofessional and the very opposite of an agile mindset. These behaviours will inhibit agility and are a result of a lack of understanding of the underlying principles.&lt;/p&gt;
&lt;p&gt;We need to stop normalising unprofessional behaviour and call it out whenever we hear it.&lt;/p&gt;
&lt;p&gt;In order for agility to function, we need professionalism; a focus on doing things right so that we don&amp;rsquo;t end up with our beards caught in the mailbox (Norwegian saying). Agility requires more planning, more knowledge, more diligence, more discipline, and more &lt;a href="https://engineering-leadership.hinshelwood.com/tags/competence/"&gt;competence&lt;/a&gt;&amp;hellip; not less! It&amp;rsquo;s harder to use agile practices as we are expected to have a usable product at all times, well, at least every iteration of a few weeks. We are most definitely not agile if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We don&amp;rsquo;t have a usable &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;increment&lt;/a&gt; at the end of every iteration -&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We constantly take on work that we don&amp;rsquo;t understand enough to have a reasonable degree of certainty that it will be completed within the timebox&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Our team members don&amp;rsquo;t understand how their daily work contributes to the goals and vision of the product&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We have a Tactical Goal that reflects a list of work to be completed&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We assign work to individuals and hold them accountable as such&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We create and organize ability-based groups within our team; programmers, testers, operations&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You have a deployment process that is not within the control of the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Team&lt;/a&gt; or is linear and bureaucratic.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You have a fixed set of requirements that cant be changed based on feedback&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the traditional world these behaviours were still present, however they were mitigated by time&amp;hellip; lots and lots of time.&lt;/p&gt;
&lt;p&gt;Think about the lead software engineer at Volkswagen that got a 3-year prison sentence for following orders and writing code that disabled the catalytic convertor when under emissions tests.&lt;/p&gt;
&lt;p&gt;Think about the engineers at Boeing that dont yet know their fate over the 737 Max.&lt;/p&gt;
&lt;p&gt;When you don&amp;rsquo;t know that these behaviours have a negative impact on our ability to deliver its ignorance, once you know and do it anyway, it&amp;rsquo;s incompetence. We have a moral and ethical responsibility to do the right thing, to protect our customer, our company, and ourselves.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Big Scrum: Are you doing mechanical Scrum</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/big-scrum-are-you-doing-mechanical-scrum/</link>
      <pubDate>Wed, 24 Jun 2015 13:43:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/big-scrum-are-you-doing-mechanical-scrum/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Ethos</category>
      <category>Scrum</category>
      <category>Product Development</category>
      <description>Many organizations adopt Scrum hoping for rapid productivity gains but are disappointed when they only follow the motions without embracing its core values and technical excellence. True effectiveness and faster delivery come from practicing Professional Scrum, which means living the principles and focusing on quality, not just the framework. Development managers should ensure their teams go beyond mechanical Scrum and invest in building a professional culture to achieve real results.</description>
      <content:encoded>&lt;p&gt;Last month I created an article for NDC Magazine on &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scaling/"&gt;Scaling&lt;/a&gt; &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt;. The guys at NDC must have liked it as they decided to put it on the cover. This article is a discussion and investigation into what it means to be a Professional &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Team&lt;/a&gt;, why we need it, and how we can scale it.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image001-1-1.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image001"&gt;
  &lt;img src="images/clip_image001-1-1.png" loading="lazy" alt="clip_image001" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href="http://issuu.com/developermagazine/docs/ndc-magazine-1-2015-web/28" target="_blank" rel="external noopener noreferrer"&gt;Download NDC Magazine 2015.1 as a PDF &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;]&lt;/p&gt;

    
    

  
&lt;h3 id="excerpt-from-the-article"&gt;Excerpt from the article&lt;/h3&gt;
&lt;p&gt;Many organisations move towards Scrum and Agile for the allure of hyper-productivity. This is the promise that led them to Scrum in the first place and they are, more often than not, sorely disappointed when they don’t achieve it. The easiest way to make Scrum as ineffective as possible, is to pay lip service to it. Forgetting about the values, principles, and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-excellence/"&gt;technical excellence&lt;/a&gt; that are the underpinning of its effectiveness.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/clip_image002-2-2.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image002"&gt;
  &lt;img src="images/clip_image002-2-2.png" loading="lazy" alt="clip_image002" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s just fine to start with mechanical Scrum and work from there. Just don’t expect to get the effectiveness that you desire without the other two pillars. You need all three of the pillars to be able to ship twice the features in half the time.&lt;/p&gt;


  
&lt;h3 id="the-desire-twice-the-features-in-half-the-time"&gt;The desire: Twice the features in half the time&lt;/h3&gt;
&lt;p&gt;No really! You can ship twice the features in half the time, but only with &lt;a href="https://engineering-leadership.hinshelwood.com/tags/professional-scrum/"&gt;Professional Scrum&lt;/a&gt;. In Professional Scrum we not only follow the framework, but enact the values and principles. In Professional Scrum we strive for technical excellence and really focus on doing the right thing and minimising &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-debt/"&gt;technical debt&lt;/a&gt; (yes, I know that unhedged fund is technically more accurate.)&lt;/p&gt;
&lt;p&gt;Jeff Sutherland talks often of using Scrum to make money as a venture capitalist. His company buys struggling software companies and turning them around. Jeff does this by implementing Professional Scrum and turning that struggling software organisation into a highly tuned, effective team that turns ideas into customer value. He can then sell that company for many time that which he bought it for; professionals are worth far more than cowboys.&lt;/p&gt;
&lt;p&gt;It beggars belief that so many organisations only practice flaccid Scrum and waste their investors&amp;rsquo; money. That’s bad when it is private investment, but down right criminal in a public company. And let&amp;rsquo;s not get started with the public sector.&lt;/p&gt;
&lt;p&gt;Is your organisation paying lip service to the values and principals? Does it feel more like &amp;lsquo;yeeha&amp;rsquo;, or a group of professionals?&lt;/p&gt;
&lt;p&gt;Mechanical Scrum is only the start [&lt;a href="http://issuu.com/developermagazine/docs/ndc-magazine-1-2015-web/28" target="_blank" rel="external noopener noreferrer"&gt;read more&amp;hellip; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;]&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>The Scrum Master is accountable for Delivery</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/the-scrum-master-is-accountable-for-delivery/</link>
      <pubDate>Thu, 30 Jan 2025 00:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/the-scrum-master-is-accountable-for-delivery/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Framework</category>
      <category>Scrum</category>
      <category>Product Development</category>
      <category>Leadership</category>
      <description>The Scrum Master is ultimately accountable for ensuring that the Scrum Team delivers a usable, working product increment every sprint, as delivery is the minimum measure of effectiveness in Scrum. While delivery is a shared responsibility, the Scrum Master’s unique role is to create and maintain conditions—through coaching, facilitating, and removing impediments—that make delivery inevitable. Delivery is non-negotiable; without it, the team cannot measure value or learn from feedback, making effectiveness impossible. A distinctive example illustrates this: code that never arrives in production means nothing has truly been delivered, regardless of effort or intent. Beyond just shipping software, the Scrum Master also fosters a culture of continuous improvement, maximises value while minimising waste, and bridges the team with the wider organisation to help everyone thrive.</description>
      <content:encoded>&lt;p&gt;Ultimately, the &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; Master is accountable for the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-team/"&gt;Scrum Team&lt;/a&gt;&amp;rsquo;s success. This includes &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-delivery/"&gt;product delivery&lt;/a&gt;, product success, Sprint outcomes, the team&amp;rsquo;s ability, and ensuring the team has the resources, skills, and ethos needed to succeed. While the entire Scrum Team shares accountability for delivery, the &lt;a href="https://engineering-leadership.hinshelwood.com/tags/scrum-master/"&gt;Scrum Master&lt;/a&gt;’s role is to create the conditions for effective delivery and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-improvement/"&gt;continuous improvement&lt;/a&gt;. Delivery is the minimum bar for effectiveness, without it, the team cannot measure or realise value. Without delivery, there is no &lt;a href="https://engineering-leadership.hinshelwood.com/tags/increment/"&gt;increment&lt;/a&gt;, no feedback, and no way to empirically assess value. A Scrum Team that delivers without value is ineffective but still functional. A Scrum Team that fails to deliver anything cannot be considered effective under any measure.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;Let the record show that I believe that, if you’re in the kind of organisation that will still fund Scrum Masters despite a long-in-the-tooth Scrum adoption, then you can bet your ass the Scrum Master is accountable for delivery. That’s because they should be facilitating the “aha” moments required of the team to address things like capacity, understanding, and level-setting with product and stakeholders when goals are just too big or infeasible.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;a href="http://www.linkedin.com/in/anderelle" target="_blank" rel="external noopener noreferrer"&gt;Elle Anderson &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;Scrum Masters should embrace their accountability for creating an environment where delivery is not just possible but inevitable. Effectiveness begins with delivery, then expands to encompass value, learning, and continuous improvement. This dual focus ensures that the Scrum Team not only meets the minimum bar but thrives well beyond it.&lt;/p&gt;

    
    

  
&lt;h2 id="the-scrum-master-is-accountable-for-delivery"&gt;The Scrum Master is accountable for Delivery&lt;/h2&gt;
&lt;p&gt;The success of a Scrum Team begins with their accountability for delivering a usable, working product at the end of every sprint, including the very first one. This principle is the backbone of Scrum&amp;rsquo;s empirical process, ensuring the team generates valuable feedback for continuous improvement of their product and the system. A working increment is non-negotiable; without it, there’s no way to inspect and adapt effectively or measure progress towards the team&amp;rsquo;s goals. By focusing on delivery as the minimum bar for effectiveness, the Scrum Team builds a foundation that doesn’t just deliver but delivers value consistently.&lt;/p&gt;
&lt;p&gt;Effectiveness is More Than Delivery, but Delivery is a Minimum.&lt;/p&gt;


  
&lt;h3 id="the-accountability-of-the-scrum-master-for-delivery"&gt;&lt;strong&gt;The accountability of the Scrum Master for delivery&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;At the heart of this framework lies the Scrum Master, who holds a pivotal accountability: enabling an environment where delivery becomes not just possible but inevitable. This accountability isn’t about executing the work but ensuring the team has the resources, strategies, and support needed to thrive.&lt;/p&gt;
&lt;p&gt;The Scrum Master is accountable for the effectiveness of the Scrum Team, and to achieve that, they need to have a level of authority that fits the context of the Scrum Team and the organisation. Ideally, they can pursue this accountability using influence and &lt;a href="https://engineering-leadership.hinshelwood.com/categories/leadership/"&gt;leadership&lt;/a&gt;, but in many organisations, this is impossible without an appropriate level of authority.&lt;/p&gt;
&lt;p&gt;Can a Scrum team be considered effective if they don&amp;rsquo;t deliver? The Scrum Master is accountable for the team’s culture and its collective ability to effectively deliver value each and every Sprint. If they fail to fulfil that accountability through the inability of the Scrum Team to deliver value, then they should be held accountable for that failure by the business. The Scrum Guide makes it clear that the Scrum Master’s accountability for the team&amp;rsquo;s effectiveness inherently ties to delivery, as the production of a usable increment every sprint is the foundational measure of a team’s success. The business holding the Scrum Master accountable for delivery in no way dilutes the collective accountability of the Scrum Team; instead, it reinforces the importance of every team member’s role in achieving this shared goal.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s entirely likely that &lt;a href="https://www.scrum.org/resources/blog/your-next-scrum-master-should-be-your-manager" target="_blank" rel="external noopener noreferrer"&gt;your next Scrum Master will be your manager &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="but-what-about-the-scrum-teams-shared-accountability-for-delivery"&gt;&lt;strong&gt;But what about the Scrum Team’s Shared Accountability for Delivery?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://engineering-leadership.hinshelwood.com/guides/scrum-guide/"&gt;Scrum Guide (2020)&lt;/a&gt; makes it clear: the entire Scrum Team is accountable for delivering a valuable, useful increment every sprint. That said, while delivery is a collective responsibility, the role of the Scrum Master has a unique slant: they are not &lt;em&gt;players&lt;/em&gt; on the field but the &lt;em&gt;coach&lt;/em&gt;. Their accountability lies in fostering an environment where effective delivery can happen consistently.&lt;/p&gt;
&lt;p&gt;Using a football analogy, the coach is ultimately held accountable for the team’s performance. They are responsible for strategy, facilitation, and ensuring the team has the resources and focus needed to succeed. The players, however, still own the execution. In Scrum, the Scrum Master is similarly accountable for enabling outcomes, not by doing the work themselves but by ensuring that the Scrum framework is effectively applied and the team functions optimally.&lt;/p&gt;
&lt;p&gt;While the entire Scrum Team is accountable for delivery, the Scrum Master ensures the conditions for success by addressing systemic issues and empowering the team to work efficiently.&lt;/p&gt;


  
&lt;h2 id="effectiveness-beyond-delivery"&gt;&lt;strong&gt;Effectiveness Beyond Delivery&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Effectiveness in a Scrum context spans far beyond simply delivering increments of software. However, let’s be clear: delivery is the baseline. Without delivery, the concept of effectiveness becomes moot. As I often say, “Effectiveness starts with delivery.” From there, we can layer on concepts like:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Delivering Meaningful Value:&lt;/strong&gt; Effectiveness isn’t about shipping anything and everything in the backlog. It’s about delivering increments that provide tangible value to the customer and the organisation. Efficiency doesn’t mean you’re effectively delivering meaningful and impactful things.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Maximising Value While Minimising Waste:&lt;/strong&gt; A truly effective team doesn’t just execute orders. They challenge assumptions, reduce unnecessary work, and focus on outcomes, not output. Scrum Masters facilitate this by fostering a culture of curiosity and continuous improvement.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Empowering Autonomous Teams:&lt;/strong&gt; The hallmark of an effective Scrum Master is the ability to cultivate a team that self-manages and self-optimises. This requires creating &lt;a href="https://engineering-leadership.hinshelwood.com/tags/psychological-safety/"&gt;psychological safety&lt;/a&gt;, enabling conflict resolution, and empowering the team to make decisions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Collaborating with Adjacent Teams:&lt;/strong&gt; Effective Scrum Masters actively work with and enable adjacent teams to align efforts, remove cross-team dependencies, and foster organisational coherence. By promoting collaboration across teams, they ensure a seamless flow of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/value-delivery/"&gt;value delivery&lt;/a&gt; across the organisation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fulfilling Organisational Accountability:&lt;/strong&gt; The Scrum Master has an accountability to the organisation beyond the team. This involves educating leadership about Scrum, advocating for systemic improvements, and helping the organisation embrace new ways of working. By bridging the team and the broader organisation, Scrum Masters enhance alignment and drive strategic value.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;


  
&lt;h2 id="why-delivery-is-the-minimum-bar"&gt;&lt;strong&gt;Why Delivery Is the Minimum Bar&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Here’s the reality: without delivery, there is no effectiveness to measure. Consider the &lt;a href="https://engineering-leadership.hinshelwood.com/guides/manifesto-for-agile-software-development/"&gt;Agile Manifesto’s&lt;/a&gt; first principle: &lt;em&gt;&amp;ldquo;Our highest priority is to satisfy the customer through early and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-delivery/"&gt;continuous delivery&lt;/a&gt; of valuable software.&amp;rdquo;&lt;/em&gt; Delivery is not the &lt;em&gt;end-all-be-all&lt;/em&gt;, but it is the minimum bar of &lt;a href="https://engineering-leadership.hinshelwood.com/tags/competence/"&gt;competence&lt;/a&gt; for a Scrum Team. A team that consistently fails to deliver usable increments cannot claim to be effective, no matter how skilled or engaged they are.&lt;/p&gt;
&lt;p&gt;Although from a single instance, this quote embodies the common failure of Scrum Teams to even meet this minimum bar:&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;The code that was done never arrived at production, nor did it come close to meeting DoD&amp;rsquo;s requirements, and by most standards, we did not deliver anything.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;While the team may have contributed to organisational learning or questioned the value of a particular initiative, their inability to deliver &lt;a href="https://engineering-leadership.hinshelwood.com/tags/working-software/"&gt;working software&lt;/a&gt; regularly is antithetical to Scrum. Cancelled sprints or pivots in direction are valid within the framework, but they do not negate the fundamental expectation: each sprint ends with a usable increment.&lt;/p&gt;
&lt;p&gt;Effectiveness requires delivery, but delivery itself is not the sole measure of effectiveness. It is, however, the critical foundation. A football team that consistently fails to score cannot be described as effective, no matter how skilled its players may be.&lt;/p&gt;


  
&lt;h2 id="the-scrum-masters-accountability-in-delivery"&gt;&lt;strong&gt;The Scrum Master’s Accountability in Delivery&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;The Scrum Master is a &lt;a href="https://engineering-leadership.hinshelwood.com/categories/lean/"&gt;lean&lt;/a&gt;-agile practitioner with &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-mastery/"&gt;technical mastery&lt;/a&gt;, business mastery, and organisational evolutionary mastery that can provide training, &lt;a href="https://engineering-leadership.hinshelwood.com/tags/coaching/"&gt;coaching&lt;/a&gt;, &amp;amp; &lt;a href="https://engineering-leadership.hinshelwood.com/tags/mentoring/"&gt;mentoring&lt;/a&gt; as needed within the context of the team, the product, and the organisation. This is &lt;a href="https://engineering-leadership.hinshelwood.com/articles/hiring-a-professional-scrum-master/"&gt;not an entry-level position but represents an experienced product professional&lt;/a&gt; who can enable the whole Scrum Team to take accountability for delivery by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ensuring &lt;a href="https://engineering-leadership.hinshelwood.com/tags/transparency/"&gt;Transparency&lt;/a&gt;:&lt;/strong&gt; Helping the team and stakeholders maintain clarity on progress, impediments, and value delivery through well-facilitated events and effective artefacts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Removing Impediments:&lt;/strong&gt; Proactively identifying and enabling the removal of blockers that hinder the team’s ability to deliver.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enabling &lt;a href="https://engineering-leadership.hinshelwood.com/tags/technical-excellence/"&gt;Technical Excellence&lt;/a&gt;:&lt;/strong&gt; The Scrum Master should have &lt;a href="https://engineering-leadership.hinshelwood.com/articles/are-technical-skills-required-to-be-a-scrum-master/"&gt;sufficient technical skills within the Scrum Teams&amp;rsquo; work context&lt;/a&gt; to advocate for and enable practices like design patterns, Test-Driven Development (TDD), &lt;a href="https://engineering-leadership.hinshelwood.com/tags/automated-testing/"&gt;automated testing&lt;/a&gt;, and &lt;a href="https://engineering-leadership.hinshelwood.com/tags/continuous-integration/"&gt;continuous integration&lt;/a&gt;, all of which are critical for sustainable delivery. Great Scrum Masters will also be able to teach these techniques.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Facilitating Empiricism:&lt;/strong&gt; Supporting the team in working empirically by fostering a cadence of inspect and adapt cycles, ensuring that learning is continuously integrated into delivery.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When delivery falters, stakeholders naturally look to the Scrum Master to understand and address the root causes. By taking ownership of systemic issues and facilitating improvements, the Scrum Master ensures the team’s consistent ability to deliver effectively.&lt;/p&gt;
&lt;p&gt;They take accountability for delivery!&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>If your backlog is not refined then you are doing it wrong</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/if-your-backlog-is-not-refined-then-you-are-doing-it-wrong/</link>
      <pubDate>Thu, 17 Dec 2020 09:00:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/if-your-backlog-is-not-refined-then-you-are-doing-it-wrong/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Framework</category>
      <category>Scrum</category>
      <category>Product Development</category>
      <category>Product Management</category>
      <description>A well-refined product backlog is essential for effective Scrum, as starting Sprint Planning with unclear or oversized items leads to confusion and missed goals. Developers should be able to look at backlog items for the next two sprints and fully understand and estimate them; if not, more refinement work is needed. Refinement should be continuous and practical, involving the whole Scrum Team and relevant experts in reviewing, clarifying, and breaking down items together—often in a workshop setting where each item is discussed, clarified, and re-estimated on the spot. The hallmark of successful refinement is when Developers can confidently select backlog items that fit into a sprint and most are delivered, while ongoing issues with incomplete work or rejected items signal a lack of adequate refinement. Ultimately, ready backlog items empower Developers to plan implementation effectively and allow Product Owners to forecast future releases.</description>
      <content:encoded>&lt;p&gt;Most &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#scrum-team"&gt;Scrum Teams&lt;/a&gt; that I encounter don’t do refinement of their &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-backlog"&gt;Product Backlog&lt;/a&gt; and try to work on things that they don’t understand correctly. However, if you get to the Sprint Planning event and your backlog is not ready, then you are doing it wrong. If what you build is not of good quality then you should &lt;a href="https://engineering-leadership.hinshelwood.com/blog/getting-started-definition-done-dod/"&gt;read about Defenition of Done&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nkdagility.com/the-2020-scrum-guide/" target="_blank" rel="external noopener noreferrer"&gt;Updated to reflect the 2020 Scrum Guide! &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

    
    

  
&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;If you get to the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#sprint-planning"&gt;Sprint Planning&lt;/a&gt; event and your &lt;a href="https://engineering-leadership.hinshelwood.com/tags/product-backlog/"&gt;Product Backlog&lt;/a&gt; Items for the next Sprint are not already of a size that can fit into the Sprint and fully understood by the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt;, then you are doing it wrong. You are heading for the rocks from the start, and you have no map of the shallows to prevent it.&lt;/p&gt;
&lt;p&gt;Although the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/"&gt;Scrum Guide&lt;/a&gt; does not define Refinement as an event, you should be doing it. You can come up with your Refinement event(s), or refine ad-hoc. Whatever you chose there is a simple measure of success. If your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; looks at something within the next 2 Sprints on the backlog and they don’t understand it, then you have work to do.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/naked-Agility-Scrum-Framework-Product-Backlog-920x720-1-2.jpg" class="post-img-link" data-toggle="lightbox"&gt;
  &lt;img src="images/naked-Agility-Scrum-Framework-Product-Backlog-920x720-1-2.jpg" loading="lazy" alt="If your backlog is not refined then you are doing it wrong" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you find that you can&amp;rsquo;t quite get things to fit and &lt;a href="https://engineering-leadership.hinshelwood.com/blog/a-better-way-than-staggered-iterations-for-delivery/"&gt;have to stagger iterations&lt;/a&gt;, or you are just not able to deliver at all, then a lack of refinement is usually at fault.&lt;/p&gt;


  
&lt;h2 id="what-does-ready-mean-for-a-product-backlog"&gt;What does ready mean for a Product Backlog?&lt;/h2&gt;
&lt;p&gt;If the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; does not understand the things that they are being asked to do how could they possibly agree that the items can fit in a Sprint? You will often find teams that don’t do refinement confused as to why they can&amp;rsquo;t get everything done in a Sprint. While we accept that in an empirical process like &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; that we, know less upfront than we discover as we go, merely taking a guess and hoping for the best is decidedly unprofessional.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&amp;ldquo;Selecting how much can be completed within a Sprint may be challenging. However, the more the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; know about their past performance, their upcoming capacity, and their &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-done/"&gt;Definition of Done&lt;/a&gt;, the more confident they will be in their Sprint forecasts.&amp;rdquo;&lt;br&gt;
-ScrumGuides.org&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;While we don’t need a &lt;a href="https://engineering-leadership.hinshelwood.com/tags/definition-of-ready/"&gt;definition of ready&lt;/a&gt;, we do need a working agreement between the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-owner"&gt;Product Owner&lt;/a&gt; and the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt;. In Scrum, the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; are the ones selecting work for the Sprint, and they are the only ones that can decide what they can do. &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; should be empowered to refuse to take items from the backlog that either they do not understand, or are too big to be completed in a single sprint. In general, I would expect that a &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#scrum-team"&gt;team&lt;/a&gt; take many items into their Sprint, so they need to be sized appropriately.&lt;/p&gt;
&lt;p&gt;Ready Backlog just means that the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; can select it with confidence.&lt;/p&gt;


  
      &lt;aside class="marketing-callout marketing-callout-CrossSell"&gt;
        &lt;h4 class="marketing-callout__title"&gt;Reading about it is a start. Capability is the point.&lt;/h4&gt;
        &lt;p class="marketing-callout__description"&gt;I teach this. Not from someone else&amp;#39;s slide deck: from the client work I was doing last week. Short sessions, applied inside your real work, spread over weeks until it sticks.&lt;/p&gt;
        &lt;a href="https://courses.nkdagility.com" class="marketing-callout__link" data-ga-event="marketing_callout_click" data-ga-category="Marketing Callout" data-ga-label="training" data-ga-value="1" data-ga-param-position="3" data-ga-param-item-type="cross-sell"&gt;Find the right course or programme →&lt;/a&gt;
      &lt;/aside&gt;
&lt;h2 id="how-do-you-refine-your-backlog"&gt;How do you refine your backlog?&lt;/h2&gt;
&lt;p&gt;Refinement is not an explicit event in the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/"&gt;Scrum Guide&lt;/a&gt; because it is something that can be different depending on the Product, Domain, or Technology. If you were to ask how much refinement you should do then the answer is &amp;ldquo;as much as you need and no more&amp;rdquo;. Too much refinement is waste, as it too little.&lt;/p&gt;





  &lt;blockquote class="blockquote"&gt;
    &lt;p&gt;&amp;ldquo;Product &lt;a href="https://engineering-leadership.hinshelwood.com/tags/backlog-refinement/"&gt;Backlog refinement&lt;/a&gt; is the act of breaking down and further defining Product Backlog items into smaller more precise items. This is an ongoing activity to add details, such as a description, order, and size. Attributes often vary with the domain of work.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;-&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/"&gt;The 2020 Scrum Guide&lt;/a&gt;&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;p&gt;The amount of time that &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; spend on refinement is based on the need. However, this need for refinement will vary over the life of the product and you should be spending as much time as your need while maximizing focus on the realisation of value. I have found that many teams that were not doing refinement in the past may need considerably more time to get their backlog into some semblance of order. Once it is in order, you are generally only maintaining a rolling Sprint projection, based on your effective planning horizon, of what you might achieve.&lt;/p&gt;
&lt;p&gt;I usually run at least the first refinement as a guided workshop. By running one before a Sprint Planning most teams will see the value of it by the end of the next Sprint. For the workshop, I get the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#scrum-team"&gt;Scrum Team&lt;/a&gt; (&lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-owner"&gt;Product Owner&lt;/a&gt;, &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt;, &amp;amp; &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#scrum-master"&gt;Scrum Master&lt;/a&gt;) into a room with any necessary subject matter experts and we merely open the existing backlog and review it. Start at the top and ask the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-owner"&gt;Product Owner&lt;/a&gt; if this is the next most important thing? If not, find something that is. Then have the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-owner"&gt;Product Owner&lt;/a&gt; read and explain it, then discuss and add details.&lt;/p&gt;
&lt;p&gt;Any time the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-owner"&gt;Product Owner&lt;/a&gt; deviates from the text that is in the Backlog Item, or adds more information, stop and have someone add that info to the Backlog Item. Ask the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; to estimate the item, &amp;ldquo;Does this look like it can fit with many other friends into a single Sprint?&amp;rdquo;. If the answer is no, then you get to work breaking it down, reordering in the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#product-backlog"&gt;Product Backlog&lt;/a&gt;, and start refining again. You continue this process until the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; agrees that there is enough backlog refined for the next 2 Sprints.&lt;/p&gt;
&lt;p&gt;This enables your &lt;a href="https://engineering-leadership.hinshelwood.com/blog/release-planning-and-predictable-delivery/"&gt;Product Owner to be able to plan future releases&lt;/a&gt; and your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; to create an implementation plan for the current one.&lt;/p&gt;


  
&lt;h2 id="how-do-you-monitor-your-refinement-effectiveness"&gt;How do you monitor your refinement effectiveness?&lt;/h2&gt;
&lt;p&gt;During the &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#sprint-planning"&gt;Sprint Planning&lt;/a&gt; event, your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#developers"&gt;Developers&lt;/a&gt; should be able to quickly select many Product Backlog Items that go towards the chosen &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#commitment-sprint-goal"&gt;Sprint Goal&lt;/a&gt; and agree that they fit. If you can do this, and most of the time you get most (not all) of the Items delivered, then you are probably doing enough refinement. If you can&amp;rsquo;t, then you need to focus a little more on Refinement and making your Product Backlog ready.&lt;/p&gt;
&lt;p&gt;If at your &lt;a href="https://engineering-leadership.hinshelwood.com/the-2020-scrum-guide/#sprint-review"&gt;Sprint Review&lt;/a&gt; the &lt;a href="https://engineering-leadership.hinshelwood.com/blog/the-fallacy-of-the-rejected-backlog-item/"&gt;Product Owner is always wanting to reject that Backlog Items are complete&lt;/a&gt; then there is unlikely to be enough refinement for the Development Team to understand what they are expected to do.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Kalabule or a Professional at Agile in Africa</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/kalabule-or-a-professional-at-agile-in-africa/</link>
      <pubDate>Thu, 27 Oct 2016 18:01:00 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/kalabule-or-a-professional-at-agile-in-africa/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Philosophy</category>
      <category>Leadership</category>
      <description>Many software teams in Africa still operate unprofessionally, delivering poor results and blaming management, but customers should demand regular delivery of working software that meets their needs. Adopting true professionalism requires more than just following Scrum rituals or engineering practices; it means embracing values like courage, focus, commitment, respect, and openness. Development managers should lead by example and foster these values to raise industry standards and deliver better outcomes.</description>
      <content:encoded>&lt;p&gt;I have been honoured by being asked to speak at &lt;a href="http://agileinafrica.com/" target="_blank" rel="external noopener noreferrer"&gt;Agile in Africa &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; today on the topic of &lt;a href="http://agileinafrica.com/speaker/martin-hinshelwood/" target="_blank" rel="external noopener noreferrer"&gt;Kalabule or a Professional at Agile in Africa &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;. I was a little disappointed when Nana asked me, as I had already booked a customer on those dates in Houston, Texas. Nana asked if I could do remote, so I could attend anyway :). This is my second presentation at Agile In Africa, and it sounds like this years event is just as awesome as the last.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Download the Presentation:&lt;/strong&gt; &lt;a href="https://doc.co/C7HRwP" target="_blank" rel="external noopener noreferrer"&gt;&lt;strong&gt;Kalabule or Professional @ Agile In Africa&lt;/strong&gt; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have been covering the topic of Professionalism in software ever since I started doing the &lt;a href="https://engineering-leadership.hinshelwood.com/categories/scrum/"&gt;Scrum&lt;/a&gt; thing and finding that most companies, big and small, really have no idea what Scrum is beyond doing &amp;ldquo;Stand Ups&amp;rdquo; and &amp;ldquo;Demos&amp;rdquo;… neither of which are really part of Scrum…&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="https://nkdagility.com/wp-content/uploads/2016/10/clip_image001-2-2.png" target="_blank" rel="external noopener noreferrer"&gt;&lt;a href="images/clip_image001_thumb-1-1.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image001"&gt;
  &lt;img src="images/clip_image001_thumb-1-1.png" loading="lazy" alt="clip_image001" class="post-img" /&gt;
&lt;/a&gt; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Most teams working on software are kalabule (cowboys) who use excuses of poor management to try to seek forgiveness for their terrible software. Software that more often than not does not do what the customer asked for, was not delivered when they needed it, and cost far more than what they were expecting. That, my friends, is the experience of working with kalabule and con men…not professionals. The customers of these teams need to demand professionalism from the teams and vendors with the result being &lt;a href="https://engineering-leadership.hinshelwood.com/tags/working-software/"&gt;working software&lt;/a&gt; delivered on a regular cadence that meets their needs.&lt;/p&gt;
&lt;p&gt;There is no excuse any more for kalabule. None…&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="https://nkdagility.com/wp-content/uploads/2016/10/clip_image0014.png" target="_blank" rel="external noopener noreferrer"&gt;&lt;a href="images/clip_image0014_thumb-3-3.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image001[4]"&gt;
  &lt;img src="images/clip_image0014_thumb-3-3.png" loading="lazy" alt="clip_image001[4]" class="post-img" /&gt;
&lt;/a&gt; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Its was the last session in the day so I was expecting only a few people, but it looks like there was some turnout. Nana introduced the audience and I had Bankers, Farmers, and Software folks in the room. A good mix of Customers and Providers is always good when your message affects them both.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="https://nkdagility.com/wp-content/uploads/2016/10/clip_image0016.png" target="_blank" rel="external noopener noreferrer"&gt;&lt;a href="images/clip_image0016_thumb-4-4.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image001[6]"&gt;
  &lt;img src="images/clip_image0016_thumb-4-4.png" loading="lazy" alt="clip_image001[6]" class="post-img" /&gt;
&lt;/a&gt; &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I talked a lot about why we are kalabule in the software industry and that neither mechanical Scrum, nor mere &lt;a href="https://engineering-leadership.hinshelwood.com/tags/engineering-practices/"&gt;Engineering Practices&lt;/a&gt; alone can prevent the fear, disrespect, hidden rocks, and overall lack of commitment in the software industry. We also need some guiding values that we can use to make sure that we always do the right thing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Courage&lt;/li&gt;
&lt;li&gt;Focus&lt;/li&gt;
&lt;li&gt;Commitment&lt;/li&gt;
&lt;li&gt;Respect&lt;/li&gt;
&lt;li&gt;Openness&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If these values are not something that you want, not just building software, but simply interacting with others on a daily bases, then you have no business interacting with them.&lt;/p&gt;
&lt;p&gt;As an industry we need to step up and refuse to be kalabule (cowboys) and instead strive to be Professionals and embody the Values that we want to be known for. Its time to clean the unprofessional muck from our industry and reinvent ourselves…&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Constructing a framework for the TFS Automation Platform</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/constructing-a-framework-for-the-tfs-automation-platform/</link>
      <pubDate>Sun, 12 Jun 2011 04:44:02 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/constructing-a-framework-for-the-tfs-automation-platform/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Engineering Excellence</category>
      <description>Outlines the structure and components of a framework for the TFS Automation Platform, detailing its architecture, plugin management, and development approach.</description>
      <content:encoded>&lt;p class="post-img"&gt;&lt;a href="images/ALMRangersLogo_Small-1-1.png" class="post-img-link" data-toggle="lightbox" data-caption="ALMRangersLogo_Small"&gt;
  &lt;img src="images/ALMRangersLogo_Small-1-1.png" loading="lazy" alt="ALMRangersLogo_Small" class="post-img" /&gt;
&lt;/a&gt;As Lead developer for the TFS Iteration Automation my goal this weekend is to provide a framework for the developers to give both architectural and development guidance for the tools and methods we are going to be using to construct the Platform.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I have been working on a framework that will allow the developers to get started building for the TFS Automation Platform and specifically to meet the goals for Release 1. I should note that I am not writing any code at this time I am putting together the jigsaw and selecting some technologies.&lt;/p&gt;
&lt;p&gt;I have gone with two solutions. One to constrain all of the platform bits and another for the Automation that we will be building. The main reason for this is to dogfood the developer experience as we really want folks to start building Automations in the wild. If it is hard in any way then they will not.&lt;/p&gt;
&lt;p&gt;This method also allows us to both version and release the Automations separately from the platform and reduces our dependency on code changes in the core. The idea is that, just as everyone else will be doing, we build the Automations against the latest “released” bits. In our case, that will mean the latest “alfa” at the start, but needs must.&lt;/p&gt;

    
    

  
&lt;h2 id="tfsautomationplatform"&gt;TfsAutomationPlatform&lt;/h2&gt;
&lt;p&gt;While I intend to keep the Automation Platform as simple as possible, that does not mean that it actually is simple. There are really three parts to the Platform that need to be installed separately, but Mike’s help we should be able to have a unified installer.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image_thumb12-2-2.png" class="post-img-link" data-toggle="lightbox" data-caption="image"&gt;
  &lt;img src="images/image_thumb12-2-2.png" loading="lazy" alt="image" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure: The Platform needs to be very structured&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you are eagle eyed you will see that we are going to be using WIX, Silverlight and the new Architectural tooling in Visual Studio 2010 Ultimate.&lt;/p&gt;


  
&lt;h3 id="store"&gt;Store&lt;/h3&gt;
&lt;p&gt;The Store is like a big database of assets. In this case the assets are the Plugins that are available for TFS Administrators to install on their servers. This will be written in Silverlight 5 and can be hosted in IIS or Azure. Hopefully we will be providing a hosted version on Azure, but those with extreme security concerns may install it locally in IIS.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image_thumb13-3-3.png" class="post-img-link" data-toggle="lightbox" data-caption="image"&gt;
  &lt;img src="images/image_thumb13-3-3.png" loading="lazy" alt="image" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure: A simple model&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Hopefully as we move forward with new versions we can implement more to provide a culture and ecosystem around the store, but our initial goal is to deliver something that works. Lets worry about gold plating later.&lt;/p&gt;


  
&lt;h3 id="admin"&gt;Admin&lt;/h3&gt;
&lt;p&gt;This handles all of the grunt work of downloading, installing, Deploying, retracting and configuring plugins. Must be installed on the Application Tier.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image_thumb14-4-4.png" class="post-img-link" data-toggle="lightbox" data-caption="image"&gt;
  &lt;img src="images/image_thumb14-4-4.png" loading="lazy" alt="image" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure: Very Similar to the Store for now&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Admin section handles all of the magic of configuring and auctioning all of the Plugins.&lt;/p&gt;


  
&lt;h3 id="client"&gt;&lt;strong&gt;Client&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A hook to provide deep Visual Studio integration. Is optional, but lets you quickly link thorough to the Admin application. Will also provide dynamic Check-In Policies in the future. I am not really thinking a lot around this as it will probably not make R1.&lt;/p&gt;


  
&lt;h2 id="tfsautomationplugins"&gt;TfsAutomationPlugins&lt;/h2&gt;
&lt;p&gt;As we will be building a number of OOB (Out Of the Box) Automations it makes sense for us to build them as part of a single solution. This is just for ease of development and if we do have a separation of teams then we may end up with separate solutions. But for now it is easier with just one. We will however need to be careful not to reference between them as one could be deployed without the other.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/image_thumb15-5-5.png" class="post-img-link" data-toggle="lightbox" data-caption="image"&gt;
  &lt;img src="images/image_thumb15-5-5.png" loading="lazy" alt="image" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure: Where do the files go?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I will be looking more at the Plugins layout later, and how you can start building Plugins now. I will be upgrading my &lt;a href="http://tfseventhandler.codeplex.com" target="_blank" rel="external noopener noreferrer"&gt;TFS Event Handler &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; project code to this platform soon.&lt;/p&gt;
&lt;p&gt;I am trying very hard to make it easy to develop for this platform. I don’t think it will be something that anyone can do as there will be a learning curve for what goes where, and especially how you can debug against TFS in process.&lt;/p&gt;
&lt;p&gt;Now that everything is checked in, I will be encouraging my team mates to explore the solution.&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/SNAGHTML5342ea_thumb-6-6.png" class="post-img-link" data-toggle="lightbox" data-caption="SNAGHTML5342ea"&gt;
  &lt;img src="images/SNAGHTML5342ea_thumb-6-6.png" loading="lazy" alt="SNAGHTML5342ea" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure: Lots of lovely places to put code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let me know what improvements you can observe as noting is perfect, especially not if it was done by me.&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
    <item>
      <title>Guidance - Branching for each Sprint</title>
      <link>https://engineering-leadership.hinshelwood.com/articles/guidance-branching-for-each-sprint/</link>
      <pubDate>Thu, 08 Apr 2010 16:34:03 +0000</pubDate>
      <guid isPermaLink="true">https://engineering-leadership.hinshelwood.com/articles/guidance-branching-for-each-sprint/</guid>
      <dc:creator>Martin Hinshelwood</dc:creator>
      <category>Scrum</category>
      <description>Explains how using a separate version control branch for each sprint in Scrum improves code stability, release management, and team collaboration over using labels.</description>
      <content:encoded>&lt;p&gt;There are a lot of developers using version control these days, but a feature of version control called branching is very poorly understood and remains unused by most developers in favour of Labels. Most developers think that branching is hard and complicated. Its not!&lt;/p&gt;
&lt;p&gt;What is hard and complicated is a bad branching strategy. Just like a bad software architecture a bad branch architecture, or one that is not adhered to can prove fatal to a project. We I was at Aggreko we had a fairly successful Feature branching strategy (although the developers hated it) that meant that we could have multiple feature teams working at the same time without impacting each other. Now, this had to be carefully orchestrated as it was a Business Intelligence team and many of the BI artefacts do not lend themselves to merging.&lt;/p&gt;
&lt;p&gt;Today at SSW I am working on a Scrum team delivering a product that will be used by many hundreds of developers. SSW SQL Deploy takes much of the pain out of upgrading production databases when you are not using the Database projects in Visual Studio.&lt;/p&gt;
&lt;p&gt;With Scrum each Scrum Team works for a fixed period of time on a single sprint. You can have one or more Scrum Teams involved in delivering a product, but all the work must be merged and tested, ready to be shown to the Product Owner at the the Sprint Review meeting at the end of the current Sprint.&lt;/p&gt;
&lt;p&gt;So, what does this mean for a branching strategy?&lt;/p&gt;
&lt;p class="post-img"&gt;We have been using a “Main” (sometimes called “Trunk”) line and doing a branch for each sprint. It’s like Feature Branching, but with only ONE feature in operation at any one time, so no conflicts &lt;a href="images/StartinganewSprintinTFSCreatingabranch_D436-wlEmoticon-smile_2-3-3.png" class="post-img-link" data-toggle="lightbox" data-caption="Smile"&gt;
  &lt;img src="images/StartinganewSprintinTFSCreatingabranch_D436-wlEmoticon-smile_2-3-3.png" loading="lazy" alt="Smile" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p class="post-img"&gt;&lt;a href="images/StartinganewSprintinTFSCreatingabranch_D436-clip_image001_thumb-2-2.png" class="post-img-link" data-toggle="lightbox" data-caption="clip_image001"&gt;
  &lt;img src="images/StartinganewSprintinTFSCreatingabranch_D436-clip_image001_thumb-2-2.png" loading="lazy" alt="clip_image001" class="post-img" /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure: DEV folder containing the Development branches.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I know that some folks advocate applying a Label at the start of each Sprint and then rolling back if you need to, but I have always preferred the security of a branch.&lt;/p&gt;
&lt;p&gt;Like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;being able to create a release from Main that has Sprint3 code even while Sprint4 is being worked on.&lt;/li&gt;
&lt;li&gt;being sure I can always create a stable build on request.&lt;/li&gt;
&lt;li&gt;Being able to guarantee a version (labels are not auditable)&lt;/li&gt;
&lt;li&gt;Be able to abandon the sprint without having to delete the code (rare I know, but would be a mess if it happened)&lt;/li&gt;
&lt;li&gt;Being able to see the flow of change sets through to a safe release&lt;/li&gt;
&lt;li&gt;It helps you find invalid dependencies when merging to Main as there may be some file that is in everyone’s Sprint branch, but never got checked in. (We had this at the merge of Sprint2)&lt;/li&gt;
&lt;li&gt;If you are always operating in this way as a standard it makes it easier to then add more scrum teams in the future. Muscle memory of this way of working.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Don’t Like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Additional DB space for the branches&lt;/li&gt;
&lt;li&gt;Baseless merging between sprint branches when changes are directly ported&lt;br&gt;
Note: I do not think we will ever attempt this!&lt;/li&gt;
&lt;li&gt;Maybe a bit tougher to see the history between sprint branches since the changes go up through Main and down to another sprint branch&lt;br&gt;
Note: What you would have to do is see which Sprint the changes were made in and then check the history he same file in that Sprint. A little bit of added complexity that you would have to do anyway with multiple teams.&lt;/li&gt;
&lt;li&gt;Over time, you can end up with a lot of old unused sprint branches. Perhaps destroy with /keephistory can help in this case.&lt;br&gt;
Note: We ALWAYS delete the Sprint branch after it has been merged into Main. That is the theory anyway, and as you can see from the images Sprint2 has already been deleted.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Why take the chance of having a problem rolling back or wanting to keep some of the code, when you can just abandon a branch and start a new one?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It just seems easier and less painful to use a branch to me! What do you think?&lt;/p&gt;
&lt;p&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Scrum" target="_blank" rel="external noopener noreferrer"&gt;Scrum &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a href="http://technorati.com/tags/SSW" target="_blank" rel="external noopener noreferrer"&gt;SSW &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a href="http://technorati.com/tags/TFS&amp;#43;2008" target="_blank" rel="external noopener noreferrer"&gt;TFS 2008 &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a href="http://technorati.com/tags/TFS&amp;#43;2010" target="_blank" rel="external noopener noreferrer"&gt;TFS 2010 &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a href="http://technorati.com/tags/ALM" target="_blank" rel="external noopener noreferrer"&gt;ALM &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a href="http://technorati.com/tags/Branching" target="_blank" rel="external noopener noreferrer"&gt;Branching &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; &lt;a href="http://technorati.com/tags/Version&amp;#43;Control" target="_blank" rel="external noopener noreferrer"&gt;Version Control &lt;i class="fa-regular fa-arrow-up-right-from-square fa-2xs" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
</content:encoded>
      <media:content height="909" medium="image" type="image/png" url="/blob/images/engineering-leadership-in-ai-software.png" width="1731"/>
    </item>
  </channel>
</rss>