We code software that makes you more money...
Copyright © Appify WP · All Rights reserved · Email us: firstname.lastname@example.org
Today I want to share with you the way in which software development companies estimate the prices for their projects. It's the very process we're using here, at Appify WP, and it's the process used by several other companies in the industry.
But what is an estimate, in the first place? In the software development world, an estimate is an approximate calculation of the value of a software project, which doesn't exist yet. Here's a real-life estimation: we need approximately two months to develop a fully customizable CRM (Customer Relationship Management system) for your company, and it will cost you about $50,000.
How does software estimation work
As you can see in the example above, when it comes to software applications, time and costs are the key factors that need to be estimated. Sometimes it is also important to discuss application size and speed, though, especially when they are critical.
Let's use the development of a mobile application as an example. The end product may be fully functional and affordable, but if its installation size is 1 GB, it misses the point completely, unless it is a high-end game, which is only supposed to run on high end phones that have plenty of storage space. The same thing happens if speed is taken out of the equation; you may end up having an application that can only run on certain systems, or requires the client or its end users to purchase new, expensive hardware.
Of course, the estimations are mainly based on clients' requirements and expectations. They need an application which is supposed to increase their productivity, for example, and once that the software developers have gathered the initial requirements, they should be able to figure out the estimated amount of time that is needed to complete the project, as well as the associated cost.
Coming up with an accurate estimate at the initial stage of the project is vital. Very few business owners have unlimited budgets, and even those that do, don't want to waste their money. Not only that, but clients should be offered the means to verify that project costs and time frames aren't artificially inflated.
Those are difficult tasks, and there are only a few accurate methods that can help solve these problems. More often than not, projects are delivered later than expected and cost more than it was initially agreed upon. And to make things even worse, some companies deliver poor quality applications, which have bugs and sometimes even include less features than expected.
But why is it so difficult to estimate the amount of needed work? The main part of the problem is... us, humans! Productivity can vary a lot from one employee to the other.
Also, some clients request new sets of features as they get ideas from other people who see early versions of the project, and this forces developers to work more.
Other clients don't understand how software development works, so they try to impose tight deadlines. Agencies who try to get as many clients as possible will often times promise things they are unable to achieve, with tight deadlines being one of their main selling points.
However, many of them do so by sacrificing quality control. As a direct consequence, the client ends up having a product that doesn't behave as expected. Sure, clients would want to have their projects ready within days, but this is not a realistic expectation.
It is much easier to estimate a software development project that is broken down into milestones. Here are a few examples:
- The first version of the project will be functional by August 15. Only 50% of the requested features will be implemented.
- Search query execution speed will be increased by 200% by September 15.
- A fully functional, beta version of the project will be delivered by November 10.
In the end, you shouldn't forget that an estimate is just an... estimate, and not a commitment. Things can (and probably will) change until the clients freezes the project requirements list. You shouldn't expect to get new project features for free; they will cost time and probably extra money as well.