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.