App cost factor 1 – front end or back end or both?
Consider an app like Uber. At the point where you open the app, it needs to be able to show you where the nearest taxis are in your area. There’s no way that this information can be contained on the phone as it’s constantly changing and needs to be continually updated.
So how do we get around this? As well as the app that you see on your phone, we also build a server in the background that you don’t see. This server contains all the information that is needed to run the system – the geo-locations of the of the taxis, the details of the users, the payment systems etc.
When you want to order a taxi, the app on your phone (the client) asks the server where the nearest taxi to you is, then displays that information on your phone. When you decide to book, it makes another call to the server and sends information about your destination, location and so on. Client and server communicate all the way until the transaction is finished and you’re dropped off at your final destination.
In the majority of modern smartphone apps, the app that you see on your phone, is only one part of a much larger system. In software development, this larger system is referred to as the ‘back end’ or the server while the app that you interact with a consumer, the ‘front end’ or the client.
One of the first things you’ll need to ask yourself when considering the price of your project is do you need to build a back end and if so, how complicated is it?
Stand alone apps.
Some apps don’t need to communicate with a server. All the information that you need to operate the app is contained locally on your phone . A lot of the apps that fall into this category are simple tools type apps (for example a mortgage calculator) and games.
When the iPhone launched in 2007 there were a lot of apps like this, but they have become less and less common. These days, even the most basic of apps have some dynamic data element to them.
Stand alone apps are generally much simpler to build and therefore less expensive than other types of apps, with one important exception. Fancy graphics and gaming elements are very labour intensive and will push up the price of your app considerably.
Apps with a “back end”
These days, most apps needs to take data from a server, manipulate it somehow, and then send it back again. This means that part of the project will involve building and setting up a back end – increasing the app cost.
This could be relatively simple, or very complex depending on the functionality you require – something we’ll explore in the next section.
App cost factor 2 – functionality
People often use the house analogy when talking about the price of software development. For example, you know that a house with 5 bedrooms, a pool and a snooker room is likely to cost more than a studio apartment to build.
The only problem with this analogy is that, while most people can grasp how the cost increases for building projects, it’s not always easy to understand how different pieces of functionality can add budget to your software project.
It’s out of the scope of this article to talk about every piece of functionality you might want to include and how it affects price. But we can list some of the common functionality we see in our work that is likely to add dollars onto your budget.
- Is your app open to everyone to use, or do users need to sign up for some kind of service and ‘log on’? If the answer is yes, you’ll need to set up and manage users on the server.
- Do you need to be able to set up user profiles within your app and if so do you need different levels of users with different roles (hierarchies)? If the answer is yes, you’ve just added another layer of complexity to your user management.
- Does your app need to just display data or does it need to manipulate it? A weather app will just take the data from the server and display it in front end, while a social media app will have to take a whole bunch of data and then manipulate it to serve you a custom front end experience. Clearly the second option is going to be more important than the first.
- Does your app need image manipulation? The fancier the image manipulation the more expensive the app will cost to build.
- Do you need to accept payments through the app? Can you take payments through the App Store or Google Play, or do you need to send users off to your website to take a payment then come back? If it’s the latter, then you’ll need to build that payment system. The former is likely to be cheaper, but then you’ll have to give Apple or Google a cut of your revenue.
- Do you need some kind of messaging system to allow your users to talk to each other? Is this a real time chat kind of experience where the conversation is live, or an email type of experience where you can wait to receive a reply? Generally speaking, chat functionality costs more to build.
Phew…we’ve covered a lot already and if you’re still reading, congratulations. This is not going to be one of those 500 word blog posts.
But we’re not there yet. There’s one other factor we need to consider and that’s who’s going to actually build the damn thing!
App cost factor 3 – What route do you want to go down?
Let’s return to our clichéd but somewhat useful analogy of house building. Even if you’re not a property developer, you’ll have a pretty good idea that going to a fancy architect to design and build you a house is going to work out more expensive than getting your local family builder to do it.
It’s the same in software development. It’s not just functionality that’s going to affect price. It’s also how you want to build it.
So let’s look at three common options. (Not an exhaustive list but we have to start somewhere).
1) Big fancy agency
Going to a big fancy digital agency is probably your most expensive option. Big agencies need to pay good talent well to retain them. They also have a bunch of people on the payroll who are not directly billable on client projects – for example, the sales guy, the ‘mobile evangelist’ and the pretty girl on reception. These people all have to be paid for, not to mention the plush offices and the pool tables.
So how do they do this? Generally in two ways. The first is that they hike up the day rates for their bread and butter staff. So a like for like developer will cost more per day at a big agency than a smaller one. The second it that they’ll try and sell you their expensive strategy staff on your project. They can bill higher for these guys and therefore make more money in absolute terms.
But although this is an expensive route (and will push up the cost of the app), in some ways is probably the ‘safest’. The guys that design and build your app will have done it maybe hundreds of times before. You’ll have access to some amazing talent and all your resources are in one place with one organisation responsible.
You’ll have the back up of a big team if anything goes wrong.
The thing to watch our for in using any kind of agency is what happens after they deliver you the app? But we’ll be covering that in some of our future blog posts.
2) Small agency
If you’re happy to slum it, a smaller agency may offer a good cost effective solution. Unlike their bigger fancier cousins, these guys don’t tend to have a lot of staff members who are not directly billable. Plus they tend to have cheaper offices, and less foosball tables. This is normally (but not always) reflected in the day rates they will charge and also the amount of ‘strategy’ and ‘extras’ they will try to add to your budget.
In a funny way, the advantages of going to a smaller agency are also the disadvantages. When you’re working with a leaner, smaller team, you’re likely to get a much more personal service as you’re not just one client on a huge roster. The disadvantage however, is that if something goes wrong, or there is a particular technical challenge, there’s less knowledge and capacity in the team to fix it.
We’ve seen projects run aground at both big and small agencies. Sometimes it just happens. However, while this can be devastating at a small agency, a big agency can often pick up the slack and deliver.
3) Internal team
This is normally the preferred option of the start up, and often makes sense at an established company. Hiring or resourcing an internal team to build your app means that you’ll keep the knowledge in house and you’ll be able to build a proper ecosystem around your product – something that’s going to be very important once it’s live in the market.
The main issue with this approach is hiring. In most global tech centres, engineering talent is hard to come by, expensive and fussy about what it works on. In short it’s a candidate’s market.
How many people you’ll need to hire will depend upon the complexity of your project. Sometimes you can get by with a single experienced developer, but for most projects you’ll need to hire a Chief Technical Officer (CTO) and then at least one developer to work along side him/her. You might need to hire a whole team, it really depends on the project.
If you’re a start up and you don’t already have a CTO you’re already missing a crucial team member. If you’re a big business, you might be able to resource the team from your existing talent pool, but remember one important thing.
You need a team that’s experienced in product development, not just maintaining existing systems.
Putting it all together
This is the bit you’ve been waiting for. The numbers.
Let’s imagine that you wanted to build Twitter. You’ll need to build two client apps, one on Android and one on iOS. You’ll need to build a back end, with user management, a messaging system, the ability to upload photos and videos and an algorithm to show the right content in the feed.
It’s what we would consider a medium sized project.
We would estimate this to be around 4-6 months work for an internal team of 4 people. Using Jason Calcanasis’s yardstick of $35,000 a month for a 4 person team plus desk space this comes out at $140K – $210K.
If you go to a big fancy agency, you’re unlikely to see much change from $500K – possibly a lot more. At a small agency, you might be able to bring the project home for $150K for a basic version.
Another way of putting it might be as follows:
Apps built at a big fancy agency – probably cost somewhere between $500K and $2M
Apps built at smaller agencies – probably cost between $50K and $250K
Hiring an internal team (outside of Silicon Valley) – $140K – $350K (4 months to 1year of a 3-4 person team)
Of course, you might be better off in the first instance just building a prototype. Something we’ve already covered in one of our previous posts.
Before you speak to an agency call us now
If you want to get a true return on your investment, you need to make your business a digital product business, not just turn out digital products.
We have the know-how, the process and the experience to get you there.
Get in touch at at +44 (0) 203 858 0085 or email@example.com