No, you don’t want an app

Jos Visser
8 min readNov 19, 2022

Here’s a question I regularly get: “I have this business idea <explains> and I want an app to go with that. Can you develop that for me?” Because, surely, how hard can that be? There are thousands of apps already, so developing an app cannot be that hard. Plus everyone keeps reading about how coding is fun and easy. Even kids can do it.

People ask me this because I am probably one of the few software engineers they know. Plus I am friendly and helpful (at least to my friends). Spending a few hours getting an app together for them doesn’t seem too much to ask for, does it?

This conversation never ends well for them when I explain that developing a decent app costs tens (if not hundreds) of thousands of dollars and months of work. Usually by more than one person.

Here’s a side story: The Iowa Democratic Party had an app developed to collect the results of the primary election in 2020. According to campaign finance reports they spent about $64,000 on it. On the night it was supposed to go live, the one night every two years that this app actually has to work, it crashed hopelessly. Lots of reasons why, but they all go to show that programming is hard and that building successful working apps is even harder. And it is apparently not cheap either.

I get it why people wants apps for their business. Apps are cool. Apps are easy to use. Apps run on your phone so you always have them with you. Apps power the modern digital economy. People expect an app. It’s hard to imagine a successful business without an app.

But here’s the thing: The apps that most people use on a daily basis, and which set their expectations for all apps they use, are super slick affairs that have been developed by armies of people (not just software engineers) at considerable cost, typically over years of ongoing development.

Here’s a tweet (for as long as that works :-) about the Uber app:

I love the Uber app; it’s great. But apparently it has two hundred people working on it. Full time. Imagine each of these cost the company $250,000 per year in total cost of employment (a conservative estimate), that means Uber pays $50 million per year for their app. Not surprising then that he app is great.

One of the things to note here is that the Uber app probably has a hundred features whereas I as a rider use only two of them. The other 98 features are for Uber drivers and for things that I never use such as splitting the bill, informing other people about my ride, getting an invoice, canceling a ride, and Uber pool. Apps are like icebergs: The vast majority of the mass sits below the waterline where most people don’t see it. The app developer however has to develop and maintain that part too. You might have to spend a lot of money for pieces of app that not many people use but without which your app would be considered substandard.

Now my friends probably don’t need apps that are as awesome as Uber’s. They probably want an app that does only 1% of what the Uber app does. But that would still cost $500k per year. Now imagine you use developers that cost half of what Uber’s developers cost and they are twice as good (bit of a stretch to imagine). That’s still $125k per year.

I don’t fault my friends for asking me for help developing their app. It is a logical question to ask. They need an app; I am a software engineer; building apps is probably not that hard (they think). So I can probably help them. I totally get it.

Changing tracks for a second: If you go and look at a skyscraper being built you immediately understand two things:

  1. This is difficult.
  2. This is expensive.

Apparently building a skyscraper in New York costs $15 million per floor. Not many people will be surprised by that. It’s a lot of work. Plus you need detailed plans, including the exact sizes of everything and the physics and math to show that the thing won’t fall over. Skyscraper development is difficult and expensive. Even laypeople will agree with that.

Compared to building skyscrapers, the cost and complexity of app development is impossible to estimate for the layperson. Everybody who has ever assembled an Ikea cabinet knows that building solid stuff is hard. But nobody who has ever created a spreadsheet or used an app has any idea how much time and effort it took to get that software together. It’s just not obvious. No concrete to pour, no piles to drive, no cranes to rent. It’s all just zeros and ones in the right order. Sure, probably a lot of zeros and ones, but really how hard can it be to get all the zeros and ones you need and put them in the right order?

And to make matters worse, you probably need to develop two apps: One for the iPhone and one for Android phones. This won’t probably cost twice as much as developing one app, because if you have your stuff together you can reuse code from one app in the other, but my guess is that it is at least 1.3–1.5 times as expensive as developing a single platform app. There are development tools that promise that you can write an app which works on both platforms (like Xamarin), but I do not have great experiences with these tools. But then again, I am not a hardcore mobile app developer…

