Sunday, November 28, 2010

On Heroes and Interviews

When I started my career in software development, “heroic effort” was a compliment.  It meant a developer went above and beyond normal hours and “burned the midnight oil” to get a task done.  It meant he or she prioritized work at the top of the list and let other options and responsibilities fall by the wayside in order to get results.  It was indicative of a “can do” attitude.
For years now, heroic effort in the context of software is not a compliment.  Or at the least it’s a back-handed compliment.  It usually comes with suggestions of poor planning, poorly designed code, of an immature development process.  It leads to poor decisions which lead to poor quality.  That’s one reason not to use the word “heroic’ to describe software development activities.  Another is the fact that with a war going on, we have real heroes in our armed forces.  They are involved in life or death struggles; I don’t want to cheapen the definition of a hero.
But there are software development activities we ought to celebrate.  The word that comes to my mind is noble.  Webster defines noble as “possessing, characterized by, or arising from superiority of mind or character, or of ideals or morals.” Examples I see of noble behavior:
·         The software developer who doesn’t settle for mediocrity, but strives to be a craftsman
·         The tester in waterfall environments who seems to always find her schedule squeezed at the end of projects but doesn’t let frustration affect the quality of her work.
·         The developer who always leaves the code better than he found it, but gets his work done on time.
·         The introverted tester who regularly steps out of her comfort zone to help her scrum team become self-organizing and effective.
The difference is attitude.  We all need to make big pushes sometimes and drive projects or programs to completion.  But when you are surrounded by noble people who are driven by the desire to be excellent and do excellent work, those big, last-minute pushes, which never produce the highest quality of work, become much more the exception than the norm. 
This is why technical competence is so important to assess in an interview.  Not because I care about coding trivia, not because the information isn’t readily available on-line, and not because it’s a measure of IQ.  It is important to measure technical competence because it is one indication of a person’s attitude towards excellence.  It is one measure of whether a person is limited by their own sizeable potential, or limited by their lack of passion.

No comments:

Post a Comment