Previous month:
June 2008
Next month:
November 2008

August 2008

The Emperor and the General (or, what not to do with a successful team)

So you've found your magic team? The one that's going to lead the way and turn your company around. What to do with them? Let us recall the tale of the Emperor and the General.

There was once a Roman Emperor who was almost universally despised by the people of Rome. His only saving grace was the allegiance of an outstanding general.
He was the finest military commander Rome had ever known. From Cairo to London, Morocco to Persia, any army he lead was victorious, and any enemy he faced was obliterated. He had the loyalty of every legion and the people rejoiced in his victories.

One day, the Emperor, seeking to further capitalize on the successes of his military benefactor, had the idea to construct a giant statue of the general in the center of Rome. It would be made of the finest marble, accented with gold, and taller than any other structure in the city. Surely, the people would love him for creating such an epic monument.

The Senate, however, would not allow this grand scheme to go forward. "Creating a statue of a living general", they said, "is strictly forbidden by Roman law. You must wait until he dies." "Preposterous!" said the Emperor "He is Rome's finest general! He'll die of old age before he falls in battle!" "That may be so," the Senators replied "but you cannot build your statue until he is laid to rest." The Emperor yelled and complained, but the Senate would not budge. Eventually, the Emperor exclaimed...

"Fuck it, I'll just have him executed."

And so befalls the fate of many healthy and productive software teams. Their success is their undoing. As managers and executives seek to change the culture of their organization to reflect the values of a productive team, they often destroy the very thing they're trying to create. In many instances, the team is simply disbanded, and flung to the far corners of the organization to "teach them all that great stuff you've been doing." These lone
pioneers inevitably wind up fighting an impossible battle. Operating without the support and cooperation of their teammates, they are walking upstream of an avalanche, and the crushing weight of the mediocre majority beats them into submission. Eventually, they quit, or lose all memory of what it was like to work on a successful team.

Software developers are a cynical lot, and nothing short of cold hard results is going to convince them to change. The only way to get those results is to have a healthy team. If you want to spread the culture that makes a team succeed, the best way to do it is though continued success. You have to leave the team in place, or at least, not change it too much. Think of it like a sourdough starter...if you cook all the dough you have to make bread today, there'll be none left for tomorrow. You have to tear off a piece, add some new flour and water, and give it enough time to rise again.

Infinitest/InfiniJ 4 Released!

The new release of Infinitest is out, and it's better than ever. If you've never tried a continuous testing tool, download it today.

One of my favorite new features is what we're calling "Greehooks". Greenhooks are shell commands or scripts that can be executed whenever your tests go green. They have a 1001 uses, but one of my favorites is this one:

CHANGE_COUNT=`svn up | grep -c '.*'`
if [ $CHANGE_COUNT -gt 1 ]; then
    /Users/bjrady/Scripts/growl "Incoming changes"

Can you guess what this does? (Expand for answer)

Continue reading "Infinitest/InfiniJ 4 Released!" »