The term “tracer bullet” comes from the incendiary ammunition that artillerymen use to trace the trajectory of their shots.
“Their phosphorus ignites and leaves a pyrotechnic trail from the gun to whatever they hit,” write authors David Thomas and Andrew Hunt in their book The pragmatic programmer. âIf the tracers hit the target, so do normal bullets. “
It might seem strange to read information about ammunition in a book about software development, but tracer bullets in software are also lighting the way for development teams.
What are tracer bullets?
- Simple exploratory code that can be 100% disposable – just one call to a new API, for example.
- They help answer questions that arise from the planning process about how things can work in practice – if you don’t have any questions, you don’t need follow-up bullets.
- It’s a quick and iterative way to test whether new technologies work in the context of your project.
The book explains that once the architecture of a project is decided, tracer bullets can be used as a quick way to test its viability. Developers write code that forms the âbackbone of the end system,â touching all major project components such as the user interface, authorization layer, business logic, and database.
For example, if developers are using a third-party API for the first time or want to store data in a new type of database, they can write code that makes a single call to the API or stores a single item in the database. data to get an idea of ââhow it would work in the context of the project.
Using this code, developers are able to verify that all components are able to work together and immediately rotate when they don’t.
Plotter balls let you iterate faster
Tracer bullets are less common than other agile methodology tools. Derivative, a Boston-based tech company that makes marketing chatbots, makes heavy use of the technique, but engineering director Bernard Kiyanda had not met him in his previous jobs.
âI had never heard this term before – and I come from an agile environment,â Kiyanda said.
At Drift, tracer bullets are an important part of the software development process – and the company doesn’t use Agile.
âWe have our own flavor, which evolves faster,â Kiyanda said.
Each of Drift’s teams consists of three cross-functional developers, as well as a product manager and designer that the developers share with another team. Everything is designed to enable development teams to act quickly and avoid bottlenecks, including the company’s adoption of tracer bullets.
“The tracer ball definitely has more of a hackathon style approach.”
âI think that’s really, at the end of the day, why we’re running them – we have to iterate faster,â Kiyanda said. âThe tracer ball definitely has a hackathon style approach. He gets the answer as quickly as possible – and [lets you] be creative about it.
He explained that when a project is initially defined, the team pulls together the requirements and comes up with a series of “stories” that serve as development models. But there may still be lingering questions that arise from this ‘story time’.
These could be questions about a particular architecture’s ability to deliver the necessary performance and speed, or about unfamiliar technology stacks, libraries, and APIs. While many of these questions can be answered with more planning and research, some answers are easier to find by coding something and seeing how it works.
âThis is the part that is a tracer bullet – we frame it around a specific question that we want to answer. Sometimes you have to start coding to figure out the response, âKiyanda said. “If at the end of a story hour, there are no questions as to how we are going to execute and develop this solution, then there is no need for a tracer bullet.”
Tracer balls are different from prototypes and MVPs
At first, tracer bullets may look like prototypes or MVPs, but they aren’t quite, either, Kiyanda said.
âThe prototypes are likely to last sometimes more than a week, sometimes more than several weeks,â he said. âIf we were to do this in Drift, we’d be like, ‘How are we going to break this prototype down into multiple tracer bullet stages? “”
The purpose of a tracer bullet is to determine whether a potential concern is valid or not. Unlike prototypes, which are often demonstrated when completed to show off their capabilities, tracking chips can either be removed or incorporated into the rest of the codebase once the initial issue is resolved.
At Drift, the developers own the tracking chips they write and work under strict deadlines to ensure that the tracking chips are focused on fixing the issues that are needed.
âWe time them,â Kiyanda said. “They can take a day or they can take up to five days.”
Tracer bullets are also different from the idea of ââMVP – or the minimum viable product – although the two ideas share some similarities. An MVP is a functional product that customers can start using, while tracer bullets are only created to test a concept and are not fully fleshed out.
“There may be an overlap with the MVP, but in most cases, because we don’t require you to be ready for general availability, it can also be a 100% throwaway code,” Kiyanda said. âWe basically want to understand what kind of customer value we can get, as quickly as possible. “
âBecause we don’t require you to be ready for general availability, it can also be a 100% disposable code. “
In other words, tracking chips are written as dry runs to test whether new architectural designs and technologies are feasible for a given project. If that works, the tracking chip could be incorporated into the codebase, which will eventually become the MVP. At Drift, all tracking chips go through the entire development lifecycle, separately from the rest of the codebase, and end up in the production environment for developers and customers to see.
âIt’s an end-to-end solution,â Kiyanda said. âIt has to actually be in production so that we can test it with our customers. “
This is particularly useful for tracking chips created to address concerns about the behavior of front-end components. With the plotter chip in production, customers are able to interact with a product live and decide whether a particular design works in the context of the larger application.
Because of their flexibility, tracing bullets are used in a wide variety of solutions across the enterprise, from defining third-party APIs to the AI ââteams that train chatbot classifiers. Drift also uses them to decide how customers want to personalize their use of Drift products, such as their widget.
âDrift has a widget that we provide, where customers can run a chatbot with a specific configuration,â Kiyanda said. âThese widgets are loaded into end user browsers. We iterate a lot on the tradeoffs there – on content versus performance. “
Using tracking chips allows the company to quickly try out different customizations and be âscrapfulâ for customer feedback, rather than spending a lot of time on setup.
âIt’s the least coding anyone has to do,â Kiyanda said. âReuse what you can and try to put together pieces that already exist, in order to find the answer to the question you are trying to solve. “