The fire drill anti-pattern is one that falls on project management. While we can personally place ourselves in this sort of situation, the anti-pattern comes from planning. To be specific, it comes from poor planning. Think of the idea that we can cram for a test the night before and extend it to slamming home a project at the last minute.
Defining the Fire Drill Anti-PatternThe definition for this anti-pattern has been selected from the anti-pattern site. IT provides a bleak picture of the pattern that is also a common root cause. [Click Here to See The Page]
"Management waits until the last possible moment to allow developers to proceed with design and implementation; then they want results almost immediately."
The above definition oversimplifies the ways this anti-pattern can appear. Yes, this can come from blocking design or implementation. However, it can arise from systemic blockers of any kind. Thus, specific requirements or constraints may not be resolved until the last minute, and then the deadline is unreasonable. We may even see this occur when a demo goes "too good." This happens when the hacked together demo we showed management is seen as almost done, which leads to unrealistic deadlines.
Setting The PaceThe best way to avoid this anti-pattern is to set milestones and push high-risk items to the front end of the plan. When we take this approach, we will have tasks defined that require a "push" to hit those deadlines. Instead of one big push, we reduce stress by setting up smaller pushes on a regular basis. That reduces the dead periods as well as lowering the peaks. When this is done to perfection, we get a straight and level line for the development effort.
Just In Time DevelopmentThe modern business world is full of just-in-time this or that. A fire drill can be avoided by doing this with your SDLC process. Part of the design and requirements steps should be a definition of prerequisites. These will help you lay out deadlines for tasks in a way that helps the team avoid bottlenecks. For example, the user experience design should be complete before the user interface is implemented. When it is not, the implementation will stall until that design is done and communicated. There are numerous situations like this during the creation of a solution. However, when they are identified early on, they provide a roadmap that can help create some smooth sailing.