15 March 2005

Test Driven Development


Over the years, the emphasis on testing has gone through many phases, peaks and valleys. Finally it is becoming a first-class citizen in the development world. Unfortunately the pressure to legitimize it has seemingly gone over to the dark-side.

The concept of Test Driven Development is where you create the tests for an algorithm or interface and then implement functionality specifically to pass the tests. The idea is that by focusing on only the conditions that are required to pass the tests as defined, a simpler and more focused implementation will emerge. Along the way, the tests can be repeatedly run to quantify the implementation process and benchmark the path to completion. Many of the big proponents of this are the same academians (read: book-smarts who've never built or maintained anything beyond one iteration) who have mired OO and modeling in the quagmire you find it today. Rubbish.

Foundationally I think the idea of placing equal importance between implementation and testing. Not just in name, but truly in resource allocation, estimation and planning, etc. Testing is as vital and in some ways more so then implementation. But to assume that functionality can be accurately modeled, represented, discussed and delineated via test cases is naivete in the extreme. The fact of the matter is that the primary reason systems and the processes to create them fail is due to lack of specificity in the architecture, not the inability or incompleteness of the tests or implementation. To add yet another bass-ackwards approach to communicating a successful architecture is an example of a good seminal idea that was watered and incubated by commercializing technocrats into something perverted and deformed.

This is yet another example of using a hammer to drive screws (ala the SOA skulduggery). Any idiot can suggest aspirin for a head-ache. It's a real doctor who notices the pattern in their consistency and seeks the true cause without getting side-tracked on every little symptom. Our problem is poor architecture and lack of discipline in our processes. We need to stop listening to the quacks who want quick fixes and focus on real health. That's the only way we'll ever see a real revival of trust in the .

No comments :