After I explain the economics of the situation, my friends typically come up with alternative strategies.

Strategy 1: Can’t we get the app developed in <low cost country>?

Yes we can. It’s been done and people are doing it today. Because of the lower salaries in <low cost country> the immediate costs might seem to be lower. Unfortunately there are additional problems to solve because outsourcing is hard. Lots of reasons why, but here’s the short story:

  1. The people you have working for you are far away, from a different culture, and communication is hard. You really need to do an excellent job writing down the requirements and then you need to have an equally excellent testing operation to figure out that what you get is what you wanted/need. This takes time and is costly. Because of these additional problems the probability of failure is greater, which costs money to address.
  2. The outsourced people do typically not work for you. They might be freelancers. They might be an outsourcing company. This comes with agency costs. It might also lead to inflexibility and extra costs because if they are working for a fixed price, they will guard any changes in the requirements like hawks and they are always ready to charge more for extra features or changes to the specifications. If they are not working for a fixed price they are motivated to keep working on this as long as possible in order to generate more billable hours. This needs to be managed well. When building a house you typically want an independent architect or building consultant overseeing the construction. When building an app you want a similar kind of IT person overseeing the development. This costs money too.
  3. The quality of the work and of the people working on it can be a problem, which can lead to false starts and quality problems that are costly to address after the fact.

To be fair, most of these problems also occur when working with local developers or a local IT services company, but all of these problems are harder (and therefore more costly) to deal with over big language, geographic, timezone, and cultural distances.

Strategy 2: Can’t we get a cheap student from <prestigious university> to code the app. They are good (because: <prestigious university>) and they are cheap (because: student).

This is an understandable thought. But, like most things that seem obvious, it doesn’t work. Ask yourself this: Would you have your house built entirely by apprentices from your local community college or vocational school? Sure they might be useful for odd jobs here and there, but would you have them do the structural design? Get the permits? Ensure your house meets the building code? Take care of the electricity and the gas? Place the supporting walls and the roof?

Software development works just like building a house: It takes a lot of experience to do it well. It doesn’t look as dramatic because people don’t get killed when the software equivalent of the roof caves in, but experience in how to do things and how to do them right matters. And experience costs money. I have met lots of super bright students from prestigious universities and some of them could code like daemons. But coding is to software development what carpentry and plumbing are to building a skyscraper: It needs lots of it and it better be good, but all things considered these are just two of the umpteen things which need to be done right in order to finish the project successfully and on time/budget.

Strategy 3: Can’t we just find some good developers and pay them pittance and a lot of equity in our new business? It’s going to be HUUUGE, so that will work out very well for them.

This strategy runs into economic realities. Developers can earn good basic salaries and get bonuses and loads of equity on top of that. Almost no money plus more equity in a starting business is just not an attractive deal for most people. Especially not for good people. It might work and a lot of it depends on how visionary and charismatic you are as an entrepreneur, but I have rarely seen this work. The risk would just be too high for most people.

So what should the budding entrepreneur do?

First of all, please internalize the message the app development is very expensive and needs a lot of attention. If this article didn’t convince you, read this for additional information.

In some cases, you really don’t need an app. I advised one friend to support her coaching business not through a custom app but through all the features that Google Workspace has to offer. Spend a few hundred dollars a year and you get tons of extremely good features that can be used to support your business, including customer interaction. Of course this totally depends on your business and your needs.

If what you need is really, really, simple, you might want to look at bubble.io, kissflow.com, or similar app development platforms. Disclaimer: I have never used any of these and I am generally not optimistic about what these sort of tools can deliver. But, maybe they are awesome.

Then finally, if you really need a complex app: Buckle up for the ride. Budget enough money and time. Treat it seriously. Get the right people. If the quality of your app is a critical success factor for your business, you will have to spend critical amounts of money, time, and attention on it. It sucks, and it might seem a big barrier to you launching your business, but if app development were cheap and easy, where would people like me find the money to buy yachts and planes? :-)

--

--

Jos Visser

"Would you want to have kids growing up into what's left of this? She shook her head; she said "Can't you see? The world is you. The world is me."