Major SDLC phases: Development Driven Development and Test Driven Testing
Yury Makedonov, Certified Waterfall Master
In this session I will clarify the meaning of the term "Test Driven Development". My concern is about the negative impact of this term on the current status of software development.
I believe that everything started with a misread phrase. The originators of the term Test Driven Development apparently read a not so legible copy of the book of the founding fathers of the waterfall SDLC approach. This copy was circulated so widely and was read by so many people that the text was partially worn down.
In this session I will discuss the original and unobscured ideas of the founding fathers of the waterfall approach on the interaction between developers and testers (and more broadly between developers and customers), and will suggest how to fix some improperly used terms.
When the original Waterfall Committee proposed the Best Practices of Software Development, they discussed the following four possibilities:
- Development Driven Development
- Development Driven Testing
- Test Driven Development
- Test Driven Testing
Later on this "Magic Quadrant" approach was misunderstood and successfully misused by the Gartner Group. However, the Waterfall Committee's true intentions were to understand and to select the best possible balance between the autonomy of a team and the interactions between the development group and the testing group (and more broadly between developers and customers). They made specific proposals to limit scope creep and communication overhead, thus increasing the overall efficiency of the development process. In particular, they understood that two of these options required a lot of communication between developers and testers (customers):
- Development Driven Testing
- Test Driven Development
So they made a decision to focus on the purest forms:
- Development Driven Development
- Test Driven Testing
During the phase of "Development Driven Development", developers can concentrate on efficient development, as they are not interrupted by the sometimes unclear and irreproducible "defect reports" submitted by testers.
When the product is finally completed it can be thrown over the wall to the next phase of "Test Driven Testing".
In the "Test Driven Testing" phase testers can do efficient testing without any interruptions by frequent defect fixes of the development team. This phase is very efficient because testers can do their best when they have a stable application to test and are not required to shoot a moving target.
These were the original ideas from the Waterfall bible, which are still valid today. (The exact name of this book was unfortunately lost sometime in the previous century, although some people believe that it was "Managing the Development of Large Software Systems" written by Winston Royce.).
Clearly, we have to stop using the incorrect term "Test Driven Development", which is detrimental to the success of the waterfall SDLC, and start using only the officially approved phase names "Development Driven Development" and "Test Driven Testing".