(Editor’s note: this is a shortened post from the author’s original article on Product School.)
A lot of uncertainty lingers around the start of a digital project: how much will it cost? How long does it take to deliver? Who is going to build it?
Large projects can span years, and some require flexibility to change specifications on the way. Flexibility can be a huge problem when the team has to work within a fixed cost structure. Project managers often have to give a cost estimate to the client, and the client will pay only that price once the work is delivered. If the project manager misjudged the size of the work at the outset, the team has to eat those costs.
The larger the project, the likelier it is that something unpredictable will come up that alters scope and features. The only thing scarier than a large project? Not having a plan to deliver it.
A software developer who has built a camera app before will know roughly how long it takes to build a feature to take photos. Similarly, if someone has successfully completed a task once, they can estimate quite well how long delivering a similar task will take next time.
Estimating a simple task is easy, and every digital project is essentially just a series of simple tasks. The key to successfully breaking down a large project to manageable pieces is to find the simple tasks, and group them into larger chunks and milestones.
So how many simple tasks does Facebook take to build?
The most important thing to remember is that you’re building from the bottom up. You first list all the tasks that need to get done, estimate those, and build the project up from there. We usually do this in three distinct phases:
- Write down each and every feature and task that’s required to complete the project
- Clean up the list: involve experts and incorporate their insights
- Organize the tasks into workable milestones and sub-projects
Step 1 of 3: Writing tasks
Use common sense to list out all elements that are required to deliver the product. These can be user stories, product features, individual tasks, pages, app screens, or anything else that helps communicate the idea to someone else. For our purposes, think of a task as something that can be done in a single day.
Use any method to get the list of tasks. You can start by creating a mind map of potential features, or by writing user stories to post-its and sticking those on the wall. Some people would use a blackboard, and others an online Kanban tool.
The goal is completeness: in this phase you’ll want to see all the tasks laid out clearly, so continue writing down ideas until there’s nothing left to add.
Step 2 of 3: List cleanup
In this step, we’ll bring in the experts, and make the tasks super clear. This is where you can ask others for help: designers, developers, and people who can perform tasks needed for the project at hand. People who have done those types of tasks before can see if the list makes sense to them. They will point out the areas that need clarification, and split or merge tasks where necessary.
In this phase, you’ll handle special tasks such as:
- Build in extra buffer time for unclear work, or research and development features, as they can hide potential hold-ups.
- The larger the project, the more time is needed for restructuring or refactoring works.
- Think about integration scenarios, and add extra tasks for those: when multiple teams are involved, there’s extra time needed to combine their work.
This is a good time to attach difficulty points and priorities to each task. Especially on large projects, this will help you understand total costs and resource needs.
Step 3 of 3: Design the project
The previous steps laid the groundwork. Now we can group the tasks together, create milestones, and design the project timeline.
It’s a largely creative step, where the project manager has to incorporate all the information about the project and align the goals of product, development, and business stakeholders.
There are a zillion ways to design a project timeline, but here are a few ways to think about this process:
- You can organize the project into specific phases. Some digital projects have separate phases that require a dedicated expert team as well, for example: design, implementation and testing, phases.
- Or, organize into a delivery schedule. Sometimes you can find a core product that satisfies all hard requirements. In these scenarios, you can release that product first, and keep adding new features in subsequent delivery milestones.
- Divide the project into independent sub-projects. Sometimes there’s a way to create completely independent projects with their own separate budgets, release schedule, and even teams. Ever so often, it’s easier to deliver multiple smaller projects by hiring multiple project managers, rather than handling one large job.
Of course, there are many ways to design a project, but the examples above show the importance of working from the bottom up.
With clearly defined tasks and estimates based on those features, there’s a clarity in the project that is essential to efficient delivery. With that clarity, you’ll find clear-cut deadlines and a team that can deliver with confidence.