Monday, June 30, 2008

Time Box

I'm sure one day I'll move away from being a developer and move into being more of a process consultant of some sort. In every job I've worked at I always try to find better way to get work done. It has resulted in numerous conflicts with management, and it has also resulted in some great successes. At my job with Matt, I was lucky enough to experience Agile. For those not familiar with the concept, I suggest you get familiar with it - it's the best way I've found for a developer to feel good about his job.

My most recent success in applying a process is in the selection of this blog space. Matt had invited me to blog with him on developer related topics. I had been wanting to blog on a place that was separate from my personal blog about that very same thing. The choice was easy for me, I said "Yes" before I could finish reading his email. He had a day off and had planned to sign us up for a blog on that day. The criteria was pretty straight forward:
  1. Must be able to accommodate multiple authors
  2. Must be able to paste in code snippets
  3. Should be easy to use
  4. Should be part of a development community

He looked all day (or at least that's what I imagine), wading through all kinds of blogs. Some were explicitly for devs, but didn't really allow multiple authors on a single blogs since it was like one giant blog with a ton of authors. Others weren't so easy to use and paste formatted text into. The options were overwhelming. So much so, that anyone would be paralyzed by the choice.

Fortunately, there's a mechanism for dealing with such situations, one which is regularly employed by Agile, and more specifically, Scrum. It is called "time boxing". No, this is not seeing how fast you can get through the old school NES game of Mike Tyson's Punch-Out. This is about setting a reasonable time limit to make a decision. The idea is that a certain amount of research is appropriate, but at some point, you just have to pick. Spending four hours and making an OK decision is way better than never starting at all. We want to deliver. And that's just what Matt did, he put a time box on it and he had picked a blog for us to use within a few hours.

The Application: Time boxing is good for forcing decisions that otherwise might drag out unneededly. Let's say every month you have a meeting with management to discuss what to do next. This meeting is aways scheduled to be one hour, but it ends up becoming four hours when everyone chimes in, gets derailed, or just tired. If you enforce the time box of one hour, people will decide what they can in quick fashion. They will table the things that need more investigation (which should also have a time box on them), and everyone can move on. To enforce a time box on yourself, just set a timer. To enforce it on others, you can approach it one of two ways: 1) When the time box has elapsed, simply get up and leave. The first few times, they'll "finish up" without you. But if you're consistent, they'll clue in, especially if you can get more people to leave the meeting with you ("I have to get lunch, pizza anyone?"). Or there's option 2) do it the CEO way, "I've got a meeting at 10:45, so we need to be done by 10:30." This lets people know that the meeting is time boxed and there's nothing you can do about it. The blame is off your shoulders, but people still feel motivated to finish. The trick is, you still have to leave at 10:30 like you said you would. If you box it for 10:30, and stick around till 11, you're not doing anyone any favors.

The pros: Stuff gets decided. You can get started. You don't get stuck in meetings that take half a day and make you want to curl into an anti-social ball when you get home.

The cons: Yes, you run a good chance of not finding THE BEST SOLUTION EVER. But you have to weight finding something that's 90% as good against getting a decision made. If you're coming up with solutions that only meet 50% of your expectations, maybe a longer time box is in order. Maybe you need to reassess the goals.

Remember: This isn't work specific. Any time you get stuck when trying to make a decision, just slap a time box on it.

No comments: