Project Management Pontification

The day before yesterday, I was sitting in a meeting, examining the project schedule which our project manager had just handed out. “Not another @^#%& Gantt chart!” I thought to myself. I know this sort of planning is essential for the people outside the project who need to know when it will is likely to be done and what progress is being made, but as an individual developer contributing to the project, I’m generally only interested in two things: the very highest-level view of the scope of the project and our progress, and the details of my tasks.

The first of these is, of course, the same thing that outside observers want from the project management process. The latter is something that’s only of interest to me, and which nobody else cares a bit about, except perhaps when the project falls behind. But because we use Microsoft Project for our scheduling, I have to see the giant task list, 85% of which doesn’t even remotely apply to me. After staring at the monstrous chart for a few minutes, I went into reverie, considering what this process should look like. Here are a few of my scattered thoughts:

  • When a project is started, all the projected tasks will be enumerated in a web application. (Part of the problem with Project is that, at least as it’s generally used, everything has to go through the project manager, who is The Keeper of the File. Using a web app distributes the maintenance of the project plan.) A project manager creates high-level tasks. The developers would then create sub-tasks with increasing granularity until the work units are small enough to be estimated accurately. (My experience is that any task that one expects to take more than a few hours probably should be broken into sub-tasks.) When this process is complete, the total for each developer is multiplied by his personal “fudge factor” as computed by the system and fed into the project estimate total.
  • Each developer will have an individual and continually revised “fudge factor” computed, based on his initial work estimates and the actual time it takes him to complete the jobs. This will be well-buried, as it’s only used to increase the accuracy of work estimates, not to point out deficiency in her estimates.
  • Each project should have a “dashboard” which shows the original estimated date of completion, the current estimated date of completion, the number of tasks completed, the percent of tasks completed, etc. There should be a single, big pretty progress bar/timeline with color coding to indicate scheduled progress, schedule slips, etc. This is the view that most everyone from outside the team doing the work will want to see. The highest-level tasks will be marked on the timeline.
  • A developer will have a personal “work entry” page which lists all the tasks assigned to her. If a task has prerequisites, it will only appear here once the prerequisites have been completed. By accessing this page at the start of a work day, the developer will be able to easily see what parts of the project she can work on. At the end of the day, she’ll simply enter the number of hours she worked on a given subtask, and click a checkbox if the subtask has been completed. (The checkbox, rather than a “percent complete” setting, also reinforces the idea that subtasks should take no more than a few hours.) This allows progress to be tracked easily, and helps to keep the developer’s “fudge factor” accurate by comparing the original estimate to the actual time spent on the project. This page should also include a small version of the dashboard progress graph, thereby consolidating all the information that the developer needs on a daily basis into a single page.

That’s what I’ve got so far. I know some of my developer friends have thought about some of this stuff before too, so please feel free to chip into the discussion, or alternately to swipe any of these ideas you like for your killer project management application.

Didn't Take Me Long

I just put in an order for a 17″ new-style iMac to take over as my principal computer at home. I added RAM and a big hard drive to make it a usable audio/video workstation, and picked up Final Cut Express for a song as part of the order. It’s nice to have access to academic discounts for Apple gear again!

Estimated delivery time: 3-4 weeks. (Guys who were on the Santa Fe trip: I’ll start work on the video after it arrives, as it will make that process a lot easier.) I’ll be rearranging my work area when it comes in to hopefully make it easier to get recording done when inspiration strikes.

Bloglines

If you’ve been wondering what those little orange buttons that say “XML” on people’s weblogs are for, or why there are links to “syndicate this weblog” that look like gibberish when you follow them, you should know about News Aggregators.

Aggregators are a type of software that monitors special files called “RSS Feeds” or “Atom Feeds” on weblog-style websites (like this one) and let you know when something new has been posted or when the content of an article has changed. The advantage to using a system like this is that you don’t have to spend your time visiting each of the websites you’re interested in following, but instead only see those with material you haven’t read.

I switched over to using a web-based aggregator called Bloglines a couple months back, and have been really impressed with the application. Since it’s web based, I can follow the news I want just as easily from the office as I can from home. Because it’s centralized, it actually reduces the load on the sites I watch, as their news feeds only get loaded once per hour for the whole Bloglines service, rather than once per hour per user. It also automatically generates the “Reading Material” sidebar for my site, which lists each of the feeds I keep an eye on through their service.

If you use aggregators, I recommend taking a look at it. If you follow a lot of news sites, but don’t use an aggregator, I recommend it as well. Here’s a link to subscribe to my weblog to get you started. (Aha! The ulterior motive!)


subscribe with bloglines

Cheap Date

