Sunday, August 14, 2005

blame-culture avoidance

Who makes technical decisions in a team?
If you are asked "why did you do this, it seems like a bad idea?", the answer should never be "I knew it was a bad idea, but my boss/tech lead/arhictecture department told me to do it". Maybe you disagree with your boss, but it is your responsibility to explain your point of view and the boss' responsibility to explain theirs. You should be making a decision together, not making two decisions and throwing one away. "I knew it was a bad idea" becomes "I had reservations but we went that way because my boss explained..."
A related idea is that everybody in the team needs authority to make decisions, without having to gain approval from a leader. Most people who ask for approval know more about the question than the person they ask. This timewasting distracts from the things that really do need discussion. Pair programming provides a good sounding board for deciding whether a decision requires a full-team discussion. If it doesn't, just go ahead.