You can’t be agile without TDD. Not sustainable.

January 21, 2022

You can’t be agile without TDD. Not sustainable.

Well, you may “appear” to be agile without TDD during the first 3-6 sprints. But soon after, if you’re not applying TDD, you will see a slowdown in delivery and more bugs.

Agile principles are about continuous delivery, responsiveness to change, and a sustainable delivery pace indefinitely into the future. TDD enables you to achieve it.

“OUR HIGHEST PRIORITY is to satisfy the customer through early and continuous delivery of valuable software.”

– With TDD: We know that our software is working at ANY given timepoint. We have continuous delivery.

– Without TDD: Tests are left for “later”, and often not done at all. Since tests weren’t written up-front, the software design may not testable; writing tests becomes time-consuming so developers won’t do it. This decreases overall test coverage. Continuous delivery is NOT possible.

“WELCOME CHANGING REQUIREMENTS, even late in development. Agile processes harness change for the customer’s competitive advantage.”

– With TDD: Implementing a change request (or solving a bug fix) can be done easily – we write a test for it, implement the change, re-run all existing tests to make sure we didn’t break anything, and that’s it! Change is welcome.
– Without TDD: We have gaps in our test suite, so when we implement the change, we worry, we may have broken something that worked, so manual regression testing is needed. Furthermore, since our code isn’t necesssarily testable, it’s not maintainable, so the implementation of the change itself takes longer. Change is not welcome.

“DELIVER WORKING SOFTWARE FREQUENTLY, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”

– With TDD: We can deliver working software at any time. No problem with short timescales.
– Without TDD: Initially, we can deliver the software relatively frequently, but over time (due to the accumulation of manual regression testing), our delivery cycles get longer.

“AGILE PROCESSES PROMOTE SUSTAINABLE DEVELOPMENT. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

– With TDD: The software is in a working state all the time. You’re not dragged down by technical debt. Stress-free. We can be fast in a sustainable way.
– Without TDD: Automated regression suite has growing holes, manual regression suite grows over time. Increasing manual regression testing is NOT sustainable. Delivery of features drops, due to increased regression bugs.

“CONTINUOUS ATTENTION TO TECHNICAL EXCELLENCE and good design enhances agility.

– With TDD: We can continuously refactor in a safe way, helping us to further improve the design.

– Without TDD: Writing code without tests may never be written – we can’t refactor, can’t improve the design.

Summary: TDD enables agility.

Optivem Group LLC 30 North Gould Street Sheridan, WY 82801 United States

Optivem DOO, MB 21609722, PIB 112111924, Heroja Maričića 93, Kraljevo 36000, Serbia

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.