Companies from Fortune 500-size to startups use a mobile app to target customers, streamline their processes, provide a service or, increasingly, as the backbone of their entire business. While there is currently a strong push for mobile-first (or even mobile-only) within the business ecosystem, there are a few things to consider before hiring a mobile app developer or writing the check.

Here are five things to consider before kicking off any mobile app project:

1. Identify who will be using your mobile app

Is this app internally-facing or external (meaning customers will see it)? Who are the people using the app and what are the demographics? Who will serve as the admin who can add/delete users and data? Without drilling closely into this question, you might waste money building for whom you think is your user and not who your real target audience is. Don’t fall victim to this – early in the brainstorming process, get all key stakeholders in a room for a discovery workshop to hash out requirements and agree on the direction.

2. Research your competition

If you are moving into a crowded space, building a matrix of your competitors can be very helpful in building an app of your own. Identify what you like and don’t like about their applications – and why. Read their customer reviews and find out how users feel about the apps and what they are lacking. Then, see if that is something you can capitalize on.

3. What problem does my mobile app solve?

Maybe you are building an extension of your e-commerce website on a mobile platform. Perhaps you want to take advantage of the features a smartphone provides like location/GPS, push notifications, and the built-in camera in a new way. But beware – if your app isn’t going to enhance your existing business or present a unique interaction with users, really take some time to consider the money and time you are about to spend.

4. Native or Hybrid?

For fast proofs-of-concept or simple data entry applications, a hybrid platform like PhoneGap or Ionic might be the right choice. This option lets a development team save time by writing only one codebase that works for both iOS and Android. However, if you’re envisioning a more complex app, consider spending the extra time for native development, meaning a different build for the different operating systems of iOS and Android. This allows the app to utilize the latest features of a native-only experience, such as Apple Pay, rich push notifications, Android Pay and TouchID. These all let the developer and client utilize the innovation happening in our pockets and purses. In general, native apps can be more stable and run more efficiently, and research shows are more accepted by users. However, the cost and time to market difference may be worth a discussion.

5. Plan for post-launch

Okay, you have a great mobile app idea and the plan is in place. What happens after it launches? How will you gather and respond to user feedback? Who will make changes for incremental releases – the original build team or someone in-house? Mobile operating systems and phone hardware are constantly changing, with new functionality added every few months. A mobile app is different in that, unlike a website, you can’t always make changes “on-the-fly”. Setting an update release schedule to add features, make changes and continually provides a reason for users and customers to regularly open your app again and again.