Skip to content

Commit a5bf10d

Browse files
authored
Add new bulk updates (#710)
This pull request significantly expands the engineering excellence reference catalog by adding new case studies, improving classification handling, and refining catalog generation logic. The changes introduce additional engineering themes, ensure only the top classifications per post are included, and restructure how reference content is organized and referenced. **Enhancements to Catalog Generation and Classification Handling:** - Expanded the `$classificationNames` array in `.powershell/dev/Get-EngineeringExcelance.ps1` to include a comprehensive set of engineering, product, and organizational themes, enabling richer classification of reference materials. - Modified the script to aggregate resources from both `blog` and `case-studies` directories, broadening the scope of included content. - Updated catalog and content file logic to: - Store only the top 3 classifications (by score) for each post, rather than all classifications, for clearer and more relevant tagging. - Add an explicit `type` field to each catalog entry, improving metadata completeness. - Standardize content file paths and references to use the `reference` directory, ensuring consistency. [[1]](diffhunk://#diff-cbd15f01cfdb9e1145fafd8d3d5e83817f399e4548bd64bb9a7bb11e163ccc0aL61-R62) [[2]](diffhunk://#diff-cbd15f01cfdb9e1145fafd8d3d5e83817f399e4548bd64bb9a7bb11e163ccc0aR96-R122) **Addition of New Reference Case Studies:** - Added detailed case studies as new markdown files under `.resources/reference/content/`, covering: - A mentorship model transforming a distributed product management team (`reference-content-L7cngB1uzW9.md`). - Large-scale build and release system consolidation at SLB, emphasizing engineering ownership (`reference-content-PMnxyczoB1K.md`). - Organisational transformation in the Ghana Police Service using Scrum and empirical management (`reference-content-br0iGV9tHS5.md`). **Minor Content and Formatting Adjustments:** - Updated an existing reference content file to improve formatting and ensure the new classification structure is applied. [[1]](diffhunk://#diff-dce28ad99ec87f745d47aaaa27ba00486fc75e3c58d32ae86a09db0cf1ed8f0cR5) [[2]](diffhunk://#diff-dce28ad99ec87f745d47aaaa27ba00486fc75e3c58d32ae86a09db0cf1ed8f0cL43-L59) <!-- Reviewable:start --> - - - This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/nkdAgility/NKDAgility.com/710) <!-- Reviewable:end --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added new case study resources documenting organisational transformation and engineering excellence initiatives * Expanded reference content library with additional guidance materials * **Improvements** * Enhanced migration rates display with reorganised layout and additional rate categories * Refined content classification system with improved categorisation <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2 parents dba3377 + 65dea24 commit a5bf10d

File tree

7 files changed

+402
-80
lines changed

7 files changed

+402
-80
lines changed

.powershell/dev/Get-EngineeringExcelance.ps1

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ $levelSwitch.MinimumLevel = 'Information'
99
# Configuration
1010
$MinScore = 60 # Minimum score threshold (0-100, where 100 is best)
1111
$ChunkSize = 10 # Score range per file (60-69, 70-79, 80-89, 90-100, etc.)
12-
$classificationNames = @("Engineering Excellence", "Technical Leadership")
12+
$classificationNames = @("Engineering Excellence", "Technical Leadership", "Lean", "DevOps", "Product Development", "Accountability", "Capability", "Discipline", "Ethos", "First Principle", "Model", "Observability", "Practice", "Principle", "Strategy", "Tenet", "Operating Model", "One Engineering System", "Adaptive Operating Model", "Predictive Operating Model", "Engineering Practices", "Flow Efficiency", "Throughput", "Lead Time", "Cycle Time", "Value Stream Management", "Value Stream Mapping", "Continuous Integration", "Continuous Delivery", "Deployment Strategies", "Release Management", "Definition of Done", "Technical Debt", "Technical Excellence", "Reversibility", "Change Safety", "Metrics and Learning", "Empirical Process Control", "Evidence Based Management", "Customer Feedback Loops", "Decision Making", "Decision Theory", "Operational Practices", "Platform Engineering", "Internal Developer Platform", "Site Reliability Engineering", "Systems Thinking", "Sociotechnical Systems", "Organisational Physics", "Complexity Thinking", "Feedback Loops", "Flow", "Learning Systems", "Quality as a Constraint", "Authority and Accountability Alignment", "System Design")
1313

1414
# Load all blog posts
1515
Write-InformationLog "Loading blog posts..."
1616
$hugoMarkdownObjects = Get-RecentHugoMarkdownResources -Path ".\site\content\resources\blog\" -YearsBack 100
17+
$hugoMarkdownObjects += Get-RecentHugoMarkdownResources -Path ".\site\content\resources\case-studies\" -YearsBack 100
1718

1819
# Filter for posts with score above minimum, from 2018 onwards, sort by score descending
1920
$cutoffDate = [DateTime]::Parse("2018-01-01")
@@ -58,7 +59,7 @@ Write-InformationLog "Found $($allPosts.Count) blog posts with score >= $MinScor
5859

5960
# Ensure directories exist
6061
$referenceDir = ".\\.resources\\reference"
61-
$contentDir = ".\\.resources\\reference\\content"
62+
$contentDir = ".\\.resources\\reference\\reference"
6263
if (-not (Test-Path $referenceDir)) {
6364
New-Item -Path $referenceDir -ItemType Directory -Force | Out-Null
6465
}
@@ -92,28 +93,33 @@ foreach ($post in $allPosts) {
9293

9394
# Extract fields
9495
$itemId = if ($post.FrontMatter.ItemId) { $post.FrontMatter.ItemId } else { "unknown" }
96+
$ItemType = if ($post.FrontMatter.ItemType) { $post.FrontMatter.ItemType } else { "unknown" }
9597
$title = if ($post.FrontMatter.title) { $post.FrontMatter.title } else { "Untitled" }
9698
$tldr = if ($post.FrontMatter.tldr) { $post.FrontMatter.tldr } else { "" }
9799
$contentFileName = "reference-content-$itemId.md"
98100

101+
# Sort classifications by score and take top 3
102+
$topClassifications = $classificationResults | Sort-Object -Property score -Descending | Select-Object -First 3
103+
99104
# Add to catalog
100105
$catalogEntry = [ordered]@{
101106
id = $itemId
107+
type = $ItemType
102108
title = $title
103109
primary_classification = $primaryClassification
104-
scored = $classificationResults
110+
scored = $topClassifications
105111
tldr = $tldr
106-
content_ref = "content/$contentFileName"
112+
content_ref = "reference/$contentFileName"
107113
}
108114
$catalogEntries += $catalogEntry
109115

110116
# Create individual content file
111-
$contentPath = ".\.resources\reference\content\$contentFileName"
117+
$contentPath = ".\.resources\reference\reference\$contentFileName"
112118
$contentData = [ordered]@{
113119
id = $itemId
114120
title = $title
115121
tldr = $tldr
116-
classifications = $classificationResults
122+
classifications = $topClassifications
117123
content = if ($post.BodyContent) { $post.BodyContent } else { "" }
118124
}
119125

.resources/reference/content/reference-content--Z5GGUOjc-d.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ id: -Z5GGUOjc-d
22
title: Definition of Done - Objective vs Subjective
33
tldr: The Definition of Done (DoD) in Scrum is an objective, measurable checklist that sets the minimum quality standard for every product increment, distinct from the more subjective Product and Sprint Goals. Teams should ensure their DoD is clear, comprehensive, regularly reviewed, and as automated as possible, avoiding subjective approval steps. Development managers should treat the DoD as a non-negotiable baseline for quality, not a ceiling, and keep it updated to reflect evolving standards and business needs.
44
classifications:
5+
56
- label: Engineering Excellence
67
score: 94
78
- label: Technical Leadership
89
score: 77
9-
content: |
10+
content: |
1011
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 [Scrum]({{< ref "/categories/scrum" >}}), 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.
1112

1213
Contrast this with the [Definition of Done]({{< ref "/tags/definition-of-done" >}}) (DoD). The DoD is your team’s objective compass, a binary, quantifiable checklist that ensures every [Increment]({{< ref "/tags/increment" >}}) meets professional-grade quality. It’s non-negotiable and should be firmly rooted in your product’s brand, user expectations, and technical robustness.
@@ -40,23 +41,20 @@ content: |
4041
Each team working on a product would then be responsible for creating a DoD that is appropriate for their context within that product.
4142

4243
This is the seed that will grow into each teams unique quality bar that reflects this DoD. A robust reflection should be:
43-
4444
1. **Objective and Measurable**: Avoid vague criteria and instead focus on things that you can measure.
4545
2. **Comprehensive**: What are all the things that need to be true for a production deployment of your product to be deployed to production?
4646
3. **Living Document**: The teams DoD as needed to reflect evolving standards, technologies, and stakeholder expectations of the product as it grows.
4747

4848
### Common Pitfalls
4949

5050
Despite its critical importance, the DoD is often misunderstood, undervalued, or even undermined. Teams frequently:
51-
5251
- **Blur Subjective and Objective**: Adding criteria like “approved by the [Product Owner]({{< ref "/tags/product-owner" >}})”, which shifts focus from quality to stakeholder satisfaction. Any "approved by ... person or department" should be strictly avoided.
5352
- **Overlook Automation**: Relying on manual checks leads to inconsistencies and slower feedback loops.
5453
- **Treat the DoD as a Maximum**: Viewing it as a ceiling instead of a floor hampers innovation and improvement.
5554

5655
### Practices for Defining Done
5756

5857
To maintain focus on quality, consider the following practices:
59-
6058
1. **Automate Everything:** 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.
6159
2. **Review Regularly**: Incorporate DoD reviews in retrospectives to ensure its relevance and alignment with current product and organizational needs. Keep a list of "things that need to be true to deploy to production that we cant do yet", and regularly move these to Done.
6260
3. **Train Teams**: Ensure every team member understands the DoD and its importance in delivering professional-grade Increments.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
id: L7cngB1uzW9
2+
title: 'Beyond Training: How NKD Agility’s Mentorship Model Transformed a Product Management Team Across Borders'
3+
tldr: A UK insurance software company overcame misalignment between UK product managers and Polish engineers by adopting NKD Agility’s mentorship model instead of standard training. Through hands-on coaching, clearer roles, and real-world practice, teams improved collaboration, decision-making, and problem-solving, leading to higher engagement and better product outcomes. Development managers should consider immersive mentorship to drive lasting change and agility across distributed teams.
4+
classifications:
5+
- label: Engineering Excellence
6+
score: 85
7+
- label: Technical Leadership
8+
score: 92
9+
content: |
10+
## Client Context
11+
12+
A mid-sized UK-based insurance software company serving platforms like *ComparetheMarket* found themselves at a critical inflection point. Product management teams in the UK and engineering teams in Poland struggled to align. The challenge? Building products for a UK market that Polish engineers had no context for, combined with a broader confusion around roles, strategy, and delivery.
13+
14+
They had five product owners and a senior product manager, but no clarity on how to move away from top-down leadership to an agile, outcome-driven approach. Communication gaps, context loss, and fractured collaboration were stalling progress.
15+
16+
## The Ask: Product Owner Training
17+
18+
The initial request was standard: product owner training. But Martin Hinshelwood, Founder of NKD Agility, saw a bigger opportunity. He proposed a Product Management Mentorship Program, an immersive, work-integrated model rooted in deliberate practice.
19+
20+
### Diagnosis: A System Problem, Not a People Problem
21+
22+
Martin quickly identified systemic dysfunction:
23+
24+
- **A lack of shared understanding about what a Product Owner actually _does_**: Roles had titles, but little clarity on responsibilities, decision-making rights, or how success was measured. This confusion crippled prioritization and value delivery.
25+
- **Engineers disconnected from the business domain**: Developers in Poland were building features for the UK insurance market without understanding its regulatory nuances or customer expectations. This lack of context led to misaligned solutions.
26+
- **Misaligned priorities across geographies**: Product management in the UK and development in Poland were operating on different assumptions and uncoordinated timelines, leading to delivery friction and rework.
27+
- **Teams stuck between command-and-control habits and agile aspirations**: The organization wanted agility but was still making centralized decisions and enforcing control structures that prevented real empowerment.
28+
29+
This wasn’t about introducing a new framework. It was about re-engineering how learning, decision-making, and leadership happened day to day.
30+
31+
### Approach: Mentorship as Infrastructure
32+
33+
Over 8 weeks, Martin delivered a customized mentorship experience combining:
34+
35+
- **Core product management concepts from** [Scrum.org](http://Scrum.org): Grounding the team in a shared language and foundation of modern product thinking.
36+
- **Real-world examples and mirrors from other organizations**: Helping participants see that their challenges weren’t unique, and that other teams had overcome them.
37+
- **Weekly assignments to apply new practices inside real work**: Instead of theory, the team had to apply what they learned inside their backlog, sprints, and stakeholder conversations.
38+
- **Live coaching and feedback loops**: Each week provided space for reflection, challenge, and iteration, not just learning, but *changing*.
39+
40+
Instead of theory in a vacuum, teams got support applying change where it mattered: *inside their system of work*.
41+
42+
One week, two sub-teams were given the same assignment. One said, "We can’t do this here." The other succeeded. Same org, same resources. That contrast sparked peer learning, reflection, and creative problem-solving, real agile in action.
43+
44+
### Outcomes: Engagement, Capability, and Real Change
45+
46+
Within 8 weeks:
47+
48+
- **Product owners became more confident, capable, and collaborative**: They moved from passive coordinators to active shapers of value, engaging stakeholders and engineering with greater clarity.
49+
- **Engineering engagement increased as context improved**: Developers began to understand *why* features mattered, not just *what* to build, resulting in better technical decisions.
50+
- **Communication between UK and Poland became more fluid and effective**: With aligned language, goals, and rituals, the distributed teams began working as one.
51+
- **Teams began solving previously intractable problems on their own**: Empowered by deliberate practice, teams stopped escalating every challenge upward and started experimenting with local solutions.
52+
53+
The CEO later remarked:
54+
55+
> "After a full day of training and a time zone shift, they were still engaged, still asking questions, still figuring out how to make this stick. That tells me we’ve got something special happening here."
56+
57+
## Strategic Impact for CTOs and Tech Leaders
58+
59+
This case demonstrates what every CTO is seeking:
60+
61+
- **Technical Leadership**: By clearly defining roles, empowering decision-making, and supporting mentorship, the organization unlocked a stronger product-engineering partnership.
62+
- **Engineering Excellence**: With better context, reduced rework, and stronger feedback loops, the engineering function was able to improve both quality and throughput.
63+
- **Organizational Agility**: Instead of pushing frameworks, NKD Agility helped create conditions where people could own problems and lead change from where they stood, a hallmark of resilient, adaptive organizations.
64+
65+
Martin Hinshelwood doesn’t deliver courses. He delivers transformation, in context, in flow, and in partnership.
66+
67+
## Final Takeaway
68+
69+
Immersive mentorship is not a luxury. It’s the only path to sustainable, scalable change in complex environments.
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
id: PMnxyczoB1K
2+
title: 'Engineering Excellence in Action: How NKD Agility Helped SLB Streamline Build and Release Across 90 Teams and 13 Countries'
3+
tldr: NKD Agility helped SLB streamline build and release by guiding 90 teams across 13 countries to adopt a single source control system and consistent branching, shifting ownership of builds to the engineering teams. This reduced central build team size, improved developer autonomy, and made release management more predictable. Development managers should consider empowering teams with clear structure and shared responsibility to achieve faster, more reliable delivery at scale.
4+
classifications:
5+
- label: Engineering Excellence
6+
score: 95
7+
- label: Technical Leadership
8+
score: 92
9+
content: |
10+
## Client Context
11+
12+
[SLB](https://www.slb.com/) (formerly Schlumberger), a global energy technology company, had over 90 engineering teams in 13 locations across 9 countries contributing to a single product: Petrel. Each team operated independently, choosing its own source control system, build environment, and branching strategy. Some used Git, others Team Foundation Version Control (TFVC), SVN, or even in-house tools.
13+
14+
The result? A sprawling mess of incompatibilities, blind spots, and inefficiencies.
15+
16+
## The Ask: Build System Simplification and Consolidation
17+
18+
Martin Hinshelwood from NKD Agility was asked to assess the situation and recommend a path forward. The goal: consolidate build and source control processes to enable faster, more reliable, and more autonomous development.
19+
20+
### Diagnosis: Extreme Fragmentation and Build Fragility
21+
22+
Martin’s assessment uncovered:
23+
24+
- **An overloaded central build team**: Eight engineers were running 11,000 builds a day, producing 27 petabytes of data annually just to generate one working version of the product per month.
25+
- **Inconsistent tooling and branching**: Each team used their own tools and created custom branches, making traceability and integration nearly impossible.
26+
- **Lack of ownership and accountability**: The build process was treated as someone else's problem. Teams weren’t accountable for build quality or integration readiness.
27+
28+
### Approach: Advisory Engagement Rooted in Engineering Principles
29+
30+
Martin didn’t implement the solution directly. Instead, he provided:
31+
32+
- **A clear architectural recommendation**: Migrate to a single source control system (initially TFVC, later Git) and adopt a consistent branching model across all teams.
33+
- **Branching strategy and build design consulting**: Martin guided SLB on how to design a scalable branching structure that balanced autonomy and alignment.
34+
- **Education on engineering accountability**: He helped reposition build and release as shared engineering responsibilities, not something delegated to a separate team.
35+
- **Ongoing consultation throughout implementation**: While SLB owned the execution, Martin provided iterative guidance and validation.
36+
37+
### Outcomes: Ownership, Speed, and Significant Cost Reduction
38+
39+
- **Shifted ownership of build and release to engineering teams**: 90+ teams began managing their own builds and branches, removing bottlenecks.
40+
- **Reduced central build team from 8 to 2 people**: A leaner core team focused on platform support, not firefighting.
41+
- **Improved developer autonomy and morale**: Teams had the tools and responsibility to manage their own work, increasing throughput and engagement.
42+
- **Simplified engineering processes**: With one source control system and a standard branching model, release management became predictable and transparent.
43+
44+
## Strategic Reflection: Engineering Excellence Through Real Ownership
45+
46+
This case represents a core NKD Agility principle:
47+
48+
> Real engineering excellence isn’t about tighter control, it’s about giving teams the *right structure* so they can take responsibility for quality, speed, and stability.
49+
50+
Martin’s advice helped SLB do just that: reframe build and release as team-owned practices rather than operational burdens.
51+
52+
### Why It Matters for CTOs and Tech Leaders
53+
54+
- **Technical Leadership**: Empowering engineers to own build and release is a foundational move toward scalable, resilient development.
55+
- **Engineering Excellence**: This engagement demonstrates how structural advice, not new tooling alone, can unlock better results across distributed teams.
56+
- **Strategic Impact**: Simplification enabled better forecasting, reduced overhead, and made SLB’s engineering system more future-ready.
57+
58+
## Final Takeaway
59+
60+
When engineers own the system they work in, magic happens. NKD Agility helps organizations create the clarity, structure, and culture where that ownership can thrive.

0 commit comments

Comments
 (0)