The Ten Commandments of Egoless Programming (2006)
codinghorror.com
codinghorror.com
However, when there's one guy who always keeps making mistakes and creating work for the rest of the team, even making the same mistake multiple times, then, in my opinion, some blame is warranted.
When solving a problem starts by blaming someone, it can distract the conversation and attention to become about personalities, positions, politics, arguing over perceptions, & interpretations, instead of the problem itself.
If, after something like the 5 why exercise, all roads keep leading to someone, one can probably look at having a positive supportive intervention.
If that person doesn't want it or feel they need it? That's more of a culture thing than just about one person.
One (of many) good things about collective code ownership is that this sort of blame game can't last very long.
1. I make it a rule to fire the overrated jerks that (ca|wo|do)n't shape up, with poetic prejudice. <Evil hand rubbing ensues> For the "indispensable" ones that cause too many problems, it's harder but possible. There's might be no such thing as an irreplaceable employee, the worse situation is losing good people that are pushed away. (Fan of Github / Rackspace cultural practices.)
Any environment that thinks code is too valuable to change, alter, throw away, simply hasn't got a fully oiled production line going from Design -> Code -> Build -> Use. If there is code too valuable to change because 'nobody understands it' the problem isn't the code, its the people reading it.
But the problem is, people are people, and these days people talk a lot of shit about each other. Its 'normal'. Blame culture infects all human activity, it has been scripted so.
a simple phrase but remarkably effective.
That's nice and all but don't let your boss hire multiple cheaper "developers" and expect you to train them. I've quit a job recently stating if I wanted to be a professor I would have accepted a job as one (and I have turned down one in the past).
I would avoid filling a company with too many learners and not enough teachers, but some teaching will generally be a necessity. The more they know:
- The fewer mistakes they'll make for me to run into, have to help clean up, or otherwise suffer
- The fewer mistakes of mine will go uncaught by their reviews, for me to run into, have to clean up, or otherwise suffer
- The fewer tasks will fall on my plate by necessity, giving me more flexibility in what I work on or when I take time off
And hey, cheaper hires means bigger potential raises, right? :)