Engineering Practices encompass a set of foundational techniques and methodologies that ensure the delivery of high-quality software in an Agile environment. These practices include clean code principles, automation, and test-first development, which collectively enhance the reliability and maintainability of software products. By embedding these practices into the development lifecycle, teams can achieve a predictable and sustainable flow of value to customers.
The significance of Engineering Practices lies in their ability to foster a culture of technical excellence and continuous improvement. They enable teams to respond swiftly to changing requirements while minimising technical debt, thus ensuring that the software remains adaptable and robust over time. This systemic approach not only enhances collaboration among cross-functional teams but also aligns technical efforts with business objectives, driving overall organisational agility.
Moreover, Engineering Practices support the implementation of Continuous Integration and Continuous Delivery (CI/CD) pipelines, which streamline the deployment process and reduce lead times. By prioritising quality at every stage of development, these practices empower teams to innovate confidently, ensuring that each release meets customer expectations and contributes to long-term success. The integration of these practices into daily workflows cultivates an environment where learning and experimentation thrive, ultimately leading to higher levels of team motivation and performance.
The strongest work on Engineering Practices — ranked by substance, not recency. How this is ranked
Stop Building Silos. Start Building Systems
Explains how fragmented automation and tool silos harm software delivery, and advocates for unified engineering systems and platform …
Is Agile Really Just a Mindset?
Explores Agile as a disciplined system of delivery, emphasizing engineering excellence, CI/CD, observability, and system design over mindset …
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 …
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 …
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 …
Your Evolving Definition of Done
Explains how the Definition of Done evolves in Scrum, aligning team practices with organisational standards to ensure consistent quality, …
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 …
Stop Building Silos. Start Building Systems
Explains how fragmented automation and tool silos harm software delivery, and advocates for unified engineering systems and platform …
Is Agile Really Just a Mindset?
Explores Agile as a disciplined system of delivery, emphasizing engineering excellence, CI/CD, observability, and system design over mindset …
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 …
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 …
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, …
How to Build for Business Resilience and Continuity
Learn key strategies for building business resilience and continuity, including observability, system decoupling, routine deployments, team …
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 …
Your Evolving Definition of Done
Explains how the Definition of Done evolves in Scrum, aligning team practices with organisational standards to ensure consistent quality, …
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 …
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 …
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 …
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 …
Unlocking Engineering Excellence: How Azure DevOps Transforms Traceability, Transparency, and the Developer Experience
Unlock engineering excellence with Azure DevOps, boost traceability, transparency, and developer experience for agile, high-performing …
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 …
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 …
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, …
Convert Legacy Projects and ASP.NET MVC Apps to SDK-Style with Confidence
Learn how to upgrade legacy .NET and ASP.NET MVC projects to SDK-style for easier builds, modern tooling, and future readiness, including …
70 resources, newest first
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 …
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 …
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 …
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 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 …
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 …
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 …
Unlocking the Future of Software Development: Why Automation is Your Key to Success
Explores how automation boosts software development by reducing errors, speeding up deployments, and ensuring consistent, high-quality …
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 …
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 …
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 …
Why Embracing Automation is Essential for Reducing Human Error in Software Development
Explores how automation in software development reduces human error, improves reliability, and streamlines workflows, using real-world …
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 …
Building a culture of Quality
Explores how fostering a culture of quality and engineering excellence across teams leads to better, safer products, highlighting the impact …
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 …
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 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 …
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 …
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 …
Getting started with a Definition of Done (DoD)
Explains how to create, apply, and improve a Definition of Done (DoD) in Scrum to ensure software quality, transparency, and consistent …
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 …
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 …
Professional Scrum teams build software that works
Professional Scrum Teams prioritise software quality, accountability, and continuous improvement, ensuring each release is reliable, …
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 …
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, …
Work can flow across the Sprint boundary
Explains how Scrum teams can strategically allow unfinished work to flow across Sprint boundaries, enhancing throughput, responsiveness, and …
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 …
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 …