November 8, 2018
Software Development Costs: A guide for the Perplexed
Here’s the problem: you’re a small business or a new startup. You know you need custom software to make your business run, or at least run better. Your first thought is “Just how much custom software development costs?”
The real answer is “No one can say for certain.”
Now, don’t leave. No one can say for certain because it’s a little like saying you want to build a house: until we know how big, how many rooms, bathrooms, types of cabinets, flooring and appliances are needed, we can’t tell you what it will cost.
So, while we can’t say for certain, we can make some informed estimates, and the more information we have, the better those estimates will be.
How Big is the Project?
Just as with the metaphor of building a house, if you want to know what custom software development costs, you have to know just how large and complex you need the house to be. Our experience is that software projects fall — very roughly — into three groups.
Small Scale Something like a simple mobile application, a business web application, a proof of concept for a brand new idea.
Medium scale A more complicated mobile application with a management dashboard, an application with some simple external interface, .
Large scale Complex mobile applications, larger business applications with lots of data from multiple sources.
(Of course, there are also huge applications — and we’d love to talk to you about those too, but those require much more analysis.)
At Flint Hills Group, our experience is that small projects can range up to $50,000; medium scale projects up to $75,000; and large scale projects from $150,000 to $250,000. These are just rough numbers to use when drawing up a budget.
Questions, questions, questions.
To help prospective customers, Flint Hills Group provides a free estimate for software development costs as part of our first contact. The customer answers around a dozen questions about the scale and scope of the project, and then discusses the project with one of our senior software development expert consultants in a free half-hour call. Some of the questions include:
- What environment will the application use? For example, is the application purely mobile? Purely a web application? Both? Possibly an embedded application that has little or no human interaction, as with an Internet of Things application, or a native desktop application?
- Do you need to use any special services, like the camera, GPS, or motion sensors in a phone? Do you use information with real-time constraints, like stock market trading data? Do you need to process very large amounts of data, a so-called Big Data application?
- How complicated is the user experience? Is it a mobile application with just a few screens, or a simple web application? Are there long complicated interactions with the system, like a logistics support or manufacturing workflow application?
- How complicated is the actual computation involved? Does the application require mathematical modeling, artificial intelligence or machine learning, or operating as a distributed system with any nodes as would most Internet of Things applications?
The answers to these questions — starting from a simple questionnaire, and refined in that initial phone call — allow our consultants to apply our own costing model to make realistic estimates of the actual software development costs.
Estimating software development costs is good; managing costs is better
The best-laid schemes o’ mice an’ men often go awry
Still, estimating software development costs is not an exact science; the estimate can go wrong for a thousand reasons, most often when the scope of the project turns out to be more than originally expected.
Traditional software development had little protection against this. Those additional costs were just part of the risk of development.
That might be acceptable if the customer is the Department of Defense or a Fortune 500 corporation, but small companies can’t afford that risk. The answer is to turn away from traditional development and look to new, innovative approaches.
A better approach
The better approach, used at Flint Hills Group, is called agile development. There are many variants of agile development around, but in general agile development is characterized by a few common threads:
- Close partnership with the customer from day one through the end of the project;
- Iterative development, delivering a partial system early and extending it often, usually every two to four weeks;
- Requirements stated in the customer’s terms, and acceptance testing during development by the customer’s own team.
- Regular review of the system in its current state, and of the remaining requirements, on the basis of experience with the current system and as the requirements become more clear.
The result of taking an agile approach is that requirements are refined by experience, new ideas are incorporated immediately, and projected software development costs are always being re-evaluated. The goal is to delivery quality software with no surprises.
Agile development is particularly important in custom software development for startups and small or medium sized customers. The delivery of partial — but functioning — systems early and often means that requirements are being examined, tested, and inevitably modified early. Revised estimates of software development costs are made regularly, while it’s still time to modify the scope of the project. What you’re doing is really making a series of successive approximations of the ideal system, with the opportunity to decide when the system is “good enough”.
A Modern Approach to Software Development Costs
A good process for early estimates and an agile development method of building small pieces of software at a time mitigates risk and accounts for unknowns early on. Every software project has surprises. We recommend dealing with surprises as early as possible and being transparent with customers. When you walk into your new home, you are excited that you finally have what you envisioned. You will appreciate the builder who addressed issues quickly and suggested innovative ways to contain costs. Just as you would choose an experienced builder to construct your home, choose a trusted software company to build your solutions.
Ready to start on your own custom software development project? Take our quiz, speak to one of our experts and get a free estimate!
Charlie Martin
Consulting Software Engineer
Charlie Martin is a consulting software engineer and writer in Erie, Colorado, with interests in systems architecture, cloud computing, distributed systems in general and innovative applications of blockchains in particular. He is available for consulting through Flint Hills Group.
Charlie Martin
Consulting Software Engineer
Charlie Martin is a consulting software engineer and writer in Erie, Colorado, with interests in systems architecture, cloud computing, distributed systems in general and innovative applications of blockchains in particular. He is available for consulting through Flint Hills Group.