Friday, August 31, 2007

Last Work Day of Summer

The end of summer always makes me feel a little down. When I was a kid it always seemed like summer would go on forever. They get shorter and shorter (and I seem to do less and less) the older I get.

Working at a startup again (requisite plug: http://liquidplanner.com) has been really interesting. This team has gone into it with a very specific product in mind. The last startup that I was involved with could never really figure out what it was building. This is very different. For one thing, we drink a lot more coffee!

Building project management software is kinda entertaining and kinda frustrating all at the same time. So much of the software out there is so friggen bad that it feels like, "Hey, this should be easy!" And that's also where a lot of the frustration comes from as well.

My office upstairs at home has cooled off from the heat of the day. Soon the Seattle rains will start again. That'll be nice because I'll feel much less guilty about spending my life thinking about statistics, software, human interaction and project management.

See, everyone thinks that this should be an easy problem to solve. How hard can it be to figure out when a project will be done?

Well let me tell you that it is pretty goddamned hard.

Even the simplest little thing like figuring out how much time it will take to do a simple, simple task is nearly hopeless. And it isn't just because we're concentrating on solving this problem for project management of software projects. You hear all this crap about how building software is not like building houses because the houses have a plan and defined methods and blah blah blah.

Bullshit.

If you think that building a house is all cut and dried and that all of that is a "solved problem" and that there is little uncertainty in home construction then you've obviously never built a house. As someone who has personally done a major remodel (as in, I swung the damned hammer and cut the damned two-by-fours) let me tell you that you make a lotta shit up as you go along.

So what's the difference? Well, I think that like a lot of things it is the people. When you work construction you show up at 8am and work through 5pm (provided you're on schedule). It is not that construction workers are predictable robots, it's that software workers are unpredictable flakes. And I'm fine with that.

In fact, if I had to punch a clock again I'd quit. Period.

We want those people to be allowed to work however makes them the happiest. Even if it would be easier to schedule zombies to do the work would we really want to encourage that? What I want is to liberate the knowledge workers from the tyranny of their schedules. Free them to work however and whenever they want and still have their projects succeed. Hell, not just succeed, friggen ROCK. Exceed all expectations for function, cost, schedule.

The tricky thing is that we're trying to build software that predicts a schedule from the most vague information. And we're trying to do it while not interfering with the poor bastard who has his head full of Amazon Web Service APIs while rewriting the chunk of code that is going to actually get his company paid but is already looking kinda sketchy because it's a rewrite of Jimmy Foobraugh's port from Fortran-77 of the linear regression algorithm and Jimmy got fired for never commenting anything.

Yeah.

I should have drunk more rum this summer. That is my conclusion.

No comments: