Ready Fire Aim Fire

ReadyFireAim is an AntiPattern when the cost of misfiring is high. From a firearms perspective, most police situations have high costs of misfiring - the people surrounding your target are usually friendlies.

When the cost of misfiring is low, and especially when the lessons learned by misfiring are high, ReadyFireAim becomes ReadyFireAimFire. At this point, you shoot, see what you get, adjust, and shoot again. The military uses this extensively - that's part of why they hand the infantry fully automatic weapons but rarely issue them to police officers. An infantry misfire is cheap - if you miss your target, the surrounding people are likely to be enemy, and even wild fire is likely to keep the enemy's head down. Artillery is almost exclusively ReadyFireAimFire - indeed, they usually put a forward observer out with a radio and binoculars to tell the artillery team where to go...short how many yards, left or right how many yards.

That's the purpose of "tracer" bullets - Magnesium-coated bullets that burn when shot, leaving a visible "trail" showing their course - giving one very good feedback as to exactly where that bullet went as well as where it came from. ( TracersWorkBothWays )

In software, some misfires are cheap and others are expensive. Misfiring development code is cheap, especially with UnitTests all over the place. Here, ReadyFireAimFire is a very useful pattern. Misfiring at the shrink-wrap level (shipping bad code to customers) is expensive, so ReadyFireAimFire becomes ReadyFireAim, and becomes the AntiPattern. -- RobMandeville


Your first shot scares your enemy and puts him off balance, so you can take your time aiming your second shot. -- RobertHeinlein (paraphrased)

Or, your first shot awakes your enemy and puts him on the offensive, so you can take your time becoming Swiss cheese, or you can - what's the word? - skeedaddle!


Dr. WilliamEdwardsDeming used a counter example he called the funnel experiment. This example showed, that in some cases, continual adjustment was detrimental. Adjusting the next attempt based on the results of the previous attempt can result in over correction or compounded errors. Morale: don't blindly apply a tool to a problem without understanding the situation. Unless the situation is understood, it is better not to make changes.


EditText of this page (last edited January 13, 2003) or FindPage with title or text search