If you are a believer in Agile methods, but don't like Test-Driven Development (TDD), this site is for you!

Many people in the Agile community feel that TDD is a niche technique that works really well for some people but is awful for others.

Sometimes TDD fans go too far by insisting that everyone should use TDD - even saying that if you don't use TDD, you are not fully Agile, or have not given it a chance. We disagree. We explain why here.

Be Agile without TDD!

The Definition of Ready

For any kind of Agile backlog, there should be a "Definition of Ready" (DOR) that specifies what is required for that backlog item to be ready for consideration; if the DOR criteria are not met, then the item is incomplete, and not ready.

For Agile epics, the DOR criteria should be high level. A "lean business case" might be required. That is beyond the scope of what we need to know for PDD. What is important for PDD is that an epic specify what kinds of test data will be needed by those who implement the features of the epic, and which stakeholders commit to supplying that data.

At an Agile "feature" level, or a story level - a story that is considered ready to be worked on by a development team, the DOR should specify the test data needs in a very specific manner, and the story should not be considered to be ready to be worked on until the test data has been made available.

This is really important because without production-like test data, programmers fabricate their own data, based on their understand of the requirements and the nature of the data - an understanding that is often flawed; and if the test data reflect the same misunderstanding that the code does, then the tests don't actually test anything. What then happens is that all tests pass, until eventually there is a large scale run with actual production data, and then all kinds of problems are found - problems that could have been found at the start if production-like test data had been provided.

No comments:

Post a Comment