tech·nic·al·ly agile class·i·fic·at·ion

Technical Mastery: Building Quality Through Engineering Excellence

Elevating software craftsmanship, architecture, and engineering practices to deliver sustainable quality, reduce complexity, and enable continuous improvement.

Achieving excellence in software craftsmanship, architecture, and engineering practices.

Image
https://nkdagility.com/resources/technical-mastery/

Overview

Technical Mastery refers to the pursuit of excellence in software craftsmanship, architecture, and engineering practices. It encompasses a deep understanding of technologies, methodologies, and tools that enable teams to create high-quality products efficiently. This mastery is crucial as it directly impacts a team’s ability to deliver value predictably and sustainably, fostering a culture of continuous improvement and innovation.

By cultivating Technical Mastery, organisations empower their teams to tackle complex challenges with confidence, ensuring that solutions are not only effective but also maintainable over time. This long-term focus on quality and skill development leads to reduced technical debt, enhanced collaboration, and improved responsiveness to changing market demands.

Moreover, Technical Mastery supports the principles of Agile and DevOps by promoting a shared understanding of best practices and fostering a mindset of experimentation and learning. It enables teams to implement robust engineering practices, such as automated testing and continuous integration, which are essential for maintaining a steady flow of value delivery. As teams become more adept at their craft, they can better align their efforts with organisational goals, ultimately driving greater success and resilience in an ever-evolving landscape.

Learn More about Technical Mastery

Blog

Stop Hiding Behind Complexity and Start Delivering Continuously

Continuous delivery is achievable for any software, regardless of complexity. Success depends on investment in automation, quality, and process improvement—not technical barriers.
Blog

Stop Promoting Branches

Explains why promoting code through multiple branches slows delivery, increases risk, and suggests GitHub Flow or Release Flow as simpler, safer alternatives for deployment.
Blog

Testing in Production Maximises Quality and Value

Explains how audience-based deployment and testing in production enable faster feedback, safer rollouts, and higher software quality by targeting real users and reducing risk.
Signals

Velocity isn’t how many story points a team burns down

Velocity measures how quickly teams turn ideas into value, using build, test, deploy, and feedback times—not just story points—to track real delivery speed.
Signals

Scrum Masters are not glorified meeting schedulers

Scrum Masters must have technical and business expertise to guide teams, improve code quality, and drive real agility—not just schedule meetings. Coding skills are essential.
Tags

Test First Development

Test First is a practice that defines success before implementation. It supports manual and automated testing, with a strong preference for automation to improve flow and quality.
Videos

Stop Paying the Hidden Costs of Weak Delivery: Why a Strong Definition of Done Transforms Your Team’s Results

Stop paying the hidden costs of weak delivery. Discover how a strong, shared definition of done builds trust, quality, and real agility in your team.
Videos

Stop Hoping for Quality: Why Automated Pipelines Are the Only Way to Deliver with Confidence

Stop relying on memory for quality. Discover why automated pipelines beat manual checks, and how embedding quality gates ensures trust, speed, and consistency.
Signals

Why Organisations Believe Their Software Is Too Complex for CD

Many organisations cite software complexity as a barrier to continuous delivery, but real obstacles are technical debt and lack of investment in quality and automation.
Engineering-Notes

Building a Resilient Token Server: Engineering for Flow, Fault Tolerance, and Speed

Explains how to engineer a robust, fault-tolerant token counting server using FastAPI and PowerShell, covering error handling, retries, fallbacks, and resilient workflows.
Engineering-Notes

How I Used Generative AI to Transform Site Tagging and Categories

Explains how generative AI and PowerShell scripts automate and improve blog post tagging and categorisation in Hugo, with human oversight and transparent audit trails.
Videos

How to Tackle Technical Debt Without Halting Progress: Smarter Ways to Keep Your Team Moving Forward

Struggling with technical debt? Discover practical ways to tackle legacy systems, boost team morale, and deliver value—without grinding to a halt.
Tags

Technical Excellence

Technical Excellence encompasses engineering practices and methodologies that enhance agility, improve code quality, and enable continuous delivery.
Blog

Your Evolving Definition of Done

Explains how the Definition of Done evolves in Scrum, aligning team practices with organisational standards to ensure consistent quality, compliance, and business value delivery.
Tags

Continuous Integration

Ensure fast, reliable development with Continuous Integration (CI). Merge code frequently, detect errors early, and maintain a healthy codebase.
Signals

