Wednesday, January 25, 2012

The Importance of Being Quipped

Not too long ago, we switched from Bugzilla to Fogbugz as our issue tracking system. I say "not too long ago" because I'm trying hard not to remember the whole incident too clearly. I'm sure I agreed to it, that's the way we do things: as a team. Nonetheless, as with most technology stack shifts, there are both unintended consequences, and unexplained ones (ahem, you know who you are). Now don't get me wrong, Bugzilla and Fogbugz are both fine defect tracking solutions, and we have benefited significantly in our SDLC from Kiln's Code Review features (which are actually the primary reason we switched).

Nonetheless, I have my regrets. There is something comforting about old tools, and I don't think software developers are immune to the easy comfort of the well-loved chef's knife or hand-saw. Oh sure we "thrive" on change and PROGRESS, but underneath, we suffer the obscenities of EMACS and Microsoft Office Ribbon Bars, every bit as much as the normal application user.

All of this has nothing to do with this post however.

Well except for the intro line.

You see Bugzilla had a feature which turned out to be (for our team) even more important than case tracking. This feature turned out to be the very foundation of our team knowledge, wisdom, and humor. And the moment it was taken away (because it didn't exist in Fogbugz) we began the slow inexorable slide towards... well, being boring. If you are a software developer, date one, have a sibling who is afflicted, or (god help you) are married to one: then you will know this: we don't tolerate boredom well.

So I made a "request" (which probably sounded like a demand, but was in fact For The Betterment of The Team, honest) that we bring this feature into Fogbugz; thereby improving the product, recapturing our institutional wisdom, and most importantly, adding a respectable veneer of sophisticated humor back to our daily plod through defects which others have thrust upon us. Like a superhero without a cape, Christopher swept down upon Fogbugz and created a JS plugin which has become the analogue to Bugzilla's Quip feature.

If you have never seen this feature, a picture is worth a {for(int i=0;i<1000;i++)} words:

These little snippets of philosophy, wisdom, existentialism, or ridiculousness are defining characteristics of what I think of as our team. They leap out at us every time we look at an issue. In their absence, the world is somehow less friendly, bright, and human. Almost every day, quips are added based on Skype messages, emails, phone conversations, meetings, whatever. Sometimes they make me laugh, sometimes they make me regret being too fast on the send button, but always they remind me of what a wonderful experience it is to work with people whom I respect, who aren't afraid to speak their minds and share their day.

I have often succumbed to (and regretted) the temptation of using the term "personalization" to mean "application configuration specific to a known user account". YUCK. That is just customization of a more or less friendly UI, but there's nothing remotely personal about it. Quips on the other hand, are true personalization. Tied to personalities, expanding your knowledge of others and encouraging self-evaluation.

As a developer, team member, and manager, some of my favorites show that our team's intent to collaborate is alive and well:

Phil to David: This is the only corporation in America where the vice president cleans out the fridge

David to Steve: you were right. I was wrong. Don't tell anybody. Steve: K.

Christoper to Steve: David was going to show me... then he saw a squirrel

David to Others: Do I need to join this meeting to suck the fun out of it?

These make me smile, they also make we wince. What makes them funny is they are also true, and the good-natured acknowledgement of both fault and opportunity to get better is what makes us more than just a team, it makes us an improving, enthusiastic team. We tease, we lend criticism, we self-deprecate, we connect.

By the way, we also have a wonderful bunch of Quality Assurance folks who keep us honest, and are also a part of our team and our success:

Dev1: there are a heck of a lot of re-opens... QA1: Duh Sherlock!! You didn't fix them right.

The QA mantra - Please don't say "It works for me", Please don't say "It works for me", Please don't say "It works for me"

I guess in the final analysis, Quips may not be the most critical feature in our issue tracking system, and they certainly aren't the most effective way to archive and convey SDLC knowledge. Quips are, however, profoundly important because they tie us together on a truly personal level, and in the end any good team is more than the sum of its skill sets.

I am more productive, more tolerant, more motivated, just more because of knowing the others I work with.

And so I leave you with one more tidbit from our central repository of all known knowledge and wisdom:

I'd rather write with pen and paper, scan the document using OCR, and then edit the resulting image using Windows Paint than use emacs

Well, they can't all be beauties.