Agile Engineering Practices
In my workshops, I often have people who are focused on the question: “How can I help my team go faster?”, or “How can we deliver this Product sooner?” Whenever anyone asks, my answer is always the same: “You must slow down to go fast.” I then often get some puzzled looks.
In software development, the single best way to improve quality, and eventually speed, is writing less code. Most of the time spent writing code should be to understand the problem and then find the simplest solution to it. The practices used to facilitate this in Agile software development are popularly known as Agile Engineering Practices.

The list of modern engineering practices includes:
- 10 Minute Build - Your application or product is finished building before ADHD kicks in. It’s a form of fast feedback.
- Collective Code Ownership - No one person owns the code, the whole team does
- Pair Programming and Ensemble Programming - two people working on the code to improve its quality. When more of the team, both quality and throughput go up.
- Behaviour Driven Development - writing acceptance criteria collaboratively, often writing executable test cases.
- Continuous Integration and its big brother Continuous Delivery. Increase the frequency of integration to eliminate merge hell. When we can integrate frequently, then we can lean into Continuous Delivery. Hint: both require Trunk Based Development.
- Trunk Based Development - Long-lived branches lead to merge hell.
- Agile Architecture - Architecture still matters, we focus on emergent architecture over building the perfect plan.
- Unit Testing - isn’t about your test cases after you write your code. Nor is it about creating test cases with LLMs. Unit Testing is about ensuring you understand what your code is doing. Unit Testing requires Refactoring. Eventually, it leads to Test Driven Development.
Agile Pain Relief Blog Entries
- Scrum Anti-Patterns: The Hardening Sprint
- Engineering Adoption Strategy
- Misconceptions with Test Driven Development
- Scrum By Example – Waiting Too Long to Create Acceptance Criteria
- Scrum By Example – The Team Collaborate on Acceptance Criteria
- Test Driven Development is Not a Quality Assurance Technique
Related Books
- Agile Technical Practices Distilled - Pedro Moreira Santos, Marco Consolaro, and Alessandro Di Gioia
- Software Engineering at Google - Titus Winters, Tom Manshreck and Hyrum Wright (Caveat: we think Pair Programming and Ensemble Programming trump Code Reviews)
- Clean Code Principles and Patterns: A Software Practitioner’s Handbook - Petri Silen