Monday, June 18, 2012

How to: Manage Remote Projects

Managing a remote project is hard work!

Before starting Syllogistic Software, I worked for a large software corporation, and managed several remote teams. It was always a challenge to:
  1. Stay on top of remote workers' task status
  2. Communicate questions and answers
  3. Help the remote workers keep up with everything else happening in the project
So what tools did I employ to help the situation?
  1. Email
  2. Conference calls
  3. Microsoft Project
When I started my own software consulting company, I tried using these same tools, but found a few problems:

Problem 1: People don't answer email

Even back then, people were buried in email. They choose the easiest ones to answer and ignored the rest.

If you asked them a complicated question about the next steps of a project, it sat in their inbox for days, gradually pushed down the list by other incoming emails.

Problem 2: People forget what is said in meetings

To solve problem 1, I would often call or schedule a meeting. During the meeting, we would go over the questions, determine action items, and record them in meeting minutes.

Unfortunately, some of these actions items would sometimes still fall through the cracks, and not make it to a remote worker's todo list.

Problem 3: Microsoft Project only works for initial high-level planning

MS Project is a great tool for coming up with a "grand" plan before starting a project. But the pretty Gantt chart you create is only valid for a day or two before -- you guessed it -- something changes.

Then you have to go back and re-adjust everything, and your beautiful chart starts looking messy. A week later, there are 5 new scope items, and you're already well behind the planned schedule. Your project plan has essentially fallen to pieces, because you've been so busy putting out fires that you haven't had time to keep it current.

So how do we solve these problems?

After many years of iterating through various fixes, I came up with several techniques that worked:

Solution 1: Clarification questions

The very first version of PMRobot came with a feature called "Ask a clarification question." This remains one of the most important innovations.

When you ask someone a question, it tracks its status, and helps remind the person who has been asked the question. This way, they don't delay the entire project by forgetting to answer.

Solution 2: Track work items in one place

Instead of requiring people to keep track of everything they need to do on their own, create a central work repository that's easy to keep up-to-date.

PMRobot provides a dashboard for workers that shows them exactly what needs to be done, in the exact order they need to do it. After a quick glance, they know their next step.

In addition, if they ask a question about a particular feature, the answer isn't lost in some document called "Week 5 Meeting Minutes." The answer to their question is in the exact same place as all of the other work details.

Solution 3: Use a dynamic project management tool

Microsoft Project is great for static, high-level, upfront planning. If you need a rough overview of the "grand plan," it can help.

Once the project starts, however, you need a dynamic tool that makes it easy to add and update new information.

A major part of project management is change management. Clients change their minds, technology fails, people get sick, and generally -- things change.

Your project management tool needs to be built with change in mind.

PMRobot is built with change management at its core. Every feature helps you control the chaos, and manage each change one by one, getting you closer to meeting your project goals.


As you can see, many of the features built into PMRobot have been designed to solve very specific problems -- problems that are very common to software consulting.

If you're struggling to keep up with emails and conference calls, consider trying a new approach, and see how these techniques can help tame your chaotic project.

About the author: Jason Hanley loves bringing order to chaos. He travels around the world, manages a team of remote developers, and is constantly iterating and improving

Monday, June 4, 2012

Removing the Mailman

When I started working at Syllogistic Software, all client communication went through my manager. They knew him, he knew them, and it was simpler that way. This worked great for about 30% of the emails we sent because they were managerial questions, like getting estimates, talking about features, and scheduling work. Once all that was done, it fell to the developers to actually do the work, and interpret the clients’ requests. And sometimes it wasn’t 100% clear what they wanted.

Enter the mailman. I would write up a question about something that we didn’t know, then my manager would look it over and then email it onto the client, usually verbatim. Then the client would respond to my manager, and my manager would forward the information back to me. Much of his "work" consisted of simply passing notes between the two sides. It was ridiculous!

This story was a big driver behind how we designed PMRobot. We wanted to have clients use the system, and communicate directly with developers, so that our manager didn’t have to be a mailman as well. This change also sped up how quickly we communicated with clients, allowing us to get answers within minutes, instead of hours, or even days. Now that our manager is travelling in Europe this is especially important. He’s no longer a bottleneck, and we don’t have to worry that “the answer is in the mail”. :)

About the author: Travis is a programmer for Syllogistic Software and helped build and design PMRobot.