18 August 2010

A Completely Unncessary Miracle

From USA Today:
A Boeing 737 operated by Colombian carrier Aires split apart in a crash-landing on a Caribbean island just after midnight this morning. And, in what local officials are calling a "miracle," only one person died in the accident.
A miracle indeed. One that was completely unnecessary. The pilots attempted to land the aircraft during a thunderstorm, likely encountering severe wind shear or a microburst just prior to landing. These phenonena are quite common in thunderstorms and have caused a number of accidents in the past. As a result, aircraft very rarely land while there is an active storm at an airport. There is no indication from the news reports that the pilots had to land immediately due to fuel concerns or any other reason, so the logical conclusion is that they had an affliction known as "get-there-itis". In other words, the pilots' desire to get the flight in on time made them cut corners with respect to safety.

Sound familiar?

How often do teams and organizations start to cut corners - come down with "get-there-itis" - when approaching the end of the mandated time for delivering a system? Who has seen that happen before? Let's see some hands. Yes, almost everyone has.

As the pilot-in-command of an aircraft it's your responsibility and no one else's to ensure that a flight is safe. In the case above, the pilot and first officer should be held accountable for continuing the flight into dangerous circumstances.

As a team member it's your responsibility to call out situations that are the equivalent of flying your project into a storm while landing. Thunderstorms are visible for many miles, and are almost completely avoidable, and so are most of the dysfunctions on software projects. Agile processes quite often make those problems visible long before they cause damage, but they're visible even when using traditional processes.

Let's stop relying on completely unnecessary miracles, and use common sense and good risk management to bring projects to successful completion.

1 comment:

Lisa said...

So true, people get obsessed with meeting dates instead of focusing on producing good code that does what it's supposed to.

Right now we're in a sprint that has suffered from both the build server burning up and having to do major database changes that mean major code changes too. Monday we realized there was no way we could get everything done and tested by Friday.

I think we've only missed a release 2 or 3 times in almost 7 years. However, rather than obsess with getting done by Friday and work crazy hours to do it, we explained the situation to the business folks and recommended extending the sprint by a week. We've earned their trust and they were agreeable.

So we are solving the problems, updating the code and tests, and developing/testing in a sensible manner, keeping our wits about us. Today, almost all the regression suites are blue! We're bringing in new stories, as we will have extra time in the extra week, but our main focus is finishing the difficult stories and testing thoroughly.