Monday, February 14, 2011

The Wicks

I had a good morning conversation with some good people in twitter (Jim Argeropoulos, Dean Goodmanson, others) about programmers and how many of them seem to have no real interest in the art/craft/vocation of programming. They tend to crank out the same code they did seven years ago, or longer, appending flags and if-then statements to masses of flags and conditionals, and never growing in their practice.

I offered a metaphor of candles:
A million candles, if not exposed to flame, will not light a room.
For the symbolism-challenged, candles are people in the programming vocation and flame is an active interest (if not outright love) of the work we do.  Here is my extended analogy for your consideration:
  • Burning Wicks are those who love programming and spend time learning, reading, studying, and improving their skills. They are contagious in their enthusiasm for better techniques and programming meta-considerations. They have done quite a bit of self-study, and have connected with kindred souls in the programming community.  They may have trouble fitting into some corporate cultures, unless the corporation values the kind of enthusiasm and learning-experiences these developers bring to them.
  • Dry Wicks are those who have entered the field of programming but never have been exposed to developers who have a burning love for the practice. They may have never heard about the issues of Coupling, Cohesion, Duplication, and Volatility. They may never have read Clean Code or Code Complete or the like. They have never heard a keynote speech or training session on better programming techniques.
    Dry wicks are ready to be lit. If a burning wick is introduced, a dry wick might catch flame. It may not take the introduction of two or three burning wicks before it picks up, but it will eventually light.
  • Burnt Wicks have been lit in the past, but circumstances (difficult work situations, bad corporate policies, poor coworker relations, etc) have caused the flame to go out.  Often a burnt wick can be re-lit, but it requires appropriate circumstances and a fresh application of flame.
  • Wet Wicks will not light. This is the true "just a paycheck" programmer, or the programmer who only programs so that he can do what he really wants to do (marketing, electronics design, management). It can be hard to tell a wet wick from a burnt or dry one at first. If a truly wet wick is found, the best thing to do is save your team from his influence by moving him to an area where he really has an interest. We can do better than "just a paycheck" programmers.
The question asked was what is the best we can do, then? I suggest that every programming team that isn't burning brightly needs a few burning wicks added. This infusion of fire can be in the form of contractors, consultants, or new team members. Some of us would be happy to come on as temporary full-time workers (say for a year or two). The first burning wick will catch some dry or burnt wicks, the next will pick up some more.  After a few attempts, you will find out which wicks will simply not light.

It is not my practice to recommend any developer's termination, but if you have a few who act as a wet blanket on the others, or who refuse to develop any real interest in what they're doing for 8+ hours each day, you would be better to make a lateral move (do not promote a wet wick over a programing team!) or help them find a new place to work away from your burning-hot developers.

Rather than a pronouncement from a greybeard developer, I would like this to be a conversation starter.  Tell me how you bring the fire to your team and what has not worked.  Help me know where the metaphor breaks down and what you would like to see done about it.

Update: See how Zander describes his life and leadership:


  1. I love to work with Burning Wicks and learn from them and be inspired by them.

    As far as working with teams, I like to "Teach by Example." My recent engagements were 1 and 2 years long, where you can really have a lasting impact. I enjoy working with all Wicks to help them become Burning Wicks. And, when these activities reveal Wet Wicks, I'll give them quite a few different opportunities to turn into Dry then Burning Wicks. However, if they just stay the way they are and -- worse -- are found to be Candle Snuffers, I actively work to have them removed to protect the est of the team and to ensure project success.

    Being around negative people just sucks the oxygen out of a room, and it is so damaging to a team.

    Keep those candles burning bright! Surround yourselves with the Light.

  2. I love to start discussion groups at new companies. I will ask the management to buy the books (Clean Code, Pragmatic Programmer, Practices of an Agile Developer are good starting points) to see if the leadership is willing to invest in lighting the team on fire. Attendance and participation reveal which category most developers are in.

    I have seen some developers really catch fire through this simple process.

    The question I have is what to do with the burned out wicks who think they are on fire? For example, the "architect consultant" who is too good/smart/busy to discuss software with the team, but shows through code a lack of understanding of concepts like coupling.

  3. David:

    Of course "Agile In A Flash" is a pretty good choice. We intentionally made each card pithy and interesting and just right for discussion-starting. Management might be happier spending the US$15.00/head (less if purchased in 5- or 10-packs). We priced it for an easy sell.

    I would say to light the wicks you can light. If you leave someone behind, I'm sure they'll notice or have it pointed out at some point.