JavaRush /Java Blog /Random EN /Coffee break #45. What you need to know about time estima...

Coffee break #45. What you need to know about time estimation in software development. 5 Best IntelliJ IDEA Plugins

Published in the Random EN group

What you need to know about time estimation in software development

Source: DZone Time estimation is an important skill for software developers, a nightmare for project managers, and a confusing term for clients. Let's figure out what kind of animal this is.Coffee break #45.  What you need to know about time estimation in software development.  5 Best IntelliJ IDEA Plugins - 1

What is timing?

Timing is the estimation of the number of hours required to complete a task or series of tasks. The better you understand the features and nuances of the work, the more accurate timing you can make.

Three main stages of software evaluation:

  • Assessment of product complexity for development;
  • Estimation of labor costs in man-months (man-hours) and schedule in calendar months (days);
  • Financial assessment of the project cost.
Timing plays a very important role in software development because without it, you will not be able to estimate the duration and cost of a software development project.

Why is timing necessary in software development?

If you want to correctly calculate the time and material costs of a project, and not lose money and time during its implementation, you need to know how much time and how much effort you need to invest in this project.

Why correct time estimation is so important:

  • Underestimating time and effort may result in you being offered work at a cost that does not correspond to the resources you will spend on its implementation;
  • If you overestimate your time and effort, it may result in you not receiving the order. This project will most likely be received by one of your competitors, who will calculate everything more accurately.
Try to objectively and realistically assess your abilities. This will help determine as accurately as possible the time and material costs required to develop the project.

Why are mistakes made when calculating time?

  • Negligence. Insufficient attention has been paid to project evaluation;
  • Underestimation of possible difficulties. It is impossible to foresee all the problems and obstacles that may arise during the development process. However, you should note that you may need additional time to resolve problems;
  • Unrealistic due date set by the client. Project managers and teams are under pressure from factors such as customer requirements, goals, and deadlines. Sometimes this can lead to miscalculation of time and costs;
  • Too much optimism. Rose-colored glasses combined with conflict avoidance often lead to unrealistically optimistic timing.
Tips based on our experience: Projects can often take longer and cost more than planned, so judge your time wisely.

How to Avoid Mistiming

You need to estimate time and material costs as accurately and reliably as possible. But the more accurately you want to do this, the more effort and additional time it will take. Prepare well, use qualified expert judgment and act systematically.

What to consider when calculating time

To perform an accurate timing calculation, you need to consider two things:
  • Personal experience. Your experience is your best friend and will tell you what is best to do and what mistakes to avoid.
  • Analogy. If you or your competitors have completed similar projects, you need to rely on the time and material costs that were spent on similar projects.
There are many practices and methods that are actively used in time estimation. The most important factors affecting timing accuracy are:
  • Accurate evaluation of all input data;
  • Accuracy of all calculations;
  • Maximum proximity to historical data or industry data;
  • Predictability of the software development process;
  • Stability of product requirements.

Four Best Time Estimation Methods

Comparison method: use the experience of previous projects

  • The comparison or analogy method is based on systematic data and assessment of experience in the implementation of previous projects. The quality of a calculation based on experience is better than the quality of an intuitive assessment.

Key Figure Method: Create Your Own System

  • Certain key indicators are available for different types of projects. The main advantage of this method is that with the help of such key indicators you can quickly and easily estimate the effort that will have to be spent on order fulfillment.

Using the bottom-up method

  • The bottom-up method is relatively time consuming but provides a good quality assessment. With a high level of detail at each stage, you can create a detailed project plan that you can use during the implementation phase to manage projects. This approach requires you to create a work breakdown structure with the required level of detail and appropriate workflow descriptions.

Team assessment: difficult but high-quality assessment

  • Practical experience shows that the quality of group assessment is much better than the opinion of a single programmer. Therefore, whenever possible, involve your employees and colleagues in calculating time.

Conclusion: Why timing is important

Timing plays a particularly important role when planning a project. Remember that you should:
  • Allocate sufficient resources to correctly perform time estimation and obtain all the data needed to make the most accurate forecast;
  • Structure information about the unit of work and the scope of the project;
  • Assess external risks that may interfere with the timely achievement of desired results;
  • Analyze internal risks, including potentially inaccurate budget estimates and their possible impact on the project schedule.
The key to good timing is to use strong evidence, avoid being overly optimistic, and take uncertainty into account.

5 Best IntelliJ IDEA Plugins

Source: Java Code Geeks Mathematical engineer and Senior Software Engineer Sezin Carli decided to share with everyone the top five, in his opinion, IntelliJ IDEA plugins. According to Sezin, they will be useful for any developer. The plugins are listed in no particular order.Coffee break #45.  What you need to know about time estimation in software development.  5 Best IntelliJ IDEA Plugins - 2

Key Promoter X

Although the name sounds more like a cheap MIDI controller, it is a really useful plugin for those who want to master the meaning of IntelliJ keys. It shows notifications for almost every tap you make and suggests shortcut keys. It also contains statistics of your most frequent actions.Coffee break #45.  What you need to know about time estimation in software development.  5 Best IntelliJ IDEA Plugins - 3

Lombok

This is the only plugin in my selection that can be called unusual. Lombok is not only a plugin, but also a Java library that allows you to create boilerplate code with annotations. For example, you can add @getter and get an accessor for each field in a Java object. To work flawlessly with this Java library, you will need the Lombok plugin. Unless you have a specific need to update to the latest JDK with every release, I highly recommend Lombok. But note that if you always update to the latest version, you may have problems with Lombok, since it does not support new versions right away, and this plugin cannot be updated if its version does not work with your version of Java.

Sonarlint

You may already be familiar with Sonarqube. It is a statistical analysis tool that can detect problems in code structure, potential bugs and other vulnerabilities in your code base. Sonarlint is a plugin that runs as a Sonarqube server inside your IDE. It's great for finding potential problems in your code without having to do anything extra.

Rainbow Brackets

Everything is quite simple here. This plugin colors parentheses for easier reading.Coffee break #45.  What you need to know about time estimation in software development.  5 Best IntelliJ IDEA Plugins - 4

Extra Icons

This plugin creates additional icons for your project files. Once the plugin is installed, your gitignore file will receive a git badge. Maven launch icons will be created for the mvnw and mvnw.cmd files, and so on.
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION