The division holiday party was this weekend. A Beatles cover band that also did just about everything else, a very good comedian, a hypnotist I didn't see (at least I don't *remember* seeing <g/>), roaming Elvis and Madonna and Marilyn Monroe, a jazz band, thousands of Developer Divisionites and their Significant Others, and (the most important part) lots and lots of really good food including diverse yummy desserts.

I grew up on potluck dinners and so am expert at piling some of everything on my plate without mixing flavors that shouldn't be mixed. It takes skill and determination to get a full meal soup-to-nuts appetizers-to-desserts on your average dinner plate, but the rewards are oh-so-worth-it. (As in, being sure to get some of everything that looks good. At a potluck quantities are limited, so if you don't get it the first time through you may not get any at all. This wasn't a problem at the party but old habits die hard.)

The biggest pitfall of this technique (aside from your house of food collapsing and making a mess all over the floor) is ending up with more food than you can possibly stuff into your stomach. Most people at a potluck at least try to balance their lust for enticing foodstuffs with memories of their parents reminding them (often as recently as two minutes previous) to leave something for everyone behind them in line, but in this situation not only are your eyes bigger than your stomach but your stomach is temporarily insane. When the buffet is catered and so servers are waiting to shovel more food onto the buffet even as you take the last bit of whatever, the groaning of the overloaded buffet tables goes unheard only because the groaning of everyone's overloaded stomachs is so much louder.

I've learned over the years, however, that gorging isn't worth the pain that always follows. I'm now more judicious in my choices and much more miserly in my portions. I still end up with plenty of food, but when I finish I still have plenty of room left to go through a second time for more of the best.

[Is this the longest lead-in you have ever read? I'm almost to my point...]

It has been my experience that most teams approach new processes and methodologies the way I used to approach potluck dinners: sample absolutely everything the first time through with extra portions of every dish that looks especially appetizing. If a little Agile is a good thing then implementing all twelve Extreme Programming practices all at once must be even better. If the Rational Unified Process is a good thing then we must follow it to the letter, including drawing every last diagram and filling out every last template and form.

I've learned over the years, however, that gorging isn't worth the pain that always follows. Even if both management and the front line team members agree a process change is needed, trying to get the whole thing down everyone's throat all at once is a recipe for disaster. It's much, much better to try a little bit of each thing first and then go back for seconds of the practices and techniques that work for your team. Unlike potluck dinners, the really tasty dishes won't disappear but rather will become better over time. Management may react to pair programming like I do to spinach (blech!), but ease it in slowly and as it shows dividends management will eventually notice (spinach in salad is rather tasty, I must say). Continue this process long enough and you'll get to that sweet spot where the entire team fires on all cylinders all day long.

And of course, just as with that buffet, dessert is the best part of the meal. <g/>


*** Comments, questions, feedback? Want a fun job on a great team? Send two coding samples and an explanation of why you chose them, and of course your resume, to me at michhu at microsoft dot com. I need a tester and my team needs program managers. Great coding skills required for all positions.