ELI5: Explain Like I'm 5

Estimation in software engineering

Imagine you are playing a game with your friends where you have to build a house using blocks. You will get points depending on the size of the house you build. But you only have a limited amount of time to build it.

You know how many blocks you have and how many blocks you can place in a minute. So, you estimate how big you can make your house with the time and resources you have.

Estimation in software engineering is similar. We estimate how long it will take to build a software or a specific feature, and how many people or resources we need to finish it.

Just like building a house with blocks, software development also has several steps involved, and each step takes time and resources. Some of the steps are designing the software, writing the code, testing it to make sure it works, and fixing any issues found.

We use estimation to predict how much time it will take to complete each step based on our past experiences and our current resources. This helps us plan the project timeline and budget, and decide how many developers we need to finish the project.

But, just like building a house with blocks, things don’t always go as planned when developing software. Sometimes, we might encounter unexpected problems and delays that can affect our estimations. So, we constantly review and adjust our estimations to make sure we can deliver the project on time and within budget.

In short, estimation in software engineering is like predicting how long it will take to build a house using blocks, but with computer code. We use our past experiences and current resources to make educated guesses, but we also expect the unexpected and adjust our plans accordingly.