Time Estimation in Software Development

Globalluxsoft
Globalluxsoft
Published in
5 min readJan 31, 2018

Estimates on product development become the headaches for almost every project manager. This is what they stumble upon and lose hope to gain control over. Project estimation can be tricky indeed, but let’s not paint the devil blacker than he is. We hope this article will help you sort through the helpful information about this topic.

Clarifying the Subject

Estimations in software development imply making predictions regarding the most realistic scale of efforts that should be put into developing a software product. This information allows suggesting the amount of money that needs to be invested into the project, the number of specialists who would work on the latter, and, finally, the time needed for all that.

Time estimation is usually performed to define the number of hours a single developer needs to complete a particular task prior to starting coding. It can become a stumbling rock for any product management team and hurt a business. A correct estimate is a crucial part of project management procedures, and it is really worth it.

While software engineers are the ones who acknowledge the realistic timeframes for accomplishing this or that task better than anyone else in IT teams, they tend to go underestimating. Here a paradox appears — persons who are most capable to make predictions are the least interested in doing so.

Project managers and C-level executives are also erroneous in their calculations since they are not familiar enough with the technical aspects of work that should be done. Often calculations are performed without taking into account any unexpected events that always happen down the line.

Why Is Time Estimation So Important For IT Teams?

First, there are external dependencies that development teams should take into account. They include communication and cooperation with other technical and non-technical teams like financial and communication managers, customer support representatives, etc. This is usually the PM’s task to coordinate all these communications.

Stakeholders and clients inquire about the project’s progress. They want to know, at least approximately, how much time it will take to bring the project to the desired launch. Some of them want this to be done by the exact date (e.g., when certain promises have been made to customers, an industry event or a conference has been planned etc.).

Another reason for making estimates is that they provide transparency and shed the light on the overall progress of the project. All these figures and metrics are very important for top executives and product managers; they help to understand the current status of the key deliverables. The latter are represented by the pieces of software, delivered in due time.

Lastly, sponsors estimate the project’s success depending on whether the project was completed on schedule and budget, and this directly influences the future of the business and its profitability.

Why Something Goes Wrong

In all fairness, it should be added that project estimates have their drawbacks and are not as accurate as they may seem. There are certain postulates that explain why time estimates are often ineffective in practice.

First, the time spent on making estimations can take up to 10% of engineers and other team members’ productive time. In other words, instead of getting things done, they spend their time on making predictions about the time when the things will be done.

Second, estimates are non-transferable values. One particular person needs x hours to complete a certain task, while the other person needs y amount of time. One should always consider the levels of productivity and experience of each particular developer involved.

Third, too early estimations are double wrong. The later you make them, the fewer mistakes you will face in future.

Fourth, estimates are temporary. They have a quite short period of validity. If not updated in time, they make more harm than good.

Fifth, force majeure circumstances and unexpected customers’ requests, challenges and issues are often not counted.

In attempts to cover all the above unknowns, managers go in for adding paddings, but in most cases, this is not effective as well.

How to Estimate Project Time Accurately

Step 1. Understand What Exactly Is Required

Start with understanding your desired outcomes. You may list all the required tasks in detail. Perform a business requirements’ analysis, arrange a technical plan and prepare to update it with joint efforts.

Step 2. Make Time Estimations For Each Of These Activities

Now, list all of the activities you identified in the order in which they need to happen.

Estimate how much time it will take to accomplish every single activity you are going to implement. Define the key deadline milestones. Check whether you are armed with all the instruments and resources needed to accomplish the tasks.

Don’t forget to make allowance and find time for the following points:

  • administrative work
  • emergency cases and unpredictable situations
  • possible issues with equipment
  • communication with the stakeholders
  • meetings
  • training
  • holidays, vacations and sick leaves of the key people involved
  • obtaining needed technical resources
  • debugging and rejections from QA
  • code reviews
  • other current tasks with high priority

With these in mind, you will make your project estimation much more effective as compared to the bare assumptions. You may find out that all these points significantly extend the overall project frames, but it is better to know what to do exactly instead of fighting with windmills.

Step 3. Decide Who Should Be Involved

Group brainstorming and panel discussions are more effective than taking individual decisions. Let the contributions come from the people who will actually do the work.

Prepare your project schedule, in which you will include the lists of activities, your personal and project calendars, description of project’s scope, possible risks and resource requirements. It may also include a critical path for your project.

Step 4: Review the Estimates after the Launch

Finally, assess all the strong and weak points of your project estimation post-factum. Analyze why it went that way and what can be improved in future. This will help you hone your skills and get better next time.

Some Tips

  • Prioritize tasks, categorizing them into “must-have”, “very preferable”, and “nice to have” ones.
  • Go sub-tasking and calculate the time needed for each particular piece of the project. Break down the scope of work into small parts, which a particular person can complete within 6 hours, for example.
  • Assume that the resources you can avail of would be only productive for 80 percent of the general time.
  • Stay agile and update the estimates after the changes were made in the project.
  • Remember that, generally, people are overoptimistic when it comes to estimating the amount of time needed to complete a task.
  • Parkinson’s Law states, “Work expands so as to fill the time available for its completion”.
  • The more details, the more accurate are your prognoses.

--

--