Thursday is Kathy’s and my weekly date night. This past week, we had pretty well exhausted our fiscal reserves by the time Thursday came around. I decided, by way of having fun together and keeping our night out affordable, to bring Kathy to the park and take photos of her — a project I’d had on my mental back-burner for a while. We ran around, climbed trees, rolled about in the grass, and eventually leapt into the river to cool off. We had a great time, and I was quite happy with

Miscellany

A few things rattling around in my head:

  • The kids have started school. It was immensely bittersweet to see Abigail and Liam run toward the Crockett Elementary gym together after watching Emily board the bus in front of the house for the first time. We’ve hit a new chapter in our parenting, and with it come new heights of ambivalent feelings — proud of the kids, baffled that they could possibly be as far along in their lives already, thinking tentatively ahead to that time when parenting will no longer be one of our main responsibilities in life.

    So far the kids are all doing great in their classes.

  • I’ve been doing a lot of music lately: bass for a Saturday night gig with The Grant Mazak Band, cello and singing for Sunday morning at church. It was fun to have the cello out again, though the A string broke at the last minute and I had to make do with only the lower three strings.

    On the Santa Fe trip, Ben pulled out some Rich Mullins and some Bright Eyes, both of which had hammered dulcimer in the mix. I came back eager to work out some of what I’d heard, so have had the dulcimer out several times lately as well.

  • David and I have started a workout program. I dropped about 30 pounds last year on a diet and weightlifting program, but have been out of the gym for a while now. Since Texas State lets one take up to 30 minutes a day off for some kind of on-campus fitness activity, I figured it would be criminal not to take advantage of that. I’m sore today, but we were careful not to overdo too much on our first outing, so I’m still functional.
  • Continuing the recent run of opera, Kathy saw Madame Butterfly down in San Antonio Friday night with some of her girlfriends. Though the production apparently wasn’t spectacular, she had a great time running around San Antonio and playing Dance Dance Revolution.
  • The University Convocation was this morning. It was really interesting to attend and to hear the new President speak. Having been in the private sector now for well on a decade, it was great to see the sense of community evident there — another item for my mental “why I like working in Academia without actually being an academic” list.

Good News

Dad called around 6:00 this evening to let me know he’d been to the opthamologist today, and the doctor’s tests revealed that the majority of Dad’s vision has returned. He’s going to be able to drive again (with someone else at first), and is having an easier time managing the various things that have been hard for him since the stroke occurred. We are, again, very grateful, as being able to get around will certainly make life easier and more pleasant for him.

Good Trip

I got back Monday from Stupid Guy Trip 2004. This year, Chris, Ben, Ross, Mike, Adam, Daniel, and I went to Santa Fe for the weekend. We had a great time going to see Don Giovanni at the spectacular Santa Fe Opera House, hiking Bandalier National Monument, eating far too much wonderful food, visiting several churches and several bars, swiping and replacing garden gnomes, playing Texas Holdem, driving 13 hours each way, listening to great music, enjoying superb conversation, and continuing to build great friendships. The full photographic record is available (probably temporarily) on my .Mac site.

Falling Objects

This afternoon, Kathy was down in San Antonio to pick up Emily, who has been in New York for the past three weeks, visiting Kathy’s family. They were stopped at a red light when a bulldozer at an adjacent construction site pushed over a lamp post, which fell onto the van, inches from Abigail’s head. It sent glass flying, completely destroying the rear window of the van and showering even Kathy in the front seat with shards.

Fortunately, nobody was injured, and they’re all on their way home in a rental car the construction company provided. I’m once again thanking God for keeping my family safe.

UPDATE: I’d misunderstood Kathy when she was describing the accident to me originally. She wasn’t stopped at a stoplight, but driving at about 30mph. Even scarier to realize that if she’d been driving just a bit slower, the lamp post would have landed on the roof or possibly gone through the winshield.

Mental Overload

Though I’m generally very happy with the new job, the sheer volume of information I’m having to cram into my rapidly overheating brain is becoming a bit daunting. My first two weeks were spent in what was, effectively, Vignette boot camp. We learned about their Content Management System, writing delivery applications that work against the CMS data store, writing PortalBean and JSR-168 portlets, and customizing the UI for all of these pieces. After a month or two, we’ve got a reasonably good grasp on these things. So what happens? We get a whole new pile of things to learn.

With the latest release, Vignette added Dynamic Site and Dynamic Portlet, which replaces much of what we learned about writing content management applications. It’s admittedly a far better way to do things, but is a whole new pile of poorly-documented stuff to learn. (Cynical aside: having your documentation riddled with errors is a great way to sell training courses.) I’m also working through the Vignette Business Integration Studio training materials and getting up to speed on the Open Source Portfolio Initiative, which it looks like we’ll be customizing and implementing here.