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
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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 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 …
A better way than staggered iterations for delivery
Explains why staggered iterations harm software delivery, increasing technical debt, and recommends cross-functional teams, test-first, 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 …
Getting Started with Objectives & Key Results
Learn how to successfully implement OKRs by aligning clear strategy, fostering transparency, empowering teams, focusing on outcomes, and …
Deciphering the Enigma of Story Points Across Teams
Explains why Story Points are subjective and unsuitable for comparing teams, and highlights objective metrics like throughput and value for …
No Estimates and is it advisable for a Scrum Team to adopt it?
Explores whether Scrum Teams should adopt No Estimates, comparing estimation methods, team maturity, and metrics like cycle time, …
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 …
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 …
How to Evolve Your Definition of Done: Start Small, Grow Smarter, and Build Lasting Momentum
Unlock a smarter Definition of Done, start small, evolve standards, and build team momentum without overwhelm. Discover how progress drives …
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 …
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, …
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, …
97 resources, newest first
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 …
Git Flow should have died years ago
Explains why Git Flow is outdated for modern software, highlighting its drawbacks and recommending simpler workflows like GitHub Flow for …
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 …
Frequent releases are not just a technical strategy
Frequent software releases reduce risk, enable faster feedback, and help teams adapt to user needs, preventing costly mistakes and improving …
Mastering Market Leadership: The Power of Frequent Product Releases
Learn how frequent product releases help businesses lead markets, adapt quickly to change, boost user engagement, and deliver continuous …
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 …
Maximising Deployment Frequency: The Key to Faster Time to Market and Business Success
Explores how increasing deployment frequency, stable environments, and fast feedback loops improve software delivery, reduce time to market, …
Unlocking Continuous Delivery: How Feature Flags Transform Software Development
Explains how feature flags enable safe, incremental software releases, support continuous delivery, and use user feedback to improve …
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, …
Unlocking the True Power of Continuous Delivery: How Automation Transforms Software Development
Explains how automation in continuous delivery improves software reliability, reduces risk, and enables faster, safer deployments through …
Confronting Incompetence: How to Stop Shipping Bad Code and Tackle Technical Debt Effectively
Learn how to prevent bad code, distinguish technical debt from incompetence, and apply practical strategies like code reviews, testing, and …
Security by Design Building Secure Software
Explains how integrating security and quality early in software development, using practices like TDD, pair programming, and continuous …
Unlocking the Superpower of Software Development: How Shifting Left Transforms Quality Assurance
Explains how adopting a shift-left approach in software development improves quality, speeds up delivery, reduces costs, and fosters …
Shifting Left. Quality from the Start
Explores code review practices for quality assurance, highlighting automation, pull requests, and early defect detection to ensure …
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 …
The Power of Kaizen: Continuous Improvement in Scrum and Beyond
Explains how Kaizen’s continuous improvement principles enhance Scrum and Agile teams, with practical tips for retrospectives, workflow …
Detecting Agile BS: Lessons from the Department of Defense
Explores why true organisational agility needs more than Agile development, highlighting the importance of continuous delivery, quality, and …
Is Your Project Ecosystem Truly Agile?
Explains why true agility requires end-to-end automation and short feedback loops, not just Agile teams, to maximise value and efficiency …
Maximizing Transparency and Improvement in Software Engineering with Kanban
Learn how Kanban boosts transparency in software engineering, helping teams visualise workflows, identify bottlenecks, and drive continuous …
Why Limiting Work in Progress is Key to Success in Kanban
Limiting work in progress in Kanban helps teams focus, spot bottlenecks, maintain quality, and deliver value efficiently by ensuring a …