Successful project management with Liquid Planner
I was told recently there is a certain inflection point a company reaches when it gets to about two employees. I certainly experienced this inflection point this year, w.r.t. dealing with projects and tasks. I decided to implement LiquidPlanner around Q2/2013, and am very happy with the decision.
(Note: I am not affiliated with LiquidPlanner in any way, none of the links in this are affiliate links, this is my own impartial opinion.)
The Problems
- I didn't get the feeling the customers really knew what was going on in the projects. I would often be called upon to give status meetings, send email status updates, etc.
- I didn't get the feeling the employees really knew what was going on. I kept task lists on paper (had worked for me when I was working alone!). I would occasionally send these lists via email. This required time to do, and these emails would slowly get out-of-date, so it wasn't obvious for the employee what to do.
- It was difficult to answer questions such as "If Martin works less, what effect will that have on the launch date?"
- Also questions like "if the web designer gets delayed, what effect does that have?" (Certain tasks must get delayed, but for tasks where screens have already been done, they can get moved forward)
- "If we add a new feature, how will that impact the deadline?"
- As a consequence of not being able to easily answer the above questions, this had the knock-on effect that decisions, which could only be taken after knowing this information, couldn't be taken.
- Despite the above, I spent a lot of time doing project management! (21% of my time in Jan, 36% in Feb, 40% in March)
The Solution
Clearly there is enough information on the [LiquidPlanner homepage][1] for those who are interested. And there are other features such as time-tracking and financial estimations of remaining work which I am not using. But here are the key points regarding how I use it.
- One one view, as a project manager, you have a hierarchical list of tasks and you can set attributes of those tasks, write comments, estimate them, manage dependencies, assign them, and so on.
- On another view, as a worker, you just see a flat list of all your open tasks, ordered by their priority, and you can just work through them, estimate them, assign them to someone else, comment upon them, etc.
Here are the points I think are necessary to my workflow, and which LiquidPlanner does better than its competition:
- Task durations—Either the project manager or the worker themselves can estimate how long tasks will take. Some other systems simply have lists of tasks but without being able to enter durations, it's not possible to ask questions such as "how long will the entire project take?"
- Duration ranges—You can enter "this task will take between 8 hours and 12 hours". These allow you to enter not just your estimation but also your uncertainty (will it take 1h-8h or 6h-7h?). This is combined using a statistical model to estimate the duration and uncertainty of the final project deadline. Only FogBugz and LiquidPlanner could do this as far as I could see.
- Dependencies—It seems to me than any project I do has some dependencies: the front-end only once the back-end and the HTML is done, HTML only once the Photoshops are done, Photoshops only once the requirements are done. This needs to be modelled, so you can not only see what tasks are ahead of you, but which you can already start on now. To estimate the completion date, you need to know this information as well. Many systems don't support this, such as trac and basecamp.
- Critical Path analysis—I can select any task, and say "show me the critical path". This takes into account what tasks an employee must complete before they can complete the given task, and also any dependencies to tasks which must be completed by other employees.
- Tasks can be organized hierarchically—I always got annoyed by systems like "trac" which just had a flat list of tasks. Each time you looked at your tasks they seemed to be in a different order. I find hierarchically arranging the tasks in a tree-view much more convenient.
- A living plan—At least at one of my customers, I go to their office, there is a huge multi-page MS Project Gantt chart on the wall. I'm sure they're proud of this chart, I'm sure it took a long time to produce. I'm sure it "feels" like they're doing good planning. But they're not. This plan doesn't get updated. It's irrelevant as soon as it's printed. A central cloud system gets updated as new tasks are found to be necessary (e.g. bugs), and as old tasks get done, perhaps faster or slower than they were initially estimtaed to take.
- Update remaining hours (not % through task)—If you're half way through as task, you can update the system with "I worked 4 hrs, I have 6-8 hrs to go". I prefer this to saying you're 50% through the task, which necessarily refers to the original estimate, which is almost certainly going to be out-of-date now that you know more, now that you've worked 50% of the task.
- Online—I want to have a single place everyone can log in and see the state of the project. Thus I don't need to compose emails telling everyone the current state, and the customer saves money by not having to pay me to do this. This discounts tools such as MS Project.
- Part-time employees—I can enter the fact that most of my team work e.g. 30 hours or 10 hours a week. It takes this into account when predicting the end-date on projects based on the effort remaining.
- Provides information, doesn't take decisions—I know best who can do what, etc. It doesn't provide any facility to "balance" work e.g. by re-assigning something from one employee to another.
- Email notifications—This seems like an obvious win, and most task tracking systems, e.g. Redmine, offer the facility to inform people when things happen. However, there's a big difference between doing this right, and doing this just mediocre. If a person updates a ticket a few times within a few minutes, Redmine sends individual emails, LP sends only one. If you alter something yourself, Redmine sends you an email about it anyway, LP does not. After one weekend I literally had 200 emails in my inbox (using Redmine), which doesn't inspire one to read each one carefully.
- Reply to email notifications—If you get an email from Redmine, and reply to it, it just gets lost. If you reply to an LP notification about a task, what you've written becomes a new comment in the task. This allows people who are "tool-averse" to still be part of the conversation.
- @Mentions—If you are writing a comment on a task, maybe you want to mention someone. Simply refer to them as
@David
in the text and they'll get an email. (As above, they can reply to the email and what they wrote will get added to the task as a comment.) In this way you can bring people into the conversation, and keep the knowledge in a system visible to the entire team, and away from individual inboxes. - No "priority" or "importance" field—I don't like it when you have to say "this task is high priority", "this task is medium priority". Everyone uses those statii differently. (Or worse, when one has to enter both "priority" and "importance" fields! That difference is subtle, which everyone understands differently.) In LiquidPlanner there is just a big (hierarchical) list of work. The work higher up in the list gets done before the work lower down in the list. You are free to rearrange this order as you like.
- No drag & drop of task bars in the Gantt chart view—Some tools allow you to take a task and drag it to the left to mean you'll do it earlier. I don't know why you'd want to do that. In LiquidPlanner you state the order of the tasks, and their estimates, and who will do them (and it knows how much that person works), and LiquidPlanner tells you when the task will get done.
- Customer Portals—A customer of mine can log in and only see their projects, incl their tasks, deadlines and estimated completion. Nevertheless, my employees are shared between various customers (if Martin is working on X, he can't be working on Y). The scheduling happens across all customers, however each customer sees the information relevant to them.
- Not all task visible on the Customer Portals—A checkbox per task allows you to specify if this task should be visible on the Customer Portal. For example "Add new field" is something the customer cares about and understands. But "Investigate NullPointerException in log" is perhaps not.
- Good employee onboarding—There is a nice 5-minute video which explains to employees how to use the "my work" section, perform estimates, and so on.
- Convenient time tracking—On Redmine, to record hours, you enter a number into a text field. You are obliged to use Excel, or a piece of paper, to record when you start things, so you know how long you've taken. With LP you freely right-click on any task and click "start timer". If you were working on another task, the timer for that task gets suspended. In this way tracking your time becomes effortless: no Excel needed.
- Checklists—If a task comprises of many steps, it's too "heavyweight" to create individual tasks for them. In LiquidPlanner each task has a list of checkable items. For example, I use these to record bugs I encounter as I'm developing a feature. In other tools I add "comments" with bulleted lists, but it's difficult for other people to get an overview of what's done and what's still to do.
- WYSIWYG editing—If a business guy is to create a task, I don't want to explain a new markup syntax to them. Rich text boxes with buttons like "B" for bold have been around for 20-30 years. LiquidPlanner supports such a rich text box, other systems such as Redmine do not.
Conclusions after 9 months
LiquidPlanner has found good adoption by my team, and has solved all of the above pain points. It has excellent customer support. We are happy with it and continue to use it. However,
- Expensive—At $29/month/user, which for my 3-5 users, quickly escalates to €100/month, and the months go by and suddenly you found you've paid €1k. If there'd been a piece of software offering a one-time license fee of €1k I would never have bought it; yet now I've paid more than that, and the total amount spent keeps on increaseing each month.
- Some have not adopted it—Some customers, and people they manage, were unwilling to adopt LiquidPlanner. They prefer to work with other systems, and keep me out of the loop. As these have no estimation abilities, questions like "when will we be finished?" cannot be answered. As long as I have no visibility into the tools I cannot manage the project (although it's my job to do so.) This is a political problem, not one a product can solve: the customers don't want to feel like they lose control. I don't think LiquidPlanner, or any other tool, can solve this. As long as the customers wish to pay me for weekly meetings and writing emails about status, then I suppose I shouldn't complain too much, even though they're acting against their own interests.
- No undo—If you make a mistake, you've got a manually revert it.
- No VCS integration (git, Subversion, ..)—This is not a feature I have really ever used in competing project management systems but I know that other people do.
- No Wiki etc—I know other solutions such as Redmine come with an integrated Wiki. Honestly I think such a thing has no place in a project management tool. One can just install a Wiki separately. But no doubt there are those who disagree, so it's worth mentioning.
- SaaS only—There is no option to download and install LiquidPlanner on your own servers. This might make it the wrong solution for sensitive data. I think that the NSA won't gain access to many trade secrets by seeing my task list. But I know others disagree. FogBugz would be a good choice in that case.
- Timesheets only record duration—When I bill customers I like to show start/end times of each piece of time I'm billing e.g. "2pm-4pm=2 hrs". But LiquidPlanner only supports recording the number of hours done, not at what time they were done.
- No collaboration on estimation—Someone (anyone) can update estimates of tasks. There is no facility to say "three people think it'll take 5 hours, one person thinks it'll take 1 hour, so the system determins it'll most probably take 5 hours".
- No resource balancing—I am working with small teams of 3-10 people. I know who is the most appropriate worker for what task. (Workers can also claim work themselves, if I get it wrong.) However, working with 1,000 person teams, one would need a facility to say "I need 100 software developers, who are available, who ideally have this skillset".