Being WrongPosted: May 9, 2008
Since my blog posts largely consist of short follow ups to keefs magisterial posts, where I try to say essentially what he said and hope that, by association, I appear smart, I’ll follow up his “Getting it Right vs. Being Right” post with a practical piece of advice for senior developers who want to foster the type of environment he outlines:
Admit you’ve screwed up. Often. And Loudly.
Even the best coders inflict horrors on the code base from time to time. It is cathartic and, perhaps, even crucial that the best developers admit this openly and enthusiastically about themselves in front of other developers and, especially, in front of management. This does two things.
Most importantly, it freaks management out.
Then, if they are reasonable, they come to realize that, despite the fact that their ace programmer has admitted all of these systems he has designed are screwed up, things are actually limping along reasonably well. So maybe, despite the fact that imperfect humans are implementing this software, they’ll get something usable and useful in the end. And, if they listen closely, maybe they can even make a good guess where the technical debt that is going to eat up 50% of the next release is. (NB: when good developers screw up, they often screw up AWESOMELY on some of the core parts of the system. Loads of fun unwinding that sort of stuff.)
Secondly, it allows the other developers to relax with respect to their own limitations in the face of complexity. It allows them (or teaches them) to be humble, without being humiliated. People admit when they are going off the rails and when they need help, and bad ideas don’t get as far into the system. The flow of information about the state of the system becomes less clogged with egos. And it fosters a sense of community, where we are all in it together against our own fallibility.
Screwing up software sucks. But, if you are developer, you have. And so have all your coworkers. Maintaining a sense of humor and brutal honesty about it is the best way to deal with this universal (and hilarious) fact.