The Hidden Costs of Supporting Multiple Versions in Production

Maintaining multiple production versions increases bugs, merge conflicts, and technical debt, making development harder and less efficient for engineering teams.
Signals

Do More Staging Environments Really Reduce Deployment Risk

Adding more staging environments does not reduce deployment risk; true safety comes from automated testing, continuous integration, and quality engineering practices.
Blog

Delivery is the only Measure of Progress in Scrum

Scrum teams must deliver working software to real users every Sprint; true progress is measured by delivery to production, not just by completing internal work.
Blog

Why Most Scrum Masters Are Failing and What They Should Know

Many Scrum Masters lack core Scrum knowledge and technical skills, leading to poor team support. Learn key competencies needed for effective, measurable impact.
Blog

Why Handoffs Are Killing Your Agility

Excessive handoffs in software development create delays, reduce quality, and harm team morale. Learn how eliminating handoffs boosts agility, flow, and value delivery.
Videos

Why a Shared Definition of Done Is the Secret to Consistent, Predictable Quality in Agile Teams

Struggling with inconsistent delivery? Discover why a shared definition of done is key to predictable, high-quality results your teams—and stakeholders—can trust.
Signals

Rethinking Dev-Test-Staging-Production Pipelines for Safety

Explores why traditional Dev-Test-Staging-Production pipelines fall short and highlights audience-based deployment for safer, faster feedback in real production environments.
Videos

The Power of Technical Excellence in Agile Development

Explores how technical excellence in Agile development reduces risk, prevents technical debt, and boosts product quality and delivery speed through strong engineering standards.
Videos

Transforming Chaos into Clarity: How Optimising Systems Fuels Engineering Excellence

Explores how optimising systems, reducing technical debt, and strong leadership improve engineering quality, productivity, and innovation while minimising chaos.
Videos

The Crucible of Learning: Transforming Organizational Effectiveness Through DevOps

Explores how DevOps transformation, refactoring, and ownership reduce technical debt, streamline development, and boost efficiency, team satisfaction, and business value.
Blog

Professional Scrum teams build software that works

Professional Scrum Teams prioritise software quality, accountability, and continuous improvement, ensuring each release is reliable, defect-free, and delivers real value.
Blog

Definition of Done - Objective vs Subjective

Explains the difference between subjective goals and the objective Definition of Done in Scrum, highlighting how clear, measurable criteria ensure consistent product quality.
Videos

Navigating Technical Debt: How to Transform Challenges into Opportunities for Quality and Efficiency

Explains how managing technical debt and distinguishing it from poor quality can boost product efficiency, reduce costs, and support sustainable software development.
Videos

Mastering Technical Debt: Strategies to Transform Challenges into Opportunities for Your Development Team

Explains technical debt in software development, its impact on teams, and practical strategies to identify, manage, and reduce it for long-term productivity and code quality.
Videos

Technical Debt Management for Long-Term Quality

Explains how managing and repaying technical debt improves software quality, delivery speed, and long-term value by addressing both known and unknown code issues.
Blog

Avoid the pick-n-mix branching anti-pattern

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.
Tags

Acceptance Test Driven Development

