Managing project team schedules is one of the most challenging parts of running a consultancy. Optimizing for client release dates, assigning the right team to the job, creating good mentoring opportunities, connecting individual team members with a project that they’re personally passionate about, and minimizing schedule gaps to protect your own cash flow is an exponentially difficult problem that keeps getting more and more complex as the company grows.
At Atomic Object, we assign teams in a high-throughput fashion. This means that most individuals are assigned to one project for a lengthy duration of time (three-six months), with the potential to extend even longer. We assign teams in this way because the projects that we work on are complex, and our clients appreciate continuity. The business decision to schedule teams in larger blocks of time has made our scheduling situation even more complex because every time we schedule a team, we trade our own flexibility for that of our client.
Fortunately, we’ve identified some best practices for the very artful dance of scheduling. While Atomic Object is a software design and development consultancy, these best practices could be applied to any organization that schedules teams in a high-throughput fashion.
Ensure you’re working with accurate data.
Many times, the team members you want to schedule will be coming off other projects. Before you start promising dates based on their availability, make sure that their end dates are accurate, and that the client they’re working for isn’t planning to extend the team commitment. At Atomic, we prefer to give current clients the first right of refusal on their team before we assign those people to another project.
Make your priorities part of the process.
To simplify scheduling, it’s helpful to identify and prioritize the factors that guide your decisions and get everyone aligned on that order. When making decisions at Atomic, we put our scheduling goals in this order:
- Minimize downtime. Look for opportunities that allow you to plug scheduling gaps. Minimizing downtime is less about avoiding large scheduling gaps (that’s a function of sales) and more about reducing small ones. Leaving high-throughput designers and developers idle, even for a few weeks at a time, is an easy way to spill significant potential revenue. Moreover, it’s a lost opportunity to help a client. Minimizing gaps often requires the scheduling team to think creatively about project starts, ends, and team size. It also commonly involves open conversations with clients to create situations where everyone wins.
- Optimize the team. Next, we tailor the team for the project. This is normally an easy task at Atomic because we have an extremely talented team that can excel on various project types. However, many projects come with complexities that should be considered when scheduling. Examples include a certain personality type to mesh with the client, specific technology expertise, or an opportunity to bring on a new team member without adversely affecting the project.
- Schedule for passion. Finally, look for opportunities to assign team members to the kinds of projects that they are passionate about, whether it’s the client domain or the technology involved. At Atomic, my partner Shawn and I make it a point to have one-on-ones with everyone on our team. We use these meetings to understand individuals’ long-term goals, and we try to align those goals to project assignments whenever the opportunity presents itself.
Keep your most flexible person idle.
If you have more team members than projects to schedule and someone needs to go idle, you should always strive to make your most flexible team member the odd person out. Why? Because this person will be the easiest to schedule into the next, currently unknown project. This stance is tough to stick to in practice since your natural tendency is to keep your most flexible person scheduled at all times.
Create a constraint.
The complexity of scheduling multiple teams can sometimes be overwhelming. When facing a tangle of scheduling possibilities, I simplify the problem by making a scheduling choice for one project. Scheduling the first project drastically simplifies the amount of possibilities on the table by constraining the problem space. You instantly have less people and less projects to schedule. It also allows your mind to more easily solve the remaining scheduling challenges. When you are done scheduling, you might find that your original constraint was changed, but it helped you better get your head around the problem.
Good luck with your scheduling.