phpCollab

Working with a partner who is a hundred or so miles away is a new one on me. So far it’s going well. We’ve been officially a team for about a month and he’s picking knowledge up pretty damn quickly. This week we’ve been let down by general inertia on the part of one of my clients, by which I mean we’ve both kind of been sat on our arses, but that’s no biggy. Next week should be fun though.

One of the big problems I have with my working methods is a failing in my ability to estimate task durations. It’s something I’ve known about forever, and it’s something that I’ve tried to fix before. I’ve certainly got better at it but I’m still not perfect. The fundamental problem is that I still believe I can just roll my eyes upwards and pluck a figure out of the air. The amount of times I do this is ridiculous. Even for whole projects sometimes. This does not work.

Previously it was a problem, but I got around it by working at the weekends. Working at the weekends is a bind but I got around it by slacking at other times and also by careful management of expectations. But now it’s not just me that suffers when I make inaccurate estimates, it’s Greg too. It’s not fair for me to start costing him money.

phpCollab is a web-based project management system which I hope will the solution to this problem and ease the process of being a virtual team. It’s based on Macromedia Sitespring, which is now dead. I evaluated Sitespring whilst working at Soup, but didn’t really get it. Now I know a fuckload more about projects and business and all that and I really understand how useful this kind of tool would be. For me and Greg it’s great, for a bigger organisation of more people I can see it would be practically indispensable.

phpCollab has projects and tasks and a calendar and lots of other stuff, but it’s not a huge product. It’s simple and straightforward and provides tools for making sure I’ve thought things through. For example, when I start a task I can enter my estimate for the task duration. I can then enter the actual time at the end and compare the two. I can compare the two across lots of tasks and projects as well, to get a handle on my slippage. At the moment I know the difference between my estimates and the actual time taken, but I have yet to aggregate that data into a useful report. phpCollab will do that.

phpCollab does lack a Wiki, which I think is a fantastically useful tool, simply because it’s all things to all men. You can easily apply the power of hypertext to any structure or document. A user on the phpCollab message board had already had a go at hacking Wikki Tikki Tavi in as a phpCollab module, so I downloaded his release. I made a few more customisations just to make the Wiki fit visually with the rest of phpCollab and bang we’re ready to go.

It’s nice to have the combination of structured sections and a freeform melting pot, but I’d like the two to integrate and borrow from each other a bit more. I’d like to be able to use Wiki like formatting and linking in the rest of phpCollab. E.g. if I describe a project it would be nice to able to make a link to a previous project that was similar. phpCollab has envisaged the need for some of the links I would make, allowing notes, simple discussions and file uploads, but it can never codify them all. Neither should it, it would become bloated and much harder to use. A Wiki syntax for blocks of text (denoted by a Wikitext OK signifier of some kind) would allow people to build subtly on top of the current framework. This would also provide a way for the phpCollab developers to discover useful new features - people would already be using some kind of Wiki-based hack solution.

The hacking I did last night to integrate the Tavi Wiki was fun. I’ve often wanted to contribute to an open source project, but I’m no C hacker. I do know my PHP however, and I feel I’ve got something to offer here. I’d like to turn this into a proper project, to integrate a Wiki. I’ve just noticed that a Wikitext module has appeared in PEAR as well, although I think Tavi is a fine code base to integrate. I’m not sure if I’ll do anything though, as I tend to go off the boil on things pretty quickly and I also have other projects that I would very, very much like to work on - the new Hype code base for example.