The Art of Scheduling
The world of web development doesn’t spin round without at least some degree of difficulty.
Day-to-day differences between companies and their plans will always combine to make scheduling a tricky task.
With this in mind, it’s vital to have efficient systems in place to ensure you’re properly equipped to deal with all the projects you’re managing.
So How Exactly Do We Manage Work Effectively?
In an ideal scenario, a project would begin on a Monday with the exact amount of developer time available to complete any tasks. There would also be zero amends required as the build progressed. But this simply isn’t realistic.
Instead, you have to plan in concurrent project tasks as best as possible - and this is achieved through scheduling. At Evoluted, the tools we use to do this help us to ensure:
- Everyone has something to do
- Disruptions are minimised
- High-priority work can be sorted as quickly as possible
- Work is completed in a timely manner
To help show how we keep things running smoothly, we’ve broken down our processes for planning, project management, time tracking and development amends.
Forecast - Project Planning
We use a central diary system called Forecast to manage everyone’s time. This is accessible to the entire team and overseen by our Operations Director, who has an overview of all project priorities.
Each morning, developers log in to the Forecast system to check their schedule for the day ahead. The interface provides them with a breakdown of the work they need to complete; via a series of milestones. These can relate to one or multiple projects. For example:
- Morning spent on Project A; adding new functionality
- Afternoon spent on amends for Project B
In cases such as this - where there is more than one milestone for the day - we number milestones for clarity.
Having tried several other different planning software solutions, we opted for Forecast because:
- It was easy to use
- It was easy to integrate into our other tools
- It could easily provide a snapshot of what the team is working on, at any one time
Asana - Project Management
Forecast only schedules work. A great project management system is essential alongside this to keep all project teams up to date.
At Evoluted, the system we used to achieve this is Asana. We previously relied on Basecamp, but moved away from it as the software doesn’t allow you to customise the team experience.
Our team use Asana constantly throughout the day, so it’s central to ensuring everyone is on the same page.
All client and internal projects are logged within the Asana system and given their own interactive ‘board’. Within these boards, all project tasks are broken down under sub-lists (such as: marketing, design, development etc.).
The tasks themselves are then tagged by stages, including: ‘Upcoming’, ‘In Development’ and ‘Ready to Test’. This allows project members to gain a quick sense of how a project is progressing.
Each site we work on may have a number of different ‘streams’ of work being progressed at different times. These may all be at various stages of completion. For example:
- Stream A is ‘Upcoming’
- Stream B is ‘Being Tested’
- Stream C is ‘In User Acceptance Testing’
- Stream D is ‘Approved and Ready to Go Live’
These streams can be easily related to feature branches in GIT. This means that they can be pushed live individually, without conflicts.
Additional Features of Asana
- Different streams can be worked on by different developers - so work can be split simply between Front End and Back End.
- On larger website developments, tasks are broken down by ‘Sprint’. Essentially, this is just another way of grouping tasks together.
- Our clients have access to a Kanban-style Asana project board, so they can see tasks being progressed as the project moves forward.
Harvest - Time Tracking
To help us track time across a project and the team, we use Harvest, which is integrated with Asana.
When a developer starts work, they can hit the Harvest timer button in Asana to start logging their time to a particular task within the project they’re working on.
Harvest is very handy because:
- If you start a new timer, it stops the old one for you. This removes the risk of stats becoming erroneous.
- There is a desktop app that makes it easy to book time to non project-related tasks. These could include project kick-off meetings or the morning stand-up session.
- Project Managers can keep an eye on the tracked time as it accumulates for a project, to ensure budgets are appropriately maintained.
Dev Queue - Non-Project Work
Whilst managing larger projects is relatively straightforward, handling smaller requests for updates, changes and fixes can be somewhat tricker.
To cater for this, we’ve devised the ‘Dev Queue’ in Asana. Here, all the ‘smaller’ requests that arise from client and internal projects are logged to be scheduled.
These tasks are then progressed across a series of lists, which are ordered in columns on a ‘board’:
- Estimate Needed (Task requires a time estimate from a developer)
- Requested (Awaiting assignment from management)
- Scheduled (Scheduled in for a specific time)
- Awaiting Testing (Task completed and awaiting testing from management)
- Ready for Live (Amends completed and needs pushing live)
- Done (Work complete)
Each week, one developer is assigned to the Dev Queue on a slowly-rotating cycle. This is useful because:
- It gets everyone on the dev team involved
- The same work doesn’t go to the same person every week
- It frees the rest of the team to work without distractions
- The developers widen their knowledge
By assigning one developer to the queue for a whole week, they are able to get into the ‘headspace’ of a busy schedule that necessitates swapping between large projects and small updates.
Scheduling is part science, part art. It needs to be flexible to demand; whilst providing structure to the team and preventing confusion.
Through Harvest, Asana, Forecast and the Dev Queue, we’ve found a combined solution that works for us. Even more importantly, it’s great for our clients too.
What do you use to manage your own scheduling processes? Share your thoughts by leaving a comment below!