As a CTO of a small software development company building custom IoT solutions, I help my teammates assess application development costs when preparing project estimates for our prospects.
Since we primarily work with startups, our clients are very sensitive about their budgets.
Ideally, you start every software development project with a discovery phase and dive into a product's functional and non-functional requirements early on. As a result, you can define the product's feature set, from functional prototypes to an MVP to a full-fledged product, and come up with a realistic, accurate estimate.
Ideally — but that's not the case with startups operating on a shoestring since discovery also costs money.*
Some of our clients may also have unrealistic expectations regarding the price of developing a technology solution. We’ve all heard jokes about startups looking to build a Facebook clone for $10k — and the saddest part is, some folks do think that’s possible.
Therefore, I was toying with the idea of minimizing the assessment work on our side while giving clients a ballpark price for bringing their technology idea to life before they even contact my team. A reality check, if you wish. 🙂
That's how the software cost calculator concept formed in my head.
A geek at heart and a mobile developer by profession, I decided to kill two birds with one stone. Besides the goals mentioned above, I also put my knowledge of Flutter to the test. I developed a cross-platform software cost calculator application running seamlessly on iOS and Android devices and in browsers without resorting to JavaScript, which, in its pure form, makes me cringe.
Flutter proved to be stable and efficient enough for that task. I’m even thinking of building a physical calculator based on a single-board computer as a Christmas gift to our loyal customers. Besides, fellow developers can use the calculator to assess the price of developing a particular technology solution (or a piece thereof!) outside their expertise.
Anyway, in this article, I detail my experience creating the solution — and the challenges I've encountered on the way.
So here we go.
Ok, ok, I know what you're thinking.
*Engineering a software solution, whether a small online store or a complete
back-office system for orchestrating cryotherapy units , is a long windy road with hundreds of possible turns and pitfalls to avoid.*
And unless you've prepared an exhaustive software requirements specification (SRS) document listing the product's feature set, UI/UX requirements, optimum technology stack, target audience, compliance provisions, and a dozen other issues, it's impossible to put a price tag on your application.
These were exactly my concerns. So I decided to check how other software engineers approached the estimate accuracy problem before me.
Having tested multiple software cost calculators, I pinpointed several issues to remember when creating my solution:
The competitors’ calculators completely ignore the needs of a non-technical user. For example, how on earth am I supposed to know what programming languages my app will use if I’m new to programming? To navigate this issue, I made sure to write a detailed guide on how to use my calculator on the accompanying landing page.
Some solutions estimate the price of setting up a software team rather than building a software product. Unless you’ve worked with software engineering companies before or run one yourself, you probably don’t know the innards of software development, including the optimum composition of a software team and the roles within it. That’s why I focused on software features rather than developer responsibilities and implemented the blended rate modifier to simplify the calculations.
Most calculators only give an estimate in exchange for a business email address. I’m a software engineer, not a marketer. 🙂 I want to solve companies’ problems instead of bombarding them with emails promoting our services; should they need help, they’ll write to us anyway! That’s why my calculator does not collect any data — and does not require you to fill out any forms before getting your estimate. We only know that someone has landed on the software cost calculator landing page, ticked all the boxes, and received an estimate.
My calculator considers an application's target platform and expected features to produce accurate software cost estimates. Next, various modifiers are implemented to reduce or increase the price of custom software based on the project stage and industry-specific implications. In the final step, software development efforts, estimated in person-hours, are multiplied by the blended IT team rate.
To devise the assessment mechanism, I studied over 20 projects my company completed and a dozen projects from our partners’ portfolios. These projects ranged in size and complexity, from event-booking applications to custom smart home solutions. Some technologies and solutions, such as artificial intelligence and AR/VR, are deliberately missing from the calculator because I seldom build such apps. Thus, the calculator mirrors my company’s core expertise, and I can vouch for the accuracy of its estimates.
Modifiers. Industries and software features have difficulty multipliers. For example, I increased the hour count by 20% for healthcare IT projects to address possible development issues, such as integrations with existing medical systems, compliance, etc. To calculate complexity modifiers, I divided the sum of the software features by the total hour count. A constant modifier adds project management and quality assurance numbers to the estimate. When an app's features and intended platforms have been assessed, the number is multiplied by 1.3, increasing the hour count by 30%. Lastly, there is the project stage modifier, which evaluates the cost of software development based on the product's readiness. If a user only wants to design the application's interface, the final estimate is multiplied by 0.16. For functional prototypes, the modifier is 0.25. The minimum viable product (MVP) version of a software solution containing just enough features to go to market has a modifier of 0.5-0.75. Finally, the development efforts in person-hours are multiplied by 1 for market-ready products.
Developer hourly rates. The price of building a custom software solution depends on who's making it. Software engineer hourly rates differ greatly depending on a person's specialization, experience, and country of residence. According to
Below you will find a formula that sums up the factors mentioned above to produce an estimate:
If a feature is not mobile-related and does not require implementation on multiple platforms, it will be marked as featurePrice.
avgFeatureComplexityMult increases the estimate based on a project’s tech stack and target industry.
productStageMultiplier denotes the desired stage of the product — i.e., design assents, a prototype, MVP, or market-ready solution.
The PM/QA hours are mandatory for all projects unless the client handles the management and quality assurance part. In this case, however, no developer can guarantee that bugs will not manifest themselves in the code. A little clarification here: some companies expect their vendor to produce bug-free code on the first try and genuinely wonder why they need quality assurance.
Mature clients, on the contrary, have adequate expectations regarding the test code quality and early invest in QA to avoid dealing with bugs post-launch.
The question is, how accurate are these estimates?
Considering my experience as a CTO and senior Android developer, the software cost calculator delivers on-point estimates for all simple projects and projects of medium complexity.
For more challenging endeavors involving innovative technologies, such as the Internet of Things, the calculator may lower the final estimate by 10-13%. In such cases, we revise the price after deciding on the solution's tech stack and feature set. Revisions are also needed if your IT system incorporates features and technologies omitted from the calculator, such as artificial intelligence and integrations with third-party services.
A website visitor is required to fill in the information about the following characteristics of an application:
Hooray, we made it!
Now that the user has a ballpark estimate, they may adjust it by manually deleting or adding software features, specifying the product stage, etc.
While writing this article, I also filled out the form, selecting the characteristics of a custom HIPAA-compliant medical IoT product ready to be released to the market. The calculator gave me an estimate of 3390.4 person-hours, or $140,992 if multiplied by the blended team rate ($41.6).
Let's increase the estimate by 10%, allowing for possible discrepancies rooted in the project's type (IoT) and target industry (healthcare), and we'll get $150,000.
The cryo chamber software suite I referenced at the very beginning of the article helps our client manage connected cryo units installed at dozens of fitness centers and spa salons across the USA. While the project is still in development and
Overall, I’m pleased with the result: I have successfully tested Flutter, reassuring myself of its robust cross-platform development capabilities, minimized the assessment work on my team’s part, and allowed our prospects to get realistic ballpark estimates of their software projects before reaching out to a software engineering company.
But since I may have all sorts of biases — after all, it’s me who wrote the code! — I encourage you to give the calculator a go and share your thoughts regarding its functionality and accuracy!
So, hit the comments section below! Your feedback is very much appreciated!