Over the past 6 years, Applico has built over 300 apps, and I’ve learned a lot about how to find the perfect app developer at the right price to get the job done in a timely manner. The primary driver of price is the cost of labor. For example, hiring offshore developers will be exponentially cheaper than hiring domestic developers, and an established firm will cost you more than a freelance hire.
Because there’s so many different variables, the price for a mobile app could range anywhere from $5,000 to $500,000; however, the price range will typically be somewhere between $100,000 and $300,000, with the entire development process taking 12-20 weeks. It’s obviously a hefty investment, both in time and money, so here is everything you need to know about the costs and timing for creating an app to get you the biggest bang for your buck.
In order to optimize your financial resources, here are the five key factors to consider when determining the appropriate mobile app development budget.
1) Your Priorities
It’s important that you be honest with yourself and your priorities. A golden rule of software development lies in the graphic below. You can pick any two attributes of your project, but you can’t have all three. Finding a development firm to make a great quality app very quickly and with an inexpensive budget is a red flag. You get what you pay for. If it seems to be good to be true…it probably is.
2) In-house vs Offshore
You are hiring a developer because they know how to execute and execute well. The only way they will build a core competency in programming software is if they have resources in-house. Unfortunately, it’s pretty easy for a firm to say “Of course! All of our developers are in-house,” when that’s often not the case.
Ask who the specific team members would be on the project, and ask to see what past apps they have worked on. You can also ask to talk to the resources and evaluate their communication skills. Although offshore development is significantly cheaper, hiring in-house engineers will make a big difference during your design phase; it will save you time and money down the road by bringing technical knowledge into the product planning.
A hybrid approach can work in situations where competent, on-shore engineering teams can work on the most important parts of a project while using cheaper, third party resources for the more menial tasks. However, without a true engineering team on-shore, this approach won’t work.Technical project or product managers alone aren’t sufficient.
3) Waterfall vs Agile
Waterfall development and agile development are the two most prominent methods to app development, but they’re vastly different. Waterfall development depends on having a clear documentation process laid out up-front, before the development process begins, and closely following that process. With agile development, there’s hardly any documentation before starting development. Developers works in 1- or 2-week sprints and figure out code as they go.
With waterfall development, there’s little flexibility, but you know exactly what you’re getting and how much it will cost. With meticulous record-keeping of a structured project, it’s easier to improve the process in the future. However, waterfall development can be difficult since it’s difficult to know every single detail and nuance from the very beginning, especially for a larger or more complex project. The timeline here will inevitably be longer.
In general, the industry is moving toward agile development. The lack of initial structure can often make the project more expensive than initially planned, but it allows for far more flexibility to adjust the product and account for feedback and changes. With agile development, you can have incremental releases at the end of each development cycle, so you’re more likely to reach your launch date and get to the market faster.
4) Fixed Fee vs Time and Materials
In a waterfall structure, you could set up a fixed fee for the work. You could spend X on design & documentation and then receive a fixed fee to develop your app for Y. However, it is inevitable that you are going to want to change something. Enter Work Orders.
In an agile or iterative structure, you can be billed for the amount of work effort performed. The firm will provide you an estimate of the rates that you’ll be billed. If billed hourly, check to see if they have time tracking software and and if you’ll have access to review it. And if it comes to an invoice dispute, see if there is a process in place to handle the situation.
While a fixed fee structure may seem to limit your risk the most, I would suggest caution. Your “locked in” price can be deceiving when you account for the total cost including future work orders.The ultimate goal is to get a great product that will accomplish your business objective. The quality and caliber of developer who works in a fixed fee structure can sometimes be compromised.
5) Estimate Creation
Who made the estimate? Does that person have a thorough understanding of what you are trying to make? Have you talked to that person? Have they worked on similar apps and used similar technologies? If the technologies are foreign to them, it is easy for them to misestimate. Consider how actual costs have compare to initial estimates historically so you can better avoid any misestimation.
Paying close attention to these 5 factors will help you get a better idea of what your app development budget will look like. The right app development won’t be cheap, but it’ll be well worth the cost.
The Time Frame
It will usually take 3 to 4 months to successfully develop an app that is ready for public release. When I say develop, I mean the engineering part of the process. This timeframe doesn’t include the product definition or design stages of building a mobile app.
Factors such as the composition of your development team and what development methodology you use will impact your timeframe. A key assumption I’m making is that your mobile app will be integrated with a back end server through APIs. The APIs and infrastructure could already exist or could be built in parallel.
Generally, if you are building out both a back end and the front end (consumer part of the app) at the same time, you want your back end team to start first. By giving them a head start, they can firm up their endpoints and APIs in advance of the front end team starting development.
Back end engineering typically consists of the following activities:
- Data storage: the building blocks of any native app’s back end
- User management: creating user accounts, managing authentication, security and access control
- Server-side logic: how to handle requests from the app’s front end
- Data integration: allowing users to access information from and publish data to third party sources, including social networks
- Push: maintaining engagement with users continuously
- Versioning: make version 2 live…without breaking version 1
Front end engineering typically consists of the following activities:
- Front end logic: detailing what activities are handled by code locally and not on the back end
- Caching: storing data locally to speed load time
- Synchronization: enable off-life usage and resolve data conflicts
- Wireframing: blueprint for user interface and experience
- UI design: pixel perfect mock-ups of user interface
- UI development: translating mock-ups into functioning user interface code
- UI polish: the differentiating “last mile” of the user interface, where an app truly stands out from the crowd
With iterative software development and an appropriately prioritized minimal viable product, 3 to 4 months should provide sufficient time to release a product you’re proud of to your community and network.
A 3 to 4 month timeline is appealing, but not easy to pull off. Here are a few key assumptions that you need to fulfill:
Putting together a capable team
You need the right team in place for mobile app development to go smoothly. The product manager and designer(s) should be creating documentation before development begins. This is not included in the 3-4 month development timeline mentioned above. The upfront design phase could vary from a few weeks to a few months depending upon your preference of development process. You also need your product manager to be working out of a tool like Pivotal, creating specificuser stories that your developers will be programming. User stories are usually templated as follows, “As a <type of user>, I want <some goal> so that <some reason>.”
If you are developing the front end of your mobile app along with the back end infrastructure, it’s important that you prioritize what functionality you build. Give your back end engineer a head start so that your front end engineer can build functional code. If the back end isn’t well defined and isn’t functional, it’ll render the efforts of your front end engineer less efficient.
Limit external dependencies
Integrating with third-party technology are always an unknown in any mobile app development cycle. Documentation will tell you how things should work; however, very often technology products don’t function to spec.
You can write tester code to make calls into the 3rd party endpoints and see what data you receive. This type of testing can will give you a better understanding of whether or not the technology works properly. But, there will always be unknowns that crop out of nowhere when integrating 3rd party technologies into your app and/or back end infrastructure. Generally, try and tackle the hard and unknown tasks first.