Tracer Bullet Software Development: Rapid Prototyping with Re-Usable Code

Martin Fowler says that architecture is anything that's hard to change later. Tracer bullets is a development technique used to validate your design and technology systems early in your product's life cycle without writing disposable code. We do light-weight, up front design, create a system of mock objects, and add appropriate automated tests. Finally , we incrementally add functionality to the system until it's ready to roll. This iterative design process lets you put a "working" copy of the application in front of your users before you have a database vendor selected. It's the best way to validate your product, design, and architecture while still making rapid progress towards a working product.


Session Agenda

Sessions begin at 9AM and end at 5PM. Attendees must bring their own laptop.

Day 1

  • Tracer Bullets: What are they?
  • Pros and Cons: Why bother?
  • A Case Study in Scalability: Fire at will!
  • Multiple Targets: Eliminate your "critical path" problems

Day 2

  • System Objects: Encapsulate and Separate
  • Interfaces: Great Fences
  • Fire a Bullet: See Spot Run!
  • Incremental Improvements: Iterations
  • Better or Best: The Automated Testing Edge

Day 3

  • We'll take a real-world project and attack it as a tracer bullet project.
  • Review the benefits: scalability, encapsulation, decoupled code, parallel code development, and more.