If someone asked me what's the biggest challenge an agency faces today - it's knowing who in your team is working on which project and when.
This process is called scheduling and it's something you need to do on a regular basis once your team/company reaches a certain level (that level usually being you not being able to keep it all in your head any more). So, how does scheduling work?
In theory, scheduling is the process of planning your resources. Resources in a software development agency are developers, designers, testers, UX experts, project managers and other important people who work on a project.
Why do so many companies have scheduling problems?
As with everything else, the answer is always the same: because it's just plain hard to do it properly. Maintaining an up-to-date schedule requires discipline from your entire organization - something that's not easy to enforce if you're battling deadlines, client requests, production problems, hiring, sales & marketing, managing growth and a plethora of other activities deemed more important at the time.
How is scheduling typically done?
The typical way schedule planning has always been done is by using Gantt charts. A Gantt chart is a type of bar chart that illustrates a project schedule. A Gantt chart allows you to define dependencies between resources in your project.
The problem with Gantt charts is that they are typically planned once (when the project is being started), and are never updated. Also, when using Gantt charts, you are expected to plan your resources in a very detailed way, charting dependencies.
In our experience, this never works, and the schedule becomes something you have because someone said you have to have it (your boss, your client), and not because it actually helps you in your day-to-day job.
Also, Gantt charts are tailored more towards a waterfall model of software development. This doesn't really go hand in hand with an agile software development approach that's more compatible with the way software is built today.
How is scheduling done at Infinum?
Whenever we try to find a solution for an internal problem, the goal is always to strike a balance between ease of use and flexibility on the one hand, and creating a structured process on the other.
For scheduling, we use a great tool called Hub Planner. It is used by other digital agencies like F-I, but also branding agencies like the Flamingo group, creative agencies like Goodsir and even product companies like Mobify.
The basis of Hub Planner is the concept of bookings. A booking is an association of a person with a project, so that's when you say: "John will work on Project X on Tuesday and Wednesday".
All our projects have time estimates for different phases of the project life cycle. Once projects are approved by the client, the project manager has to create bookings in Hub Planner. This gives us an approximate end-date for the project which has to be communicated back to the client.
The schedule is usually planned approximately three months ahead. We find it optimal for the size and duration of the projects we typically work on.
Why do schedules change:
- something took longer then you anticipated
- you're waiting for assets or feedback from the client
- you need to jump off the project you're working on at the moment to fix a bug on some other project you released 3 weeks ago
- someone on the team is sick
Scheduling fails because it's typically done only once, which means we need to adjust the schedule on a regular basis. That means doing stuff like:
- moving bookings around
- adding-moving more people to a project
- informing key stakeholders that the deadline we planned initially just isn't realistic
The last one isn't a nice conversation, but it's one you have to have if the situation calls for it. It's best to communicate this to the client as early as possible so they can prepare for it. Honesty always works best here.
We typically do weekly schedule adjustments. Doing it weekly has often proven to be enough for the type of work we do, and it doesn't incur a major administrative overhead on project managers.
It's important for planning new work.
Keeping an up-to-date schedule isn't important just for production purposes. The people in your team communicating with clients have to be able to answer a typical question clients ask:
"When can you start?"
Using Hub Planner they can get this information at a glance:
We're booked until mid-May, is that a good time for the project kick-off?
It's important for hiring
Apart from production and sales purposes, having a clearly visible schedule is important for hiring purposes. Otherwise, how will you know when you need to start hiring new people?
Hub Planner has great reports and filters that can help you with that - get your availability level, filter schedules for individual teams and other cool stuff.
Just do it
I believe that the biggest problem a lot of agencies that don't do structured scheduling have is just - starting with it. Once you start doing it, you'll run into a million different problems, but if you stick with it, enforce discipline and do adjustments on a regular basis, the investment will pay off.
We aren't perfect at it, but scheduling is something we're committed to and we're getting better at it every single day.