Friday, February 5, 2010

Are you current?

[It is not fiction that a fully-laden airliner can complete its whole trip from take-off to landing, at most modern airports, with the pilot's hands totally off the controls throughout the journey.  Nevertheless,]

An airline captain, say of a Boeing 777, must land a Boeing 777 manually at least once every 35 days to maintain his currency as a captain.  If he does not achieve that, then he must land the same aircraft in a simulator.  If he has extended his currency through the simulator, then within the next 35 days he must land the real plane from the right hand seat, that is, with another captain in command and supervising.

In contrast, anyone can claim to be a qualified and experienced software architect or developer!  Is it because no one gets killed when software is poorly written?  I am convinced that this is the real answer.

An airline pilot is certified not only on his flying skills but by aircraft type.  A Boeing 777-200 pilot is not permitted to fly a Boeing 777-300ER without undergoing a conversion course.  Imagine a company not permitting a Java programmer to write in C# until he is re-trained.  That company will go out of business because other companies will not impose this restriction upon themselves.  And the reason can only be: no one gets killed when the software crashes.

My favorite question during hiring interviews has been: "Have you written 500 lines of xx code in the last 30 days?"