Although all apps look alike in terms of running on multiple platforms, there is a significant difference in the scale of apps, their use cases etc. The scale of an app broadly defines the development time and the cost involved, whereas the specific features involved further define the timeline.

Following is a brief description of what are the factors involved in App development and how they affect project duration and cost

Scale of the app

One common app misconception in beginners is – a specific feature, say, push notification, will always take similar time in development and hence, should always be provided at fixed time and cost.

The difference arises from the scale of the app. There are broadly three scales for mobile apps

1. Personal / Hobby Apps

These are apps made for personal / group use and mostly involves a personal idea which you want to share. Examples are – My Travel Diary, My Joke Book, Personal Birthday Calendar etc. These are the most recent ones

These apps are limited to very small number of people. The advantage is, these apps can be made in a super agile manner i.e. app can be developed as quick as possible and provided to end user. End-users then provide feedback, which drives modification and repeat. This way, the requirements of end-users are fulfilled by their own testing.

Even if these apps involve a server and back-end code, everything is (and is supposed to be) minimally maintained, because if any problem arises, that will remain limited in that group of people. The problem can be quickly identified and resolved.

All these features of personal apps reduce the development time and cost drastically because

  • Back-end schema/architecture need not be 100% defined before starting and even after release, as change can be easily made
  • No full-scale testing is required because end-users are very small in number and themselves act as testers
  • No separate development and production server and databases required
  • No regular backups etc required
  • Testing and development remains limited to the type of devices that group has. E.g. If all of them have iPhone, no need to develop the app in android
  • Testing includes most general cases of usage e.g. internet is always available, app is allowed all permissions required to work properly etc.
  • A big difference arises because of the group association with the app. Even if the app shows any error, these users will not throw the app away. The app is specifically made for them and hence they will provide feedback, and wait for the resolution. This gives a huge relief on the app maintenance side.

2. Intermediate Level Apps

These are apps which have a larger scale than personal apps, few hundreds to few thousand users. These are mostly made for small businesses, startups or even for new growing ideas. The biggest difference from personal app is that the user group is not defined. e.g. A quiz app made for school kids. Although you know the demographics and their requirement, you don’t exactly know what devices they have, what kind of internet connection they have etc. These apps are mostly free on app stores (or very small price), but intended to gain lot of users. Plus these app do have competitors.

In this case, most app requirements are defined before starting. The pre-release development of the app mostly goes in agile manner, same way as personal apps. The difference comes in during-release and post-release scenarios. The app requires thorough testing and post-release maintenance dependent on user’s feedback.

The differences form personal apps are

  • Back-end schema/architecture is mostly defined when starting, but can be changed during development
  • Full-scale testing is required because end-users are very decent in number. Although, an alpha and beta testing can still be avoided.
  • No separate development and production server and databases required
  • Backups are taken once in a while
  • Multiple device scenarios are considered during testing, at least covering >75% of the market.
  • Testing includes more number of scenarios compared to personal apps e.g. internet is not available, app is denied permissions etc.
  • A good feedback system is required to capture any errors the users are facing. This results in faster resolution of bugs.

For these reasons, intermediate apps take 2-3 times the development time and cost, compared to a personal app.

3. Enterprise level apps

Note: These are not ‘Enterprise’ apps, these are ‘Enterprise Level’ apps. In other words, a big Enterprise can also have a personal app, or an intermediate app.

Enterprise level apps are the ones where your whole business model stands on the app e.g. Twitter, Tinder etc. The user number goes from few thousands to even millions. There is a huge competition when you are aiming that big, plus user retention is a huge issue.

Enterprise level apps generally have

  • Back-end schema/architecture 100% defined when starting. Any change during development, or post release goes through a full series of testing
  • Rigorous full-scale testing is required because end-users are very large in number. Plus, alpha, beta and A/B testing are done.
  • Separate development and production server and databases required. Once a version is released, all further development or bug fixes go on the development server, fully tested and then released on production server
  • Regular data backups are taken. A backup production server is also considered in some cases, where app outage means serious business loss
  • Multiple device scenarios are considered during testing, at least covering >80-90% of the market. A dedicated group of testers are required for this
  • Testing includes almost all scenarios compared to personal/intermediate apps e.g. what if a call comes in when using some feature of the app, what if internet goes away in the middle of an action, what if phone turns off in the middle of some action etc.
  • A good feedback system is required to capture any errors the users are facing. This results in faster resolution of bugs.
  • These apps sometimes push the limits of features provided by the devices, servers etc. Hence keeping in loop all concerned technologies’ support teams leads to quicker resolution of mega problems like server crashing

For these reasons, enterprise level apps take 2-3 times the development time and cost, compared to an intermediate app.