Friday, April 13, 2007

Geekfest is good for the soul!

So, this post was originally going to be all about Google Guice.  After writing for a few paragraphs, I realize that if I ever got to Guice this would be the longest blog post of all time.  So, tomorrow you get Guice and today you get Geekfest!  "What the heck is Geekfest?", you might ask, or maybe not, but you should.  Yes, I am sure there is some concert or conference or some such wonder by that name...but, we do not care for such things.  Geekfest in this conversation is a few hours that the team that I work on puts aside every other week to encourage, even require, developers to take the time to keep their skills up-to-date and share their experiences with the group.  Think of it as on-the-job training that even the veterans need.  I have been on so many teams that do not make learning a priority.  On most of those teams, training would be provided only if there was an impending need.  This is a disastrous way to do things.  First of all, we as developers absolutely must stay current if we want to stay employed.  Furthermore, we as organizations must keep the skills of our development staff current if we wish to be able to compete in the marketplace.  Now, we can simply expect developers to keep themselves current.  We can put in the job description that a developer must advance the knowledge of the team, or stay current with market trends or run a freaking marathon...but that does not make it happen.  Even for those developers who are self-motivated enough to do these things on their own, what percentage of them go around to the group and make sure everyone knows what they know?  Not very many, I can tell you.  We geeks tend to be made up of a high percentage of the less-than-social crowd.  A lot of people just do not feel comfortable doing this.  So, what happens to that knowledge?  Maybe it gets utilized, maybe that person puts it to work on a project or more likely it wastes away.

Managers and team leads: You have a responsibility to ensure the best performance of your teams.  You have a responsibility to facilitate the growth of those around you.  Do not forget this.  Yes, I know that you have to get the project done.  Yes, I know that it is already 3 weeks behind schedule (that is your fault too, but we will talk about that in another post).  None of that matters.  Admit it!  Two or three hours every other week will not be noticed as even a blip in your time line.  What do you get out of this?  You get a team that feels like their development is important enough to you and to the organization to make it a priority.  Have you ever felt that way?  Does your organization put you first?  Make it happen for your employees, it makes a world of difference.

Maybe all that touchy-feely mumbo jumbo is not enough to convince you.  So, let us take a look at the basic rules that will allow us to realize some actual benefit for the team:

  1. Thou shalt not skip the 'fest, no matter how busy you are...only actual emergencies qualify as an excuse for absence.
  2. Thou shalt not investigate anything directly related to project work during the 'fest.
  3. Thou shalt share your experiences with the group before leaving the 'fest.
  4. Thou shalt capture the results of your investigation at some level on the 'fest wiki.

Now, that isn't asking all that much is it?  Do you see where the increased benefit comes in here?  No, well let me wax poetic on that for a bit. :)

We have already addressed the fact that, if left to their own devices, only a fraction of of the group will actively expand their horizons and that only a fraction of those will share a fraction of what they learn with the group.  Wow...that is a lot of fractions and a lot of lost knowledge.  What makes Geekfest different?  Everyone learns what everyone was learning!  I scream, you scream we all scream for...oh, never mind.  Even the thickest headed of management will see the benefit of this.  If a team of six goes into a room and spends two hours investigating different topics then each one shares what they learned, what do you get?  Let us do a bit of arithmetic. 6 people do 2 hours of work and share that with the team of 6...hrrrm: 6 x 2 x 6 = 72 hours with of gathered knowledge.  You invested 12 man hours.  Need I say more?  Now of course our implementations of this will be less than perfect.  Still, this is a great deal for an organization  What will happen if we let developers do this on their own?  We have to start dividing instead of multiplying.  Oh, and those developers who were learning on their own...do you think they stop because of this new found study time?  Not from my experience.  If anything, they are spurred forward in their endeavours. This is a big fat win for everyone involved.

Now, you have read this.  It all makes perfect sense to you.  How could you not have seen this before?  So, what are you going to do about it?  If you are a manager or team lead, schedule the meeting now.  Do not wait.  You and I both know it will get swept under the table.  If you are a developer, suggest it to your boss.  If you do not feel comfortable being that forward then send them a link to this post.  Tell them your friend that works over at the major competitor said his team has been doing this for months and how much they are gaining from it.  The entire industry will be all the better for it.

technorati tags:, , , , , ,

No comments: