How to fire a bullet in the dark?
One way is to locate your target, calculate different conditions and specifications and then fire. If everything works fine, bullet may hit the target.
There is another way: use tracer bullets.
When tracer bullets are fired, their phosphorus ignites and it leaves a trail to whatever they hit. The entire path of the bullet and the target can be identified. Tracer bullets are prefered more than calculations, why? Because the feedback is immediate.
The same method can be used in projects also. Like firing in the dark, if you are building something that hasn't been built before, the requirements might be vague. You might be using some algorithms, languages or technologies that aren't familiar. You may face a large number of unknowns. The project takes longer time and the environment may change in between.
Pragmatic Programmers, however, tend to prefer using tracer bullets. Tracer code can be used while developing. It contains all the error checking, structuring, documentation, and self-checking that any piece of production code has. It has many advantages:
Tracer bullets show what you're hitting. This may not always be the target. You then adjust your aim until they're on target. That's the point.
- summary of Tracer Bullets, from The Pragmatic Programmer: From Journeyman to Master
One way is to locate your target, calculate different conditions and specifications and then fire. If everything works fine, bullet may hit the target.
There is another way: use tracer bullets.
When tracer bullets are fired, their phosphorus ignites and it leaves a trail to whatever they hit. The entire path of the bullet and the target can be identified. Tracer bullets are prefered more than calculations, why? Because the feedback is immediate.
The same method can be used in projects also. Like firing in the dark, if you are building something that hasn't been built before, the requirements might be vague. You might be using some algorithms, languages or technologies that aren't familiar. You may face a large number of unknowns. The project takes longer time and the environment may change in between.
Pragmatic Programmers, however, tend to prefer using tracer bullets. Tracer code can be used while developing. It contains all the error checking, structuring, documentation, and self-checking that any piece of production code has. It has many advantages:
- Users get to see something working early - If we are communicating what we are doing during each step of development, the users can see something even before finishing the development. This keeps them from not being disappointed and helps to gain more trust.
- Developers build a structure to work in - It helps anybody the team to understand what is going on. They don't have to deduce anything from thin air
- You have an integration platform - Instead of integrating everything at the end, this helps to build a platform, to which modules can be integrated and tested while they are finished.
- You have something to demonstrate - You have always something to demonstrate to your customer.
- You have a better feel for progress - Makes easier to measure performance and to demonstrate progress to your user
Tracer bullets show what you're hitting. This may not always be the target. You then adjust your aim until they're on target. That's the point.
- summary of Tracer Bullets, from The Pragmatic Programmer: From Journeyman to Master
No comments:
Post a Comment