Determining development times
Are you a developer but you don't know how to give a development time? Does your development team never get it right when it comes to specifying sprints? Let's look at this problem in detail.
-
The software 📱: an App in which the user writes down the glasses of water they drink during the day.
-
The task 📤: a button that when the user presses, adds a glass of water.
-
The client or project manager 👩💼: considers that it is something simple to do, and therefore it will take little time to complete.
-
The developer 👨💻: is not very sure how long it will take, therefore, as the rest assume that it is a simple task, he will tend to underestimate the real development time.
After my years of experience, I have a very simple formula that will help you give a real figure:
- What minimum requirements does the task need? There must be a screen that shows the button, and the interface that will show the user the glasses of water they have drunk. If it already exists, we move on to the next point. If it does not exist, a new task will have to be created, which will involve additional work for the design team, and a new requirement will have to be estimated.
- The task already meets all the requirements to be developed. We focus on the steps necessary to carry it out. The first step is that, when pressing the button, the App has to know how many glasses of water the user has currently drunk.
- Oops, we don't know how many glasses of water the user has drunk. Overlooking an important requirement is more common than it seems. That's why it's important to spend time estimating the requirements of the task. In this case, you have to determine how the data will be stored in the App, which can be a process that involves several parts of the team. Suddenly, a task that seemed simple becomes more complicated than expected. Don’t panic, you have to stop and set a new, more priority task.
- After I don’t know how much time, we return to the original task. Once the requirements have been resolved, this time for real, we can resume the initial task. Now the developer can estimate how long it will really take to complete it. How long does it take to make a button, when pressed, obtain the glasses of water drunk during that day by the user, and add one more? And that when adding them, the interface is updated, adding one more glass graphically? It is a much easier question to answer than the initial estimate of the task.
- Add the time for testing and reviewing the code. If the code works the first time, be wary. You should always perform unit tests, and tests with humans, to verify that everything works. If it doesn't work, it will have to be fixed. Depending on the case, the time required to do this can even be longer than the development itself!
🎓 I hope this has helped you understand how complicated estimating a somewhat more complex task can be.