Practice refers to consistent, repeatable techniques or habits that teams use to enhance their effectiveness, collaboration, and delivery of value. Unlike methods, which are structured approaches with defined steps, practices focus on habits that can be incorporated into a team’s regular workflow.
In Agile, Lean, and DevOps environments, practices like Pair Programming, Continuous Deployment, and Retrospectives are foundational. They are not one-time actions but ongoing, systematic routines that enable teams to work together efficiently and continually improve.
For example, Pair Programming is a practice where two developers collaborate closely to write code. This not only improves code quality but also facilitates knowledge sharing and team collaboration. Similarly, Retrospectives are a practice where teams reflect on their work processes to identify opportunities for improvement, making them a key tool for continuous improvement.
While tools may facilitate practices, they are not the practice itself. For example, a Kanban board is a tool used to support the practice of visualising work and managing flow, but the practice itself is in how the team manages their workflow using the board. Similarly, a method like Test-Driven Development (TDD) provides a structured process, while TDD practices are the consistent habits or routines (e.g., writing tests before code) that support its execution.
The long-term value of practices lies in their ability to embed behaviours that lead to predictable, sustainable outcomes. For instance, the practice of Continuous Deployment enables teams to release software frequently and reliably, thus enhancing responsiveness to customer needs and increasing feedback cycles.
What sets practices apart is that they are adaptable and evolve with the team. As teams grow and their environment changes, their practices adapt to new challenges and improve over time. This adaptability is essential in the fast-paced, ever-changing environments where Agile, Lean, and DevOps thrive.
In summary, practices are the backbone of effective teamwork. They are the daily actions, routines, and habits that shape how teams collaborate, improve, and deliver value. By cultivating strong practices, organisations can enhance team performance, drive continuous improvement, and remain responsive to both internal and external demands.
The strongest work on Practice — ranked by substance, not recency. How this is ranked
Telling People What to Do Is Not Leadership. It’s a Failure of System Design
Explores why real leadership means designing systems that enable team autonomy, flow, and accountability, rather than relying on …
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
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 …
From Legacy Pain to Modern DevOps: My Proven Roadmap for Real Engineering Transformation
Transform legacy engineering with a proven, step-by-step approach, learn how to automate, adapt, and build a resilient, modern DevOps …
Engineering Excellence Isn’t Perfection: How Continuous Improvement and Fast Feedback Drive Real Agile and DevOps Success
Engineering excellence isn’t perfection, it’s continuous improvement, clean code, and fast feedback. Unlock true agility with modern Agile …
Resilience is Part of the Product, Not an Afterthought
Resilience must be designed into products from the start, not added later. Build systems to detect, contain, and recover from failures, …
Stop Promoting Branches
Explains why promoting code through multiple branches slows delivery, increases risk, and suggests GitHub Flow or Release Flow as simpler, …
Estimating Better in an Overloaded System Is a Poor Man’s Strategy
High work in progress (WIP) causes delays and unpredictability; improving estimates won’t help. Limiting WIP and focusing on flow is key to …
Stop Testing Quality In: How Shifting Left Builds Better Software, Faster
Stop testing quality in, start building it in. Learn how shifting left, automation, and fast feedback loops drive engineering excellence in …
Telling People What to Do Is Not Leadership. It’s a Failure of System Design
Explores why real leadership means designing systems that enable team autonomy, flow, and accountability, rather than relying on …
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
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 …
Estimating Better in an Overloaded System Is a Poor Man’s Strategy
High work in progress (WIP) causes delays and unpredictability; improving estimates won’t help. Limiting WIP and focusing on flow is key to …
The Definition of Done is a Commitment to Quality
Defines the Definition of Done in Scrum as a clear, shared standard for quality, ensuring increments are releasable, transparent, and …
Why Topic Branches Drive High-Quality Delivery
Explains how short-lived topic branches in source control improve software quality, enable modularity, speed up integration, and support …
Stop Writing Business Logic in Stored Procedures
Explains why business logic should not be written in stored procedures, highlighting testability, maintainability, scalability, and …
Resilience is Part of the Product, Not an Afterthought
Resilience must be designed into products from the start, not added later. Build systems to detect, contain, and recover from failures, …
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 …
From Legacy Pain to Modern DevOps: My Proven Roadmap for Real Engineering Transformation
Transform legacy engineering with a proven, step-by-step approach, learn how to automate, adapt, and build a resilient, modern DevOps …
Engineering Excellence Isn’t Perfection: How Continuous Improvement and Fast Feedback Drive Real Agile and DevOps Success
Engineering excellence isn’t perfection, it’s continuous improvement, clean code, and fast feedback. Unlock true agility with modern Agile …
Stop Testing Quality In: How Shifting Left Builds Better Software, Faster
Stop testing quality in, start building it in. Learn how shifting left, automation, and fast feedback loops drive engineering excellence in …
Still Deploying Manually? Why Automation Is the Bare Minimum for Modern Engineering (and Your Business Survival)
Still deploying manually? Discover why automation isn’t optional, protect your business, avoid disaster, and deliver value with modern …
Why Your Definition of Done Is the Secret Weapon Your Team Needs to Win
Unlock your team's true potential, discover why a powerful definition of done drives real business impact, customer value, and lasting …
Legacy Systems Aren’t the Enemy, Friction Is: How to Unblock Innovation and Accelerate Agile Delivery
Is legacy tech slowing your team? Discover how removing friction unlocks agility, innovation, and faster delivery in your organisation.
Why Your Definition of “Done” Is Holding Back Quality, Agility, and Trust, And How to Raise the Bar
Is your team’s “done” really done? Discover how a clear, objective definition of done boosts quality, agility, and trust in product …
The Open Guide to Kanban: Unlocking Collaborative Flow and Real-World Value for Every Team
Unlock better flow and real value with the Open Guide to Kanban, a practical, community-driven resource for teams in any industry. Join the …
Stop Firefighting Bugs: Why Shifting Left Saves Time, Money, and Your Reputation
Stop firefighting late-stage bugs, discover how shifting left saves time, money, and reputation by building quality in from the start. Learn …
120 resources, newest first
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
Estimating Better in an Overloaded System Is a Poor Man’s Strategy
High work in progress (WIP) causes delays and unpredictability; improving estimates won’t help. Limiting WIP and focusing on flow is key to …
Stop Testing Quality In: How Shifting Left Builds Better Software, Faster
Stop testing quality in, start building it in. Learn how shifting left, automation, and fast feedback loops drive engineering excellence in …
Still Deploying Manually? Why Automation Is the Bare Minimum for Modern Engineering (and Your Business Survival)
Still deploying manually? Discover why automation isn’t optional, protect your business, avoid disaster, and deliver value with modern …
Telling People What to Do Is Not Leadership. It’s a Failure of System Design
Explores why real leadership means designing systems that enable team autonomy, flow, and accountability, rather than relying on …
From Legacy Pain to Modern DevOps: My Proven Roadmap for Real Engineering Transformation
Transform legacy engineering with a proven, step-by-step approach, learn how to automate, adapt, and build a resilient, modern DevOps …
The Definition of Done is a Commitment to Quality
Defines the Definition of Done in Scrum as a clear, shared standard for quality, ensuring increments are releasable, transparent, and …
Engineering Excellence Isn’t Perfection: How Continuous Improvement and Fast Feedback Drive Real Agile and DevOps Success
Engineering excellence isn’t perfection, it’s continuous improvement, clean code, and fast feedback. Unlock true agility with modern Agile …
Why Your Definition of Done Is the Secret Weapon Your Team Needs to Win
Unlock your team's true potential, discover why a powerful definition of done drives real business impact, customer value, and lasting …
Why Topic Branches Drive High-Quality Delivery
Explains how short-lived topic branches in source control improve software quality, enable modularity, speed up integration, and support …
Legacy Systems Aren’t the Enemy, Friction Is: How to Unblock Innovation and Accelerate Agile Delivery
Is legacy tech slowing your team? Discover how removing friction unlocks agility, innovation, and faster delivery in your organisation.
Why Your Definition of “Done” Is Holding Back Quality, Agility, and Trust, And How to Raise the Bar
Is your team’s “done” really done? Discover how a clear, objective definition of done boosts quality, agility, and trust in product …
The Open Guide to Kanban: Unlocking Collaborative Flow and Real-World Value for Every Team
Unlock better flow and real value with the Open Guide to Kanban, a practical, community-driven resource for teams in any industry. Join the …
Stop Writing Business Logic in Stored Procedures
Explains why business logic should not be written in stored procedures, highlighting testability, maintainability, scalability, and …
Resilience is Part of the Product, Not an Afterthought
Resilience must be designed into products from the start, not added later. Build systems to detect, contain, and recover from failures, …
Stop Firefighting Bugs: Why Shifting Left Saves Time, Money, and Your Reputation
Stop firefighting late-stage bugs, discover how shifting left saves time, money, and reputation by building quality in from the start. Learn …
DevOps: The Practical Path to Modernising Legacy Systems Without Starting Over
Unlock legacy system agility, discover how DevOps transforms slow, brittle tech into fast, scalable, and change-ready platforms without …
Evolving Engineering Practices to Improve Sprint Workflow in Scrum
Learn how evolving engineering practices like Feature Flags, TDD, and refactoring enable smoother Sprint workflows and reduce technical debt …
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, …
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 …
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 …
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 …
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 …
let-us do the maths
Explains how slow product release cycles delay feature delivery, risk losing relevance, and create competitive disadvantages, highlighting …
Too much refinement wastes time
Balancing backlog refinement prevents wasted effort and chaos. Aim for just enough detail so developers can plan sprints confidently without …
Not all surprises in product development are true unknowns
Many product development surprises stem from poor backlog management, not true unknowns. Regular refinement and reflection help teams …
Microsoft shift from 2-year cycles to 3-week Sprints caused team anxiety
Microsoft’s switch to 3-week Sprints increased team anxiety due to greater transparency, exposing inefficiencies but enabling faster, more …
Building the wrong thing is worse than fixing a bug
Most features don’t deliver value. Short feedback loops and real user input help teams avoid wasted effort by ensuring they build what users …
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 …
If every release feels high-risk, you lack a true Definition of Done
Releases feel risky when teams lack a clear Definition of Done. Learn how a strong DoD ensures stress-free, reliable software delivery with …
A changing Definition of Done undermines quality and predictability in teams
Frequent changes to the Definition of Done reduce team quality and predictability. Consistent, enforced standards are key to reliable …
Why Scrum Masters Need Technical Expertise to Guide Teams
Scrum Masters need technical expertise to effectively support teams, understand best practices, and bridge gaps between process and …
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 …
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 …
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 …
Understanding Blocked Columns and Stalled Work in Project Boards
Explains why using blocked columns for stalled tasks on project boards harms workflow, and suggests better ways to highlight and address …
Engineering can fix technical debt, but leadership has to invest in it
Technical debt requires leadership investment to resolve; without support for automation and quality improvements, continuous delivery is …
At the end of the day, Kanban is about improving flow
Kanban focuses on improving workflow by removing bottlenecks and constraints, reducing work in progress, and increasing process efficiency, …
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 …
Embrace Simplicity: How to Transform Complexity into Continuous Delivery Success
Explains how simplifying complex software and committing to change enables continuous delivery, highlighting the need for cultural shift, …
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 …
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, …
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 …
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 …
Deploying Windows OS Directly to Production: Then vs Now
Explains how Windows OS updates shifted from infrequent, risky releases to safe, staged rollouts using ring-based deployment and real-time …
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 …
Why Using a Blocked Column in Azure DevOps Is a Mistake
Explains why a “Blocked” column in Azure DevOps hinders workflow, and suggests using tags and tracking to manage blocked work more …
Not all delays are the same
Explains the difference between waiting and blocked tasks, why clear distinction matters in workflows, and how to track and address sources …
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 …
Every delay increases the risk of failure
Delaying software releases increases failure risk. Frequent, small releases improve success rates, adaptability, and recovery, as shown by …