Test-Driven Development.
TDD is being touted as the best thing since, well, just about everything. I think TDD is nice for simple systems. By simple, I mean software that does not contain distributed components and integration. By distributed components I do not mean a web interface, or a simple client to a server.
I deal every day with software, written in Java, that pulls information from (and pushes information to) systems that we have no control over, and are simply not designed to do it. We do it anyway, as we've always done it, with a hell of a lot of hard work and brainpower.
There is no panacea for this task. If we were interacting with databases it would be easy...databases are designed to support access from other software. If we had control over the remote systems our task would be simpler.
So right now, TDD means nothing to me. I can't simulate a huge corporate environment running our software, when the behavior of the third-party software we must integrate with is undefined in that environment. Sometimes there's just no substitute for really hard work and painful observation.
I have yet to see any test methodology that would make headway in our environment. For those of you working on simple systems that respond to the currently fashionable testing mechanisms -- bravo. I salute you. Now let me get back to work.
12:42:47 PM
|