Home headlines How do programmers estimate their project development time?

How do programmers estimate their project development time?

Feb 20, 2019 pm 02:47 PM
programmer

The estimation of project time is crucial to the success or failure of the project. Project time management includes the various processes required to complete the project on time. However, in actual projects, project delays often occur and estimates are seriously inaccurate.

Estimating time itself is difficult. Every programmer's estimate will be slightly different from the actual time required. The estimated time is short, indicating that some things have been ignored (compiling, testing, submitting code). It is estimated that the time exceeded indicates that the task is too large and difficult to understand.

For junior programmers, this estimation error is confusing. They often underestimate some tasks and overestimate some slightly more difficult tasks. I think that for an experienced programmer, the time of a task should be between half an hour and 24 hours. Tasks that exceed 24 hours need to be split. When programmers think about it in their minds, they may think it will take 60 hours, but in fact, even very experienced programmers need to divide tasks into controllable modules and then analyze and make decisions.

Another important thing to realize is that experience in programming is not the same as experience in time estimation. A programmer who has never done a duration estimate will not be good at estimating time. Without comparing the actual time required with the estimated time, you won't be able to get the experience of correctly estimating time from other feedback information.

Every programmer uses evaluation techniques. To improve this skill of yours, you can practice on every task you take on. Make an estimate of how long development will take at the beginning of the task and compare it with how long it actually takes you in the end. In this way, you not only improve your understanding of the details of the task, but also improve your time estimation skills.

How do programmers estimate their project development time?

Hofstadter's Law: It always takes longer than expected, even if you take Hofstadter's Law into account.

PMs often complain, why the company’s developers can never estimate their own project time? ! However, astute programmers have long been accustomed to this. I've even seen a project that was expected to be completed in 2 days end up taking 4 months, which is quite exaggerated even according to the "double the time" rule of thumb. At a high level, the problem is – Engineers and PMs or other people have different approaches and ways of thinking about time estimation.

The first reaction of most engineers is the minimum amount of time it would take to write a prototype if everything goes according to plan. What the PM or other downstream personnel want to know is when the project will be ready, and how long will it be from this time to release? So these are two different stories entirely.

So for engineers, mastering time estimation is an essential skill, which means you are a professional, stable and efficient developer.

Why is time estimation needed?

External dependencies

Nothing valid happens in a vacuum. Projects usually have external dependencies, such as communication with functional teams (finance, PR, customer support) and communication with customers. Coordinating these external dependencies is often the job of the PM or CEO, which means that the people most qualified to make time estimates (engineers) are not the people who most need to make these estimates. This asymmetry creates fundamental tensions.

Priority

Time measurement is also critical in determining priorities. Cost-effectiveness is an important indicator in the engineering field. Even if the function you are working on is the most powerful in the world, if time calculation shows that it will take a long time to implement, then the priority of this function will not be too high.

For example, you are working on a project that will make the website 50% faster after completion, but you could have completed 2 projects in the same time, and each project could make the website 40% faster. If you don't take the time to do preliminary calculations, you'll never know where you can build a faster website!

Primary Time Estimation

Assuming that we have reached a consensus that time estimation is very important, then let’s continue to look at how to estimate. Often we underestimate how long it will take because we think “how long does it take to write a prototype?”

However, what is delivered is often larger than the prototype, and you also need to consider the time spent on testing, debugging, and optimization. There are also meetings, interviews, code reviews, and even sending emails that take time.

Another reason for underestimating the time required is unexpected problems that are often not fully considered, such as IDE updates that cost you an extra day to configure the environment, etc.

Based on this, it is best not to believe too much in so-called experience and intuition.

Step 1Develop technical plan

Before starting any important project, you should have a technical plan or design document. The purpose of this document is to let others know what you are doing and to get feedback. When you notice the technical details, you will have a clearer idea of ​​the specific time spent. For example, updating a certain library to a new version may take an extra day. You even have to write a library yourself.

Granularity is very important here. If something feels unclear, either you should know more about it or break it down into more detailed steps. At the same time, if one step is too detailed, it may be too fragile and the entire plan will be ineffective, so you must grasp this degree.

If you want to know what you should consider in your document, you can read this article by AliciaChen. The key is to communicate clearly with the PM and eliminate any ambiguities, so as not to have to overturn and start over again in the end.

Step 2: Add time estimates for each step

How long does it take to implement each step in the document? This often involves studying the details (is there a library for this already?). So depending on the nature of the project, doing a simple prototype first can help reveal many potential pain points.

Step 3Add fault tolerance time

Now you have the preliminary time estimate, but there are many other factors to consider.

Debug on the go: Bugs are inevitable and depend on the developer's experience with a particular codebase and the maturity of the codebase. Meetings and holidays: Generally speaking, you don’t code during meetings or holidays, so how long does it take to actually code? Therefore, take a good look at the schedule when estimating time. Final testing: You should usually test as you code, but many teams also need to do integration testing before releasing, so allow for this part of the time in your estimate. Code Review: How many rounds do you typically do in this codebase? How long does each round take? How many reviewers does it have to go through? Pay attention to the reviewer's schedule to ensure time for code reviews.

When you factor in the cost of delivery time, you can see that your time estimate matches the actual release time of the project much better. Although it may actually be longer, you may be pressured into shortening the schedule. But when people understand that your estimates are more accurate, they will trust you more.

