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


Fake and Mock Objects: The Other Side of the Line

Posted October 4, 2017 by Bill Wake in Test Driven Development

When testing tricky collaborators, we may create fake or mock objects to make life easier. In effect, we draw a line: on one side, real objects participate; on the other, it’s fakes and/or mocks. Consequences of the Line A common strategy for testing with mocks: Test standalone objects directly Use fakes and mocks to test […]
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


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


The History of Microtests

Posted April 9, 2014 by Ingmar van Dijk in Agile eLearning, Extreme Programming, Learning, Test Driven Development

At Industrial Logic we use the term microtest instead of unit test. What is a microtest and why don’t we use the standard industry term, unit test? Watch Mike Hill (aka Geepaw Hill) explain what microtests are, how they differ from unit tests and their connection to Test-Driven Development.
Read more

4 comments