Saturday, August 4, 2007

Scheduling Pitfalls

This post started as a reply to a question from my uber-boss about scheduling, but rapidly got too detailed and wordy for a poor little blackberry. So, here it is in a more palatable medium.

By way of disclaimer, I'll say here that this post uses the terms developer and manager. However, every individual fills both roles regardless of their responsibilities.

Q: What can we do to be better about meeting deadlines?

I think we need more skepticism and a better understanding of the limitations of our scheduling tools.

The most basic scheduling tool is a hard deadline. Its advantages are obvious: an unambiguous goal. Its limitations are similarly obvious. How do we know that the goal is attainable?

An itemized schedule is a much more refined tool. Its primary advantages are to instill confidence in the final deadline, and to keep track of progress throughout the development time, cutting lower priority features as appropriate. Its limitations generally come from letting it get too big or having too much confidence in it (which can be the same thing). The important thing to remember is that every item on the schedule is its own little hard deadline. So we have to be just as skeptical of those items as we would be a hard deadline. Does the worker truly understand the task? Does the task represent a need that must be filled? Will the task still represent a need when we get around to working on it? Both of these questions are much harder to answer the further out (in time and development) the task is.

One of the most uncomfortable tools is no deadline at all: it's done when it's done. This offers no comfort to you the manager; in a way its just giving up on the scheduling process altogether. However, for critical pieces it might be the way to go. The only advantage is that you almost never think you're done until you're actually done.

So why mention all of these tools? Well, as a manager or developer, you have to understand that you're always using at least one of them. That is, you're always bringing along some set of disadvantages which might endanger your project if you don't pay attention to them.

For example, suppose you're developing a design. Which tool would you use? Well, you won't benefit from an itemized schedule, because that implies understanding almost everything you're going to do. And of course, if you understood it all, you wouldn't need to design. How about a hard deadline? In that case, you'll probably get your design doc, but if the goal turned out to be unattainable what you have is a bad design on time. Of course, no deadline at all and you might find your developer spending most of his time (your money) reading digg.

The best solution is a hybrid approach. Each step or draft might have a hard deadline, but the number of steps or drafts is not predetermined in any way (no ultimate deadline at all). Add into this plenty of skepticism and you might just get a good design eventually without too much time wasted.

As another example (and I think this one is very important), consider the process of developing an itemized schedule. If you set a hard deadline for this process, and don't throw in plenty of skepticism or allow for multiple iterations, you'll end up with an itemized schedule with all of its own inherent limitations compounded by the limitations of the hard deadline. That is, you'll have a complete, itemized list that works somewhat well for about 2 weeks, but after that is only a drain on resources as people try to adapt the changing project and only-now-understood tasks to fit into the schedule provided.

However, keep in mind that if you confine yourself to small projects, the limitations above are not so serious. Here's where some more skepticism comes in: don't pretend to be able to schedule far beyond the next month or so. If a project is bigger than that, divide it up using the same hybrid approach as above. Use an itemized schedule for the short term and then evaluate your progress. Either rework the previous sub-project or schedule and work on the next sub-project.

I'll leave it off here. Keep in mind that this advice is as much for me as it is for anyone else.

This post was scheduled using an ad-hoc hybrid of hard and soft deadlines.

Tuesday, May 29, 2007

Crazy Indie Music (To Which) I'm Listening (To)

Take your pick of prescriptive or descriptive grammar.

I've been listening to some musicians on the myspaces that I think many of the people I know might like. So here's a brief list.

The Finches
Check out "Last Favor"
Anais Mitchell
Current favorite: "Your Fonder Heart"
Previous favorite (not on the page any longer): "Shenandoah"
Chris Pureka
Always awesome.
Gillian Welch
"Black Star" Radiohead cover!
"Look at Miss Ohio" current favorite for unknown reasons

Also, for zen lulz, check out the audio archive for Krishnamurti
Jiddu Krishnamurti Talks and Dialogues

Okay, that's all for now. Back to work.

Monday, May 28, 2007

Memorial Day

It's Memorial Day and I'm in the office, so of course I'm looking for ways to procrastinate. New post time!

