Tracer bullets are about aiming, not firing
There’s more than one way to shoot down a moving target. Dave Thomas and Andy Hunt have used the metaphor of tracer bullets to describe an approach to software development. Martin, Badgerism, Peter, Lights Out Production, and Jeff, in no particular order1 and among many others, have weighed in with their thoughts.
But how does firing at a moving target with tracer bullets work? It’s a gross over-simplification to say you just fire-aim-fire-aim. In fact, the key to the process is how aiming itself provides immediate feedback to refine aiming. As Dave himself says,
Basically, it all comes down to feedback. The more quickly you can get feedback, the less change you need to get back on target.
So, the process actually goes something like this:
- you have already acquired a target
- you have initially aimed the gun
- you fire and watch where the tracers go
- you re-aim based on where the target is now in relation to the tracers
That’s a single person aiming, firing, watching, aiming, … That’s a process that is happening over short instants of time. Where you aimed a fraction of a second ago is still visible in the stream of tracer bullets when you adjust your aim.
Now translate that to a team developing software. No longer is it one person. No longer is the feedback loop on the order of fractions of a second. Time stretches to weeks or months between the initial target acquisition and aiming until the feedback comes in. How does that feedback inform the original rationale for the design decisions or even for the target acquisition?
In the process we are refining at PLANET ARGON, we insist that we document the rationale for our design decisions. This includes documenting our discussions with the client and domain experts to identify the goals of the software and its users. This is a very lightweight process, usually about a small paragraph per major design decision. We typically use a wiki to record the documentation and aggregate in the same place useful references, project documentation, interviews, etc.
To some folks, documentation may be a dirty word, something to shun or dread. Not for us. Documentation is simply our way of providing a record of the decisions we make so that feedback can be evaluated in context. From my dashboard dictionary:
documentation, n.
Material that provides official information or evidence or that serves as a record
I’m at a loss to understand how else you would do it. Tracer bullets don’t help you a bit if you are just firing randomly. And I think that’s what people miss about the process. You really do aim first. And if you can’t remember why you aimed where you did, or if the person who did the aiming has left by the time feedback is coming in, that feedback may be interesting, but it certainly isn’t going to enable you to refine your decisions.
1 Thanks to Robby for providing links to some of these articles
4 Responses to “Tracer bullets are about aiming, not firing”
Sorry, comments are closed for this article.
August 29th, 2006 at 07:39 PM Hi Brian, Great post! Firstly, documentation should never be a dirty word. UNNECESSARY documentation is the problem. Agile isn't no planning or documentation - it's "appropriate" planning and documentation. Secondly, at SystemsForge we now use an application generator that allows us to change the data model in real time when sitting down with the client. "Another field here?", "a different validation there?". We find that sitting down iteratively doing real time updates to the data model and associated screens is the best way to great a great application quickly. Of course we start with capturing business intent, stakeholders and stakeholder intents for each group and a set of essential use cases. We then spec out screens and actions which drive the initial data model, but we find iterating the application in real time with business stakeholders essential to the success of our model (and pricing - we are really charge way too little for custom development as we wholesale to other web shops and they need to make most of the margin). Thanks for the link, by the way. Think it's first time I've been picked up in the Ruby world. Best Wishes, Peter
August 29th, 2006 at 07:39 PM Didn't realize I could leave email and blog!
September 1st, 2006 at 04:31 AM Doh. Documentation. Doh.
September 1st, 2006 at 09:01 AM Homer, I absolutely love your show. You know what would be great. If Dilbert could stop by for a visit. I'm sure you and he would have hilarious conversations. You at your nuclear plant using some ideas from his office. It would be explosive I'm sure. Yeah, funny about the documentation, huh? People have plainly claimed it was unnecessary, and "waterfallish". Go figure.