January 29th, 2025, posted in for_founders
by Adelina
If you’ve ever worked in software development in any kind of role, you must have heard about estimates. The word “estimate” in itself is vague, so it’s no surprise if you’ve had trouble understanding software development estimates. Why are these estimates so high? What do they represent?
In software development, estimating coding tasks is a big part of project management and planning. Since coding tasks are often split into sprints - bulks of work that last a couple of weeks - it’s essential for project managers and stakeholders to know how much it’s going to take to build certain features.
With estimates, you not only know how long it’ll take to get software built, but also how much it’s going to cost. If you’re paying per hour, hourly estimates determine how much you’re going to pay overall. Getting estimates for an entire app before starting means knowing if you can even afford it or not.
So in this article, we’re going to explain what software development estimates are, why they’re useful, what they mean and why they can be crazy high.
What are software development estimates?
Let’s start by talking about the main way software work is planned and managed. Most software development companies use the Agile methodology, where work is split into sprints. One sprint can be dedicated to a homepage, another can be dedicated to authentication, and so on. These are organized in a logical way by developers, in order to start with fundamental items such as setup, servers, database models, and then continue with the main app features from general to more specific.
Sprints usually last the same amount of time within a project, for instance 2 weeks. When developers estimate tasks, together with the project managers they can organize how much work can be done within a 2-week sprint. And so, through estimates you can organize development work, more so if you’re in a time crunch.
So how do software development estimates work? First of all, the app will need user stories. These explain in detail each feature of the app and will be used to create specific development tasks - which you can organize in kanban boards such as Jira or ClickUp. Usually, mid-level or senior developers will sit down, go through each user story, and based on their details they’ll estimate how many hours the frontend and backend will take.
We, for instance, estimate both a minimum and a maximum for both. This way, clients will get a range instead of a specific number. Since they’re estimates, it can be difficult to predict exactly how long it takes to build software. Therefore, a min-max range is more reliable. Most projects end up somewhere in between that min and max.
How do software developers know how to estimate coding tasks? Well, that’s where their experience and expertise comes in. Some app elements are common across pieces of software, such as login, CRUDs, menus, alerts, modals, user profiles, and so on. If they’ve coded these before, they’ll know how long it takes to do it again. If a junior developer will work on the app, whoever is estimating can account for that and add to the hours accordingly.
What do software development estimates account for?
When developers make estimates, they don’t just guess or name a random number. For instance, our developers create technical subtasks per user story in order to more accurately break down parts of a task. It’s easier for them to estimate these specific bits compared to the task overall, the description of which can be too vague for them. At the end, they can add up the subtask estimates to obtain the overall task estimates.
Example of our subtask-based estimates system.
Technical subtasks usually refer to all specific elements that go into a user story. These vary depending on what feature you’re describing - in our example above, for a forgot password feature, developers estimate the first screen where you submit your email address, the backend functionality that executes the request, the page the user gets to change their password and the backend functionality that marks that update.
In other words, something that sounds simple such as a “forgot password” button is not so simple and easy to code. Even features that seem small, might have a lot going on in the backend. Exporting documents is another good example of this.
Software development estimates can also include the time developers need to do research for the project, or the time it could take to test and fix their code. They usually account for unpredictable events as well - they could run into trouble, have unexpected lag, or need to revisit pieces of code.
As such, a high estimate for a task isn’t meaningless, or a way to raise costs on a project. Developers are humans, and it’s hard to give specific numbers to how long their work can take. They can end up finishing faster - but there’s also a risk of going over estimates. But that’s a general risk in software development anyway.
Estimates in UI/UX design
If you’re doing development in-house but outsourcing design, you might also require design estimates. Especially if you’re going to pay by the hour and want to get an estimated cost before getting started. Design estimates won’t be as big and dramatic as software ones, but they refer to different things.
When estimating design work, UI/UX designers also rely on experience. Just like we said earlier, a lot of app elements are similar across different apps. So if a designer has done landing pages, dashboards, user profiles or tables before, they’d know how long it takes to do them again.
When estimating specific tasks, designers will not only account for the work itself, but also for time taken to get inspired or the time it takes to reiterate after getting feedback. This especially applies to pages that require more artistry, such as landing pages. Inspiration isn’t something you can turn on and off, and so it needs to be accounted for in estimates.
Design estimates can go high if the app you’re building is very complex. You can limit the app to an MVP if you need a lower estimate, or adjust features to start with just the basics. You can start with a simpler version of the app and make it more complex over time. This, of course, applies to software estimates as well.
What else goes into software development estimates?
A big block of estimates won’t always be just about code. Software development projects also involve project managers, testers and tech leads. Their work is also quantified and added to the estimates you receive.
Testing and bugfixing is a key part of building an app - it’s in bad taste to release something that doesn’t even work. And bugs are unpredictable. You can find the weirdest edge cases and give developers a big headache. When estimating an entire project, it’s essential to account for this part of the work as well. An estimate that excludes bugfixing leaves room for extra costs. So you’re probably paying for it anyway, but it’s best you know about it beforehand.
Project management is also a big part of software development, and the work PMs do is also included in estimates. They help organize tasks and meetings among developers or them and the app stakeholders. They don’t do the heavy lifting but they’re the glue that holds everything together.
Lastly, in our case, we also account for technical supervision. If we assign junior or mid-level developers, they’ll need a senior to oversee their work. It’s a great way for them to learn and to ensure the development process goes smoothly. It’s a tiny part of the estimate overall.
When you get the entire estimate number, you’ll know it doesn’t only include development work but all the little things that go into a software project. It makes the estimate more accurate and you won’t get many financial surprises during development.
Overall, software development estimates are a great way to predict how much a project will cost, how long it’ll take to complete, and whether or not you should embark in that process at all. Estimates shouldn’t be scary, but seeing big numbers might make them feel that way. If you’re in such a situation, talk to your software partners and ask them to explain exactly what the estimates involve.
If you’re embarking on a software development project and need estimates, let’s talk.