
There's no shortage of advice about how software should be built. The difficult part is applying that advice to a real product, with real deadlines, an existing codebase, and customers who would prefer that everything continue working.
I help teams improve practices such as Test-Driven Development, Behaviour-Driven Development, automated testing, refactoring, evolutionary design, continuous integration, and collaborative programming.
That doesn't mean pursuing perfect test coverage or refactoring every questionable piece of code on sight. It means building the feedback and confidence needed to make the next important change safely, and leaving the code a little better than we found it.
Sometimes that begins with a failing test. Sometimes it begins by trying to understand what a fifteen-year-old method is actually doing. Sometimes it begins by deleting something nobody needs.
As always, it depends. What doesn't change is the need for fast feedback, clear intent, and professional judgement.
Who this is for
Development teams who want to improve practices such as TDD, BDD, automated testing, refactoring, and collaborative programming.
What it involves
Test-Driven Development, Behaviour-Driven Development, automated testing, refactoring, evolutionary design, continuous integration, and collaborative programming.