I’m going to quote an entire email sent by Kent Beck to the [extremeprogramming] group on Yahoo, because it hits so many nails right on the head all at once:
In trying to understand what you’ve written I don’t find the traditional dichotomies of software engineering very helpful.
- Unit vs. functional test — I test what I see. Sometimes I think big thoughts and I write big tests. Sometimes I think little thoughts and I write little tests. My first test of a system is a big test of a little system. Are these unit or functional tests? The question doesn’t help me.
- Top-down vs. bottom-up — I try to have a “whole” system quickly, then expand the parts that need expanding. Is this top-down or bottom-up? The question doesn’t help me.
I could go on with other dichotomies that aren’t helpful to me– black box vs. white box, programming vs. QA, phases, customers vs. programmers. I wonder how our thinking about software development got divided into such tidy-yet-unhelpful little boxes.
Three Rivers Institute