Step 4Estimation of review time after release

It’s quite painful to review Yes, but reviewing allows you to do better next time. What happened on every project where actual didn't match expected time, find the reason and improve it.

In short it’s all about communication. Communicate in advance and frequently to understand each other’s schedules and changes in needs.

Communicating with relevant participants such as the PM can also allow the other party to provide important information that may affect your estimate. A designer might say that the animation will take a week to complete and should be cut. Another PM might also add that this prototype is just for user research and that this iteration doesn’t have to deal with too many bugs.

For engineers, don’t make unrealistic compromises of shorter construction periods. Being open and honest is more professional. It may be a process for PMs and others to respect this estimate, but know that you won't shorten the schedule by nagging.

Project time estimation is not easy, only good communication, empathy and prioritization of features can do it.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Which AI programmer is the best? Explore the potential of Devin, Tongyi Lingma and SWE-agent Which AI programmer is the best? Explore the potential of Devin, Tongyi Lingma and SWE-agent Apr 07, 2024 am 09:10 AM

On March 3, 2022, less than a month after the birth of the world's first AI programmer Devin, the NLP team of Princeton University developed an open source AI programmer SWE-agent. It leverages the GPT-4 model to automatically resolve issues in GitHub repositories. SWE-agent's performance on the SWE-bench test set is similar to Devin, taking an average of 93 seconds and solving 12.29% of the problems. By interacting with a dedicated terminal, SWE-agent can open and search file contents, use automatic syntax checking, edit specific lines, and write and execute tests. (Note: The above content is a slight adjustment of the original content, but the key information in the original text is retained and does not exceed the specified word limit.) SWE-A

Revealing the appeal of C language: Uncovering the potential of programmers Revealing the appeal of C language: Uncovering the potential of programmers Feb 24, 2024 pm 11:21 PM

The Charm of Learning C Language: Unlocking the Potential of Programmers With the continuous development of technology, computer programming has become a field that has attracted much attention. Among many programming languages, C language has always been loved by programmers. Its simplicity, efficiency and wide application make learning C language the first step for many people to enter the field of programming. This article will discuss the charm of learning C language and how to unlock the potential of programmers by learning C language. First of all, the charm of learning C language lies in its simplicity. Compared with other programming languages, C language

520 programmers' exclusive way to express romantic feelings! Can't refuse! 520 programmers' exclusive way to express romantic feelings! Can't refuse! May 19, 2022 pm 03:07 PM

520 is approaching, and he is here again for the annual show of tormenting dogs! Want to see how the most rational code and the most romantic confession can collide? Let’s take you through the most complete and complete advertising code one by one to see if the romance of programmers can capture the hearts of your goddesses?

2023过年,又限制放烟花?程序猿有办法! 2023过年,又限制放烟花?程序猿有办法! Jan 20, 2023 pm 02:57 PM

本篇文章给大家介绍如何用前端代码实现一个烟花绽放的绚烂效果,其实主要就是用前端三剑客来实现,也就是HTML+CSS+JS,下面一起来看一下,作者会解说相应的代码,希望对需要的朋友有所帮助。

Make money by taking on private jobs! A complete list of order-taking platforms for programmers in 2023! Make money by taking on private jobs! A complete list of order-taking platforms for programmers in 2023! Jan 09, 2023 am 09:50 AM

Last week we did a public welfare live broadcast about "2023PHP Entrepreneurship". Many students asked about specific order-taking platforms. Below, php Chinese website has compiled 22 relatively reliable platforms for reference!

what do programmers do what do programmers do Aug 03, 2019 pm 01:40 PM

Programmer's job responsibilities: 1. Responsible for the detailed design, coding and organization and implementation of internal testing of software projects; 2. Assist project managers and related personnel to communicate with customers and maintain good customer relationships; 3. Participate in demand research and project feasibility performance analysis, technical feasibility analysis and demand analysis; 4. Familiar with and proficient in the relevant software technologies for delivering software projects developed by the software department; 5. Responsible for timely feedback on software development situations to the project manager; 6. Participate in software development and maintenance Solve major technical problems during the process; 7. Responsible for the formulation of relevant technical documents, etc.

A brief analysis of how to download and install historical versions of VSCode A brief analysis of how to download and install historical versions of VSCode Apr 17, 2023 pm 07:18 PM

Download and install historical versions of VSCode VSCode installation download installation reference VSCode installation Windows version: Windows10 VSCode version: VScode1.65.0 (64-bit User version) This article

List of the best Windows 11 terminal emulators in 2022: Top 15 recommendations List of the best Windows 11 terminal emulators in 2022: Top 15 recommendations Apr 24, 2023 pm 04:31 PM

Terminal emulators allow you to emulate the functionality of a standard computer terminal. With it, you can perform data transfers and access another computer remotely. When combined with advanced operating systems like Windows 11, the creative possibilities of these tools are endless. However, there are many third-party terminal emulators available. Therefore, it is difficult to choose the right one. But, just as we do with the must-have Windows 11 apps, we've selected the best Terminals you can use and increase your productivity. How do we choose the best Windows 11 terminal emulator? Before selecting the tools on this list, our team of experts first tested them for compatibility with Windows 11. We also checked them