Project Planning
I love planning but I hate planning software. It's an interesting problem. When I am working on something alone I tend to outline the project, estimate each piece and be done with it. My estimates tend to be accurate and the project gets done.
But, that's me writing code or fixing the car. The Geek Ranch is not just me doing a project. Today, it is four but in the next few months it will likely be 20 people working with lots of outside dependencies. Not something I can just scribble down.
Let me offer an example. We need to run electricity into the construction site. We have been told that Union Finosa, the electric utility, will not connect anything until there are "signs of construction" going on. That seems fair. The good news is that the first building we will build is a auxiliary building. It will house a backup generator, some batteries, inverter and offer some storage both during the major construction and during operation.
Thus, the obvious answer is to start building the utility building. To do that, we need to get the materials there, a plan and a crew. As we want to do as much in parallel, we want the utilities ordered (they already are but it seems we have to do a dance again) so that the poles can be put in while we are waiting for everything else.
But, the road has been damaged. So, before we can bring in the construction materials we first need to put in some vados (that's a cement "dip" so water can cross the road without destroying it). Gixia, my business partner, arranged for the road repairs in November. Or, more accurately, thought she had. But, the guy who was going to do it vanished.
I could go on but you get the idea. There are a lot of people, a lot of resources, lead times and inter-dependencies. Unfortunately, this calls for project management software. So, off I go looking for "the right answer" again. (At this point, thanks to those that responded to my previous article looking for some suggestions.)
This is not the first time I have gone looking. In fact, I looked at some Windoze-based software including Microsoft Project about 10 years ago. At that time I was totally amazed that Microsoft Project didn't let you share resources between projects. I eventually picked some other package which did what we needed—except it was running on a Windoze machine connected to nothing. It quickly became obvious that this stand-alone solution was not the answer. We moved up to a big whiteboard which people would see when they went to the bathroom. That worked a lot better.
The whiteboard example is more significant than you might think. I have found the hardest part of any project management system is getting it to actually be used. If we consider a GUI-based system that everyone can access to be the norm, the Windoze-based system I described was on one end of the accessibility spectrum and the whiteboard was on the other. Thus, the trick is to get useful functionality with sacrificing too much accessibility. As I will not be the only user, this decision is not just "what appeals to a geek".
What I Considered
The first was PHProjekt. I have used it before and found it very capable. What I particularly liked was that you could have notes and forums (and a lot more) associated with the project. That said, while it seems great for a bunch of geeks working on a software project, it became pretty obvious that it wasn't going to have the accessibility required for the team which will include some people with "user" computer skills only and whose first language is not English. Note that PHProject is capable of dealing with a lot of languages so the English comment reflects on the team, not on the software.Next comes TaskJuggler. It started out its life as mostly a reporting system where you built the task information using a text editor. While that appealed to me, it clearly isn't what this project needs. Today, TaskJuggler offers a more GUI-based interface. You still enter text into a file but the GUI handles getting you to the right file. For a geek, it is quite nice. For a non-geek it will probably be irritating but usable.
Thus, it is a serious choice. The down-side is that it doesn't give you a way to integrate "other information" into the projects like PHProject does. In addition, in testing I managed to create something that TaskJuggler tells me is "Impossible Dependency" but I just don't see what it is.
OpenProj from Projity bills itself as the replacement for Microsoft Project. I hadn't looked at Microsoft Project for a very long time but, when I did, it was pretty useless. Well, OpenProj reminds me of why I developed that opinion. Oh well.
I took a quick look at jxProject. Quick because while it is almost free, it is not Open Source. The price didn't worry me but I just don't need a piece of software that I can't fix if that is needed. One more scratched from the list.
I want to give honorable mention to Trac. It's my idea of nice software that doesn't get in your way. It uses a Wiki for "other information" and adds an interface to Subversion. It's great for software project management but it is clearly not the took for building Geek Ranches.
While we are on diversions, check out Timeline. From their site
Timeline is a DHTML-based AJAXy widget for visualizing time-based events. It is like Google Maps for time-based information.Timeline isn't going to schedule projects but it may be useful in looking at a schedule. And, well, it is pretty cool.
Getting back on track, I next looked at Planner from the Gnome project. It's far from done and lacks user documentation but it seems to be a good start at what is needed in generic project management. On the down side, no way to attach "other stuff" to what is going on.
As I gave Gnome a chance I figure I have to look at what the KDE world offers. Well, the answer is KPlato from the KOffice project. Unfortunately, I think the first sentence on the web page pretty much sums up the situation.
KPlato is a project management application. In this first public release we focus on planning and scheduling of projects.Let's just say there is another possible option for the next time I am looking for the right answer.
Finally, I looked (once again) at dotproject It's actually a pretty nice system with a lot of capabilities. On the plus side is that it supports associating files with projects. My feeling is that dotProject could do what we need.
So, why the hesitation? Well, it's a big system. I see myself setting everything up and then becoming the person that has to update everything as well. Thus, project management becomes automated for everyone else at the expense of my time.
Let me confess that I made the above statement before I started working with dotProject again. I tried putting some information into it. I like it. It includes forums and a lot of nice stuff. Unfortunately, I made a bad assumption—that projects could have sub-projects. I entered a few sub-projects (fixing the road, getting the utilities in, building the main building, ...) first to try stuff out. I then wanted to create a project they would all belong to called "Phase I". No go.
This doesn't mean I will scrap dotProject but it does mean I need to think a bit about the structure. Tasks can have sub-tasks so clearly Phase I needs to become the project and all the things I think of as sub-projects become tasks. As tasks can have sub-tasks, this should work. Let's see.
Now What?
The scary thing is that this is generally about as far as I get no matter what type of project I want to manage and what software choices I look at. Maybe it is just my attitude problem—I want to get to work instead of turning the plan into a career.Up to this point we have been using a Wiki to store all the information about the project. Virtually everything in the Wiki has been put there by me/updated by me. This is a good indication that the same will be true with the project management information—no matter how or where I store it.
This makes me come to a strange, and hopefully temporary, conclusion. I am going to go write a lot more stuff in the Wiki. Specifically, I am going to create a section that is just for various sub-projects. In those pages I will add what the task depends on, who will work on it, what sort of time is needed and such. In other words, a project plan with resource requirements for the sub-projects.
My hope is that, for the majority of the tasks at least, this Wiki description plus a start date will be sufficient. That doesn't mean there is no need for a master project schedule but, as depressing as this may sound, we do have space for a big whiteboard near the bathroom.
If the whiteboard idea becomes impractical, I will look once again at TaskJuggler, DotProject and Planner. It seems that they could replace the whiteboard without a lot of startup overhead.