After the VT tragedy, a local church put up 32 (by my count) flag poles in memorial. Each pole is flying a flag of the state that was somehow associated with one of the victims. So, as you can imagine, there are probably 25 or more American flags flown, as well as an Indian flag, an Israeli flag, and several others I couldn't name off the top of my head.

This memorial is a profound statement of how ridiculous our symbolic landscape has become. Note the process: individual -> nationality -> state; this memorial manages to conflate all three. In this process, it demolishes the individuals, with all their variety and independence, far more thoroughly than any bullet.

Let us not forget that these were real, living people. No symbol or category could contain them, because like us, they were unpredictable and ever-changing. Should we now try to box them up in symbols to serve our own fears, our own perverse anxieties?

As individuals, we all need to understand the total process of authority and what a silly game it is. If we can get past the barriers it creates, perhaps we will be able to appreciate each other fully before the next tragedy, whatever it may be, rather than being left with only regret and emptiness.

Wednesday, April 4, 2007

Evite!

Okay, this made me laugh so I'll share it with you.

The cool web 2.0 way of doing things is to send "e-vites", that is, electronic invititations. However, just like our collective language-making dropped the hyphen off of e-mail, e-vites are written as "evites". Now, the French verb eviter (actually there's an acute accent on the first 'e' but I can't get ascii to work) is basically where we get the word 'inevitable', meaning unavoidable. So when I get an "evite" it looks to me like someone is saying to me: "Avoid!"

Lots of laughs for someone with temperamental social phobias.

Awakened from an apparent coma

So apparently I've been in a coma for the past three months. Seriously. I just woke up here at my desk with a ZZ Top (ever heard of him?) beard which, at first glance, seems to have been made a nesting ground for birds. On closer inspection, it looks like the birds cleared out when the drooling became a problem. In any case, checking my last blog entry, it looks like I was out for the entire first quarter. Well, we'll just call it hibernation.

But, good news! This means that its Q2 (god help me I'm apparently arranging my life into fiscal quarters?) so time for new goals! That's right. . its one of those sort of corporate overreach things where your work tries to mix in with your ideals. What horror.

No, I'm kidding. (Although if you know me (you don't) you know I do tend to hate what everyone else is doing.) In fact, the goals I've set are modest and potentially fun. So I'll only complain in awkwardly phrased asides.

Without further banter, here they are:

Work Goals:

  1. Better time management
    - 42 hours of work per week average
    Yeah, I know the cool kids are all about 50 and 60 hour weeks. But frankly, I'll never be able to do that unless somehow my work is split between three or four separate and really interesting tasks, and someone else cooks my dinner. This goal is really about building up an excess so I don't have to feel stressed when things get busy in the ol' personal life and I have to miss a little bit of work time.

    - Get into work before 10 AM
    This goal is pretty important to me. I lose a lot of productivity when I get in at 11:30 as I have some times. I also lose a fair amount of sanity trying to catch up. Staying at work until 7:30 PM just to finish the day is pretty sh*tty (regexp?). Just to be reasonable though, I'll allow myself the equivalent of one accidental day a month to mess up and get in after 10.

  2. Write in this blog
    I'm actually already having fun. I'm gonna try to keep this thing up to date and also every once in a while make some sort of work-relevant, constructive comment. As a corollary to this goal, I'd like to learn to get over how awkward the word "blog" sounds.

Personal Goals:
  1. Keep practicing guitar about 10 hours / week.
  2. Get some exercise! Its pretty outside now but soon it will be too hot to want to exist.
  3. See a couple of live shows.
  4. Keep reading (see the list of books that currently have bookmarks randomly strewn through them, much in the same way the books are randomly distributed throughout my apartment).
  5. Take a sea-wife.
  6. Rediscover Newfoundland. Come up with a better name for it.
  7. Conduct a successful bombing/missile-ing campaign against Iran. (I need to make this one a priority if I'm gonna make it by the Russian Military projection of Good Friday! Although I think that May would be more reasonable/likely, inasmuch as murder is reasonable/likely.)
  8. Get over the poetic joy of saying the name "Amadinejad"


You can see I'll be busy!

Tuesday, January 23, 2007