Responsibility... again

I have ranted about professionalism and personal responsibility in the software industry before. Recently I've been coaching teams that have run headlong into that brick wall known as Technical Debt, and in all of those cases the excuse was "we didn't have time to do it right".

Frankly, I'm tired of that excuse. Seriously. Uncle Bob Martin has talked about Just Saying No in that situation, and also in his seminal We Will Not Ship Shit article.

For all the complaining we do about airlines, the aviation industry in general does a very good job of instilling a sense of responsibility in pilots and aircrew, and the software industry could learn a lot from that. For every fatigued pilot issue, there are dozens of unreported "good" things that happen. Here is an example where 3 pilots and an air traffic controller all did the right thing - they ignored scheduling and cost pressures and did what was right for their passengers and overall safety:

The duty of the Pilot in Command, be it in an A380 or a two seat Cessna 150 is to maintain safe flight. That overrides all other considerations, even instructions from Air Traffic Control. In this situation, the pilots all chose to put safety first rather than taking a chance. It's quite likely that no one would have been hurt if the A380 continued its approach and landed. However, debris from the blown tire could have been ingested into an engine causing literally millions of dollars of damage.

The next time you're faced with "just getting it done", remember what those pilots did. Are you willing to take the risk that you will cause the equivalent of a blown engine? Or, does it make more sense to take your time, do it right, and all but eliminate that risk?

Considering the extent to which software directly affects our lives now, I want to make damned sure that developers opt for doing it right.