The most recent example is a talk that a colleague and I are working up for a conference. We developed a bunch of software and wrote a talk about that. Now we are writing a talk that is still about that, but also about more of the software engineering involved as well as the technical apis that were required.
We have a ton of principles and practices that we want to empart in the talk, but the talk is only an hour long. So, looking at the bewildering array of raw data, we decided to spike some slides for the talk. Then we used index cards to refine the concepts and their relation to each other. So far, this was just brainstorming and mind-mapping. Once we felt we had identified the important concepts, we needed to figure out how to turn those into a talk that flowed well and delivered the intended value to our audience.
We decided that the best way to do it would be to adopt the very practices we were espousing. We decided to write the talk test-first. We decided to write some spanning tests for the talk.
These were good as customer acceptance tests, but still bewildering for actually writing the talk. We decided to take smaller steps. We created some more tests that were more "executable" or verifiable.
This was starting to help us make the big picture more concrete in terms of deliverables. Still, this was too course-grained for actually implementing a slide. The tests from there started to get very specific about each subtopic of the talk. They got more fine-grained, and more useful.
Our next step is to pass those tests by implementing the talk. We are going to do each topic slide test-first as well. At this point, we think the title of the slide will be the test, and the visuals and bullet points will be the implementation that passes the title test. I'll keep you updated on the progress.
In the meantime, I would be curious to hear how Test Driven approaches have spilled over into other developer's lives.
Have a good day.
Posted by Bob Evans at September 2, 2005 09:32 AM
TrackBack URL for this entry:
While that's a great mental exercise, you might want to check out Cliff Atkinson's _Beyond Bullets_ (http://www.beyondbullets.com/). He presents a much more story driven approach and shows how to do it.
Posted by: John D. Mitchell on September 2, 2005 11:23 AM