One Defect, Two Fixes

Posted February 18, 2020 by Joshua Kerievsky in Continuous Delivery, Extreme Programming, Mob Programming, Refactoring, Software Design, Test Driven Development

In A Tale of Two TDDers, I quickly documented what I see as two different defect-fixing behaviors of Test-Driven Development practitioners. I spent all of about ten minutes writing that blog. It generated a lot of interesting discussion, some of which bordered on deep misunderstanding. More detail would have helped. And so I dug through […]
Read more

No comments


A Tale of Two TDDers

Posted February 12, 2020 by Joshua Kerievsky in Extreme Programming, Software Design, Tech Safety, Test Driven Development

The story you are about to read is as much about customer responsiveness as it is about software development. The story lies at the intersection of the principles, Deliver Value Continuously and Make Safety A Prerequisite. Finally, the story is based on real-world experiences in a real code base. Let’s begin… A customer reports a […]
Read more

No comments


Becoming Test-Driven

Posted January 16, 2020 by Joshua Kerievsky in Extreme Programming, Software Design, Test Driven Development

Many decades ago, people often had a stack of equipment for playing music and video. Typical stacks included a cassette player, compact disk player, VCR or DVD player, television, cable box for watching cable television and maybe even a turntable for listening to vinyl records. You’d need an audio/video (AV) receiver to take all of […]
Read more

No comments


Shortest Longest Red

Posted September 3, 2019 by Joshua Kerievsky in Extreme Programming, Learning, Software Design, Test Driven Development

To measure how long they were “in the red”, Ward suggested that one programmer in the pair take on the additional responsibility of being the time keeper. They’d keep time of any period during which one or more tests were red.
Read more

No comments


Reasons for Extracting Methods

Posted October 12, 2017 by Tim Ottinger in Extreme Programming, Refactoring, Software Design

When we are refactoring, and especially when we are teaching refactoring, our partners are surprised to see us extracting methods which are only (currently) called once. There is often an assumption that the only reason for extracting a method is so that you can call it from multiple places in the code base.</p> While this […]
Read more

No comments


Refactoring – Prepare, Improve, and Clean

Posted January 8, 2016 by Bryan Beecham in Learning, Refactoring, Software Design, Test Driven Development

Refactoring is at the heart of the way we improve code. We make changes to the code for the purpose of making it easier to understand and easier to modify while maintaining the same behaviour.
Read more

1 comment


Modern Agile

Posted November 3, 2015 by Joshua Kerievsky in Agile Transition, Anzen, Anzeneering, Culture, Estimates, Extreme Programming, Kanban, Lean Startup, Mob Programming, Modern Agile, Refactoring, Software Design, Tech Safety, Test Driven Development

Have you ever seen someone using an older laptop and just felt bad for them? That’s how I feel when I see most people practicing agile these days. We’ve advanced so far beyond where agile was in the mid 1990s, yet so many teams practice agile like it’s 1999! Meanwhile, agile/lean pioneers and practitioners have […]
Read more

55 comments


Multiple Asserts Are OK

Posted September 29, 2015 by Bill Wake in Software Design, Test Driven Development

Some people suggest we should restrict ourselves to a single assertion per test. Are multiple asserts in a test ever OK?
Read more

3 comments


Evolutionary Design

Posted August 12, 2015 by Joshua Kerievsky in Anzeneering, Learning, Software Design

What is agile’s most valuable practice? It’s called Evolutionary Design. No other practice does a better job of managing risks in software development. Evolutionary Design influences how we organize people and teams, plan what to build, collaborate, integrate, develop and release. So why aren’t more people using it? Perhaps they don’t understand Evolutionary Design and […]
Read more

13 comments


Fake and Mock Objects in Pictures

Posted February 13, 2015 by Bill Wake in Software Design, Test Driven Development

Interesting objects collaborate, but some collaborators are tricky to work with. When objects have awkward collaborators, test doubles (stub, fake, and mock objects) replace the collaborators to make testing easier.
Read more

3 comments