Archive for May, 2009

Deadlines need a bite

Now i don’t mean this quite as literally as pictured here, and this may seem obvious after I say it, but recently I asked myself the question:

“Why do deadlines work?”

It’s pretty common knowledge that in order to make progress on any project a team needs deadlines to more forward, but why?  Why are people so bad getting work done in the absence of a deadline?

My answer came to me in a bit of a round about way.  Our team had a deadline that we did not hit.  Everyone knew what what had to be done, they even had enough time to do it, but when the day came and went, the work was not done.  Clearly, there could be 100s of reasons for this, but after i reflected on it for a while one in particular stands out for me.

We did not set up a face to face review.

My thesis is the following: knowing a deadline just isn’t enough.  Deadlines are just dates on a calendar unless people feel social pressure to get something done.  No one likes disappointing their team, and they especially don’t like looking teammates in the eye when they disappoint.  So when we talk about deadlines, perhaps it would be best to frame them in the form of a review meeting.  “Are we going to hit our report out to the boss?”  To me, that is the real bite behind a deadline: social pressure.

It doesn’t have to be a negative thing of course.  I would never want a team where there was unrealistic or antagonistic social pressure.  However, I think a recognition that a little social pressure in a team setting is the real magic behind deadlines will help me to craft more effective ones.

Be Specific!

I think i’m developing a bit of a split personality.  Before jumping to conclusions, let me tell you what I mean.  In one part of my life, abstraction is king.  As a programmer, your ability to recognize, comprehend, and apply abstraction is a fundamental tool in your toolkit.  Without abstraction – and proper application of it – large programs would be utterly incomprehensible.  They would be just a mix of random words and numbers without any means of interpretation.

But on the other hand, in the realm of business, I’m finding that abstraction can be quite dangerous.  Abstraction – and it’s evil cousin, vagueness – lead to all to many long meetings, or worse, miscommunication.

When communicating – with words, not code – I try my best to support everything with specific examples.  This can be hard to do sometimes, and i certainly don’t always succeed, but specificity in language is – i think – a good goal to strive for.

So in the interest of following my own advice, here’s an example of what I mean (it would be a pretty ironic post if i ended with the last paragraph, huh :) ):

This evening I sent out an email to our RIA meetup group.  I was asking for input on our next topic.  Specifically, I need two people to prepare some examples of UI design patterns they have followed when using RIAs.  Rather than just leaving the request at that, I provided an example about how my team used a JS call to caution the user away from hitting the back button and therefore losing all their work.

I hope that this specific example helped to clarify my request and hopefully made the task seem easier than it would have been if i had just left my request in a general form.

You have examples of how clarity in communication has helped you?

ps. the picture is totally random

Learning about Silverlight

On Thursday, the Carrboro RIA Meetup had it’s latest installment of RIA learning.  Rob Zelt, (and here) an expert on Silverlight and MS web technologies shared the basiscs of Silverlight with our group.  Thanks very much to Rob for sharing with the group!  It was a great session where I think everyone learned a lot.

Here are some of my key takeaways from the session:

  • Silverlight has a stunningly powerful ability to skin and layout components without touching a single line of logic code.
  • The “old” arguments that flash has such a wide install base it will be hard for MS to catch up are starting to be less relevant.  The Silverlight install base is growing and growing fast.
  • Silverlight 3 has awesome 3d rendering capabilities and will be able to deliver HD content efficiently
  • Coding patterns between Silverlight and Flex are quite similar (although Cairngorm is a little different on the flex side)
  • MS is working on RIA services, which seems strikingly similar to LCDS.  This is a great move as LCDS can be a great productivity boost to Flex teams

There was much more in the presentation, but these are the highlights that come to mind.  There was a suggestion at the end that we have a session where we compare building an app in Flex and Silverlight.  A great idea, and something we will definitely have to try.  If we do that, I’ll definitely post code examples here.

Thanks again to Rob!