Get Better at Estimating Your Project Timelines
By: Gerry Saporito
Tags: Planning Ahead, Project Planning, Software Development, Time Management Skills, Project Development

What to also consider

Photo by NordWood Themes on Unsplash

External Dependencies

This is a factor that is often overlooked. Projects which involve multiple people can sometimes be delayed by reasons outside of our control; waiting for someone to get back to you, a task you were waiting to be completed had a late start, etc.

With this, plan according to the worst case time. For example, if a contractor says they can get the task done in 3 to 5 days, plan as if it would take 5 days. If they finish sooner than 5 days, then great! If not, you already accounted for it and the project can still move forward.

2. Known Unknowns

This includes all the tasks which you know has to be done, but don’t know how it’s going to be done. In other words, you know what you don’t know. This could be learning about the subject/technology or fixing a conflict between 2 modules.

Start your project with the known unknowns if possible, and if not then start them as soon as possible. The sooner you start them, then the sooner you can find where the roadblocks are, and if necessary the rest of the project tasks can be shuffled around to accommodate for the known unknowns which are behind schedule and something can still be delivered by the deadline.

3. Unknown Unknowns

These are the things that come up. Problems arise, simple solutions are just not possible, sometimes you even have to move backwards before the project can go forward.

When the project timeline has been decided, add some padding as a safety net to your project. According to industry standards, every project should have about 20–30% extra time allocated to it. Saying your project won’t need it is hyper-optimistic, because every projects has its bumps in the road. Regardless, you will be happy you did it!

4. Insufficient Level of Detail

This one is related to the unknowns. Insufficient level of detail provides more unknowns because the project hasn’t been looked into enough. It is also possible to have too much detail, in which every little thing has been laid out, which adds more complexity to scheduling and lengthens the scheduling period.

When planning out the project, it is important to provide enough detail to see all the tasks that need to be done. As you go along tasks will be added to the list; it is a given that things always come up. Maybe the project scope changes. Maybe a conflict between 2 processes occur. Plan out enough to uncover as many unknowns as you can, while not getting lost in looking for something that you can’t find.

5. Complexity

Some tasks are complex. The task could be clearly defined, but implementing it could be difficult. For example, programming linear algebra. Someone must, without using any external libraries, program a function to find the determinant of a matrix. This topic is written and explained in many textbooks. But actually implementing it in a program is a whole different story.

When considering the timeline for specific tasks, give each a complexity rating from 1 to 3. Depending on the score:

Tasks with a score of 1 should have their time allocation stay the same

Tasks with a score of 2 should have their time allocation multiplied by 1.5

Tasks with a score of 3 should have their time allocation multiplied by 2

6. Dunning-Kruger-Effect

This point is for the overconfident, inexperienced ones. The Dunning-Kruger-Effect is used to describe the relationship between experience and confidence. I have to be wary of this especially. At 20 years old, I don’t have enough experience yet to accurately predict the amount of time it would take for me to complete a task. I often overlook complicated tasks and give a much shorter time than actually needed. The relationship can be seen in the figure below.

At the start of anyone’s career, we are filled with confidence after gaining a little bit of knowledge. We believe we know enough to do tasks with ease, and end up overestimating our abilities. As we gain more experience in a field, there will come a time where we are exposed to so much we didn’t know, leaving us feeling lost and confused. After that point once we know what we don’t know, we begin to catch on and learn until we can accurately gauge our ability and make proper estimates.

The way to combat this lack of knowledge and inexperience is by asking someone who is experienced to join the planning. They can make better guesses at how long it will take someone based on that person’s experience to perform a task. And having another set of eyes doesn’t hurt either.

7. Skillset of the Implementor

Depending on who performs the task, the time allocated to them will vary. Typically, you would ask people to perform tasks which suits them and their skillset. You wouldn’t ask a doctor to write a complex program, and if you did you would allocate more time to compensate for their inexperience and lack of knowledge.

When assigning tasks to people, consider their skill set. Try to match skill sets and accommodate for those who aren’t a good match by allocating more time to them.

8. Time-Off

This is one that passed right over my head until my supervisor pointed it out. People take vacations, holidays come up, people get sick and there is also Personal Time-Off (PTO). These will be inconveniences to the project and must be accounted for when creating the timeline.

To counter this, create a timeline with a calendar next to you. Let people add when they will be taking vacations and PTO, and add holidays to the calendar. If a project would take about 3 working days but there is a holiday in between, add an extra day to account for it. Your co-workers will also appreciate the extra time so they aren’t scrambling to get the job done.

9. Working Hours

This one is really important to consider. Your co-workers are at work for, say 8 hours a day, but aren’t actually working on the tasks given to them for all 8 hours. People take breaks, go to the washroom, have lunch, attend meetings, get called for advice… the list goes on and on. And once the workday is done, they are eager to go home and relax from the busyness of the work day. It isn’t fair to say they will work every minute they are at work.

When allocating time, it is safe to assume that a person will work for about 50–70% of their working hours, depending on the person. Architects, PM’s, and other people who are always in meetings will have even less time to focus on their work so be considerate when allocating time.