The Myth of the Hero Programmer
Fortunately, I have met few self-appointed heroic programmers over the years. However, late last year I was saddened to met another. People on truly agile teams might never have met this dying breed of programmer so let me present the archetype by borrowing from the Highlights magazine:
Goofus: Writes complex hard-to-understand code to prove superiority.
Gallant: Writes clear easy-to-understand code to enhance team dynamics.
Goofus: Writes code with side-effects to show his mastery of arcana.
Gallant: Writes simple code that is easy to maintain and debug.
Goofus: Disdains and deletes comments.
Gallant: Describes code context to aid maintenance and provide road maps for new team members.
Goofus: Speaks in imperative words and derisive tones.
Gallant: Speaks with humility and guides people to solutions.
The Ruby community should guard against any tendency towards heroic programmers to avoid some of the complaints made against the Perl community. Too many 'perlers' loved complexity for its own sake which lead to unmaintainable code and a bad reputation for the language in general.
Let's focus on the agile concepts of teamwork, shared code ownership, and collaboration. They are much healthier for the community.
What Goofus/Gallant experiences have you had?