Drive high-quality software development with Acceptance Test Driven Development (ATDD). Define clear, testable acceptance criteria before implementation to ensure alignment with business needs.
    Videos

    The Hidden Costs of Poor Quality Code—and How to Turn It Into a Superpower

    Explores the financial, productivity, and reputational impacts of poor-quality code, and offers practical steps to turn code quality into a competitive advantage.
    Blog

    Getting started with a modern source control system and DevOps

    Learn key practices for adopting modern source control and DevOps, including automation, release pipelines, and team collaboration to improve software delivery quality.
    Blog

    You are doing it wrong if you are not using test first

    Explains how adopting test-first practices in software development improves quality, reduces bugs, and enables confident continuous delivery by validating requirements early.
    Signals

    Branch promotion is a relic of slow, manual software delivery

    Explains why modern software teams avoid branch promotion, using continuous integration, feature flags, and production-like testing to streamline delivery and reduce risk.
    Videos

    Transform Your Software Architecture: The Game-Changing Impact of TDD and Pair Programming

    Explores how test-driven development and pair programming improve software architecture, code quality, team skills, and long-term productivity by reducing complexity and errors.
    Videos

    Embracing Automation: The Key to Transforming Your Development Process and Boosting Confidence

    Explores how automation in testing, deployment, and validation streamlines development, reduces technical debt, and builds confidence for teams and customers alike.
    Videos

    Unlocking Code Quality: The Transformative Power of Frequent Deployments

    Explores how frequent code deployments improve code quality, reduce technical debt, enable faster feedback, and support iterative, user-focused software development.
    Blog

    Building a release pipeline with Release Management with Visual Studio 2013

    Explains how to set up a scalable release pipeline using Release Management in Visual Studio 2013, covering continuous release, feedback environments, and DevOps practices.
    Blog

    All technical debt is a risk to the product and to your business.

    Technical debt increases risk to products and businesses, leading to hidden costs, reduced quality, and slower delivery. Ignoring it can harm long-term value and growth.
    Blog

    Professional Scrum Developer (.NET) Training in London

    Intensive five-day course for software developers covering Scrum, Visual Studio 2010, .NET, and Agile practices through hands-on team sprints and real-world case studies.
    Videos

    Security by Design Building Secure Software

    Explains how integrating security and quality early in software development—using practices like TDD, pair programming, and continuous feedback—builds robust, reliable systems.
    Blog

    Quality enablement with Visual Studio 2012

    Explores how Visual Studio 2012 supports continuous quality enablement, automated testing, and rapid delivery in modern software development for higher user satisfaction.
    Blog

    Standard Environments for Automated Deployment and Testing

    Explains how to set up and use Standard Environments in Visual Studio 2012 TFS for automated software deployment and testing, enabling consistent, repeatable pipelines.
    Blog

    Automated Testing in a modern application lifecycle

    Explains the role of automated testing in modern software development, covering types, integration, benefits, challenges, and tools for maintaining code quality.
    Blog

    Solution: Testing Web Services with MSTest on Team Foundation Build Services 2010

    Explains how to configure MSTest for automated testing of web services on Team Foundation Build Services 2010, including handling dynamic server ports and build environments.
    Blog

    Fragile by Design: The Cost of Pretending to Be Resilient

    Explores how poor engineering, shallow product thinking, and organisational denial lead to fragile systems, stressing that true resilience requires rigorous, real-world testing.
    Tags

    Shift Left Strategy

    A Shift-Left Strategy brings testing, security, and compliance earlier in development, reducing defects, accelerating feedback, and improving quality for faster, more reliable delivery.
    Signals

    Technical debt isn’t just messy code

    Technical debt includes slow feedback, fragile systems, and manual processes that hinder progress. Addressing it early with automation and testing reduces long-term costs.
    Signals

    Scrum Teams don’t set the bar for quality—they meet it

    Scrum Teams uphold, not lower, quality by strictly following and evolving the Definition of Done, ensuring predictable releases and reducing technical debt and risk.
    Signals

    Scrum Teams don’t set the bar for quality—they meet it

    Explains why Scrum Teams must consistently meet, not lower, the Definition of Done to ensure software quality, manage risk, and prevent technical debt in agile projects.
    Signals

    Why Engineering Teams Use Staging Environments for Risk Reduction

    Explores how staging environments aim to reduce risk in software development, their hidden costs, and modern alternatives like feature flags and progressive rollouts.
    Signals

    Executives want predictability

    Lack of a clear, enforced Definition of Done leads to hidden risks, unreliable forecasts, and eroded trust in delivery, undermining predictability and organisational confidence.
    Signals

    Staging Environments Do Not Prevent Production Failures

    Staging environments can’t fully replicate production, often leading to false confidence. Real risk reduction comes from safe, incremental releases to actual users.
    Signals

    We don’t have time for automation—but manual testing slows releases and quality

    Manual testing limits release speed and quality, while automation enables faster, more reliable software delivery by reducing regressions and tester workload.
    Signals

    There no such thing as "good" technical debt

    Technical debt always harms productivity and system stability. Ignoring it leads to inefficiency and risk, making it essential to address rather than accept or normalise.
    Blog

    How to Build for Business Resilience and Continuity

    Learn key strategies for building business resilience and continuity, including observability, system decoupling, routine deployments, team empowerment, and rapid recovery.
    Videos

    Mastering Site Reliability: Insights from Azure DevOps on Building a Resilient Live Site Culture

    Explore proven strategies from Azure DevOps for building resilient, reliable software systems—covering transparency, automation, telemetry, incident response, and team culture.
    Videos

    Transforming Engineering Excellence: The Power of Naked Agility in Quality and Leadership

    Explores how adopting naked agility boosts engineering excellence, quality, and leadership by addressing technical debt, shifting left, and fostering a culture of improvement.
    Videos

    NKD Agility: Your partner in developing engineering excellence

    Learn how NKD Agility supports organisations in building engineering excellence through modern practices like performance engineering, testing in production, and leadership.
    Blog

    The Sprint is a container for Planning and not necessarily for Delivery

    Explains how Scrum Sprints are primarily for planning, not fixed delivery, and discusses aligning delivery schedules, continuous deployment, and improving software quality.
    Signals

    I’ll never understand teams that manage bugs instead of fixing them

    Highlights the importance of promptly fixing software bugs instead of managing backlogs, arguing that unresolved defects harm product quality and team effectiveness.
    Signals

    There a common belief that rollback is the ultimate safety net

    Rollback is often riskier than rolling forward, especially for stateful apps. Safer deployment relies on progressive delivery and fail-forward strategies, not reversals.
    Blog

    Testing in the modern application lifecycle

    Explores challenges and solutions for manual testing in agile software development, focusing on tracking, automation, actionable bugs, and integrated test management tools.
    Blog

    Create a Release Management pipeline for Professional Developers

    Step-by-step guide to building an automated Release Management pipeline for professional developers, covering build, deployment, environment setup, and parameterisation.
    Blog

    Unit Testing against the Team Foundation Server 2012 API

    Explains how to unit test applications against the Team Foundation Server 2012 API, focusing on handling authentication for automated and unattended test scenarios.
    Blog

    Developer Day Scotland

    Summary of sessions from a Glasgow developer event, covering refactoring, dynamic languages in .NET, MVVM for WPF, architecture, and ASP.NET 4.0 insights.
    Blog

    Team Foundation Build 2012 Issue - The target CleanWorkspacePackageTempDir does not exist

    Explains how to resolve the “CleanWorkspacePackageTempDir does not exist” build error in Team Foundation Build 2012 for upgraded ASP.NET MVC projects by updating project targets.
    Blog

    Log Elmah errors in Team Foundation Server

    Explains how to log Elmah error reports as work items in Team Foundation Server, including attaching error logs, using templates, and retrieving error details.
    Blog

    In-Place upgrade of TFS 2008 to TFS 2010 with move to new domain

    Step-by-step guide to upgrading Team Foundation Server 2008 to 2010, including in-place upgrade, build server update, and migrating to a new domain with key troubleshooting tips.
    Blog

    Creating a WIT Adapter for the TFS Integration Platform for a source with no history

    Explains how to build a TFS Integration Platform Work Item Tracking (WIT) adapter for a source system without history, covering versioning, field mapping, and error handling.
    Blog

    Reserve an Agent for a special build in Team Foundation Server 2012

    Explains how to reserve a build agent in Team Foundation Server 2012 using custom activities, agent tagging, and workflow changes to ensure reliable, isolated build execution.
    Blog

    Migrating data from FogBugz to TFS 2012 using the TFS Integration Platform

    Step-by-step guide to migrating FogBugz data to TFS 2012 using a custom CSV adapter with the TFS Integration Platform, including setup, mapping, and import tips.
    Blog

    Upgrading from TFS 2008 and WSS v3.0 with SfTSv2 to TFS 2010 and SF 2010 with SfTSv3

    Step-by-step guide to upgrading TFS 2008 and WSS v3.0 with SfTSv2 to TFS 2010 and SharePoint 2010, including process template migration and data handling.
    Blog

    Configuring a DC in Azure for AAD integrated Release Management

    Step-by-step guide to setting up a Domain Controller in Azure for Active Directory integration, including VM creation, configuration, and syncing with Azure AD.
    Blog

    Team Foundation Server 2010 Event Handling with Subscribers

    Explains how to create and deploy server-side event subscribers in Team Foundation Server 2010 using the ISubscriber interface to handle and process TFS events.
    Blog

    Solution - SEO permanent redirects for old URL’s?

    Explains how to set up SEO-friendly permanent redirects for old URLs to new ones in ASP.NET, covering best practices and code examples for preserving search rankings.
    Blog

    Wpf Ninject Dojo: The Data Provider

    Explains how to use a custom NinjectDataProvider in WPF to enable dependency injection for ViewModels, improving flexibility and design-time support in MVVM projects.
    Blog

    Creating a Data Access layer using Unity

    Learn how to build a flexible data access layer in .NET using Unity for dependency injection, interface mapping, and factory patterns with configuration support.
    Blog

    Creating a WPF Work Item Control

    Learn how to build a custom WPF work item control for Visual Studio Team System, enabling WPF UI integration in work item forms using a generic wrapper and IWorkItemControl.
    Blog

    Creating WCF Service Host Programmatically

    Explains how to programmatically create and configure a WCF Service Host in .NET, including base addresses, endpoints, bindings, and service behaviours for secure hosting.
    Blog

    Wpf Scale Transform Behaviour

    Explains how to use a WPF behaviour with attached properties to globally scale multiple UI controls at runtime, supporting MVVM and slider-based scale adjustment.
    Signals

    Best Branching Strategies for Development Teams Explained

    Explains why environment-based branching slows development, and recommends using feature flags and progressive rollouts for simpler, faster, and safer code delivery.
    Signals

    Too many teams overcomplicate their branching strategies

    Learn why simple branching strategies like GitHub Flow and Release Flow help teams deliver faster, reduce risk, and avoid the pitfalls of complex version control.
    Signals

    Technical debt cripples business agility and slows engineers down

    Technical debt limits business agility, slows engineering, and hinders innovation. Managing it with automation and transparency is key to staying competitive and responsive.
    Course

    Continuous Delivery Using Azure DevOps Services Training

    This two-day course provides students with the DevOps principles and related hands-on practices to work better as a team, scale their agility, share and integrate their work, and deliver working software continuously in order to enable faster delivery of value and receive early and valuable feedback.
    Course

    Applying Professional Scrum for Software Development (APS-SD) with Certification

    Experience APS-SD: Hands-on Scrum training for delivering quality software. Gain practical skills in Agile, DevOps, and Scrum principles. Free PSD I certification exam included. Enhance your software development expertise.
    Course

    Mastering Azure Repos Training

    Azure DevOps Services provide a set of cloud-hosted tools that software teams can use to quickly plan, develop, test, and deliver value in the form of working software. Azure Repos provide public or private Git repositories that enable better collaboration and cleaner code. To maximize learning, students will work in teams, in a common team project, on a common codebase.

    Connect with Martin Hinshelwood

    If you've made it this far, it's worth connecting with our principal consultant and coach, Martin Hinshelwood, for a 30-minute 'ask me anything' call.

    Concepts


    Categories


    Tags

    GitHub (4)
    Scaling (15)
    Windows (97)

    Our Happy Clients​

    We partner with businesses across diverse industries, including finance, insurance, healthcare, pharmaceuticals, technology, engineering, transportation, hospitality, entertainment, legal, government, and military sectors.​

    DFDS Logo

    DFDS

    Bistech Logo

    Bistech

    Emerson Process Management Logo

    Emerson Process Management

    Xceptor - Process and Data Automation Logo

    Xceptor - Process and Data Automation

    Higher Education Statistics Agency Logo

    Higher Education Statistics Agency

    Brandes Investment Partners L.P. Logo

    Brandes Investment Partners L.P.

    Trayport Logo

    Trayport

    Graham & Brown Logo

    Graham & Brown

    Deliotte Logo

    Deliotte

    Freadom Logo

    Freadom

    Workday Logo

    Workday

    Flowmaster (a Mentor Graphics Company) Logo

    Flowmaster (a Mentor Graphics Company)

    MacDonald Humfrey (Automation) Ltd. Logo

    MacDonald Humfrey (Automation) Ltd.

    CR2

    Slaughter and May Logo

    Slaughter and May

    Epic Games Logo

    Epic Games

    Jack Links Logo

    Jack Links

    Big Data for Humans Logo

    Big Data for Humans

    Ghana Police Service Logo

    Ghana Police Service

    New Hampshire Supreme Court Logo

    New Hampshire Supreme Court

    Washington Department of Enterprise Services Logo

    Washington Department of Enterprise Services

    Department of Work and Pensions (UK) Logo

    Department of Work and Pensions (UK)

    Royal Air Force Logo

    Royal Air Force

    Nottingham County Council Logo

    Nottingham County Council

    Big Data for Humans Logo

    Big Data for Humans

    MacDonald Humfrey (Automation) Ltd. Logo

    MacDonald Humfrey (Automation) Ltd.

    Healthgrades Logo

    Healthgrades

    Kongsberg Maritime Logo

    Kongsberg Maritime

    Slaughter and May Logo

    Slaughter and May

    CR2