Creating a mobile app in some ways is just like creating any other product. We build products to provide solutions to problems that people have. Much of the success or failure of an app can be attributed to the difference between “doing things right” and “doing the right things” when designing and building the app.
Engineers are often good at “doing things right”. They have their technical toolbox and are familiar with how to apply their technical solutions to a variety of different situations. For a hands-on software engineer, it is easy to be overly focused on what the best practice is for using a particular programming language and SDK. But in addition to mastering the many low-level details of creating an app, it is important to step back, think strategically and look at the bigger picture.
This is where product managers and solution architects earn their keep. Good product managers and solution architects are (or at least they should be) good at “doing the right things”. This includes the ability to intimately understand the reasons why the app should be created, who it is being created for, and translate that understanding into a core set of features that should be created to maximize the value of the solution to the target user and other important stakeholders.
Know Your ‘Why’
It all starts with a reason why. You must intimately understand the reason why the app should be created. Start by stating the reason why you believe this app needs to be created.
Answer the following questions:
What problem will the app solve?
Who is your target user?
How will your target user benefit from the app?
How big is the target market for your app?
It is important to really think about this. There are many apps that have been created that probably should not have been created. It is important that you are honest with yourself about the viability of the app being a success. Creating an app is like creating a business. And just like a business it is easy to fall in love with your app idea. This can result in you being less objective than you need to be in order to make important decisions about your app.
Identify Your Target Users
It is essential that you identify who the target user(s) of your app are. This should be something that you already know from defining your reason ‘why’ you are creating the app.
After you know who your target user is, create an avatar of the user and be as specific as possible. An avatar is essentially the average of all of the users that desire to have your app. But it is important that you can think of the avatar as a specific individual that you can imaging being and imaging what that individual would want and need. Maybe one avatar won’t be enough. But at least start by creating one.
Answer these questions for your target user avatar:
What is the gender and age of the person?
What does this person like?
What does this person dislike?
What kind of job does the person have?
What does the person do for fun?
Why are they seeking an app like the one you are creating?
How will your app change their life?
Now give the avatar a name. You should use this name when referring to your avatar.
You can even draw a picture of your avatar or find a picture of someone that looks like you envision the user to be.
Having very specific details about your avatar will help a lot when you are designing your app. You will be able to more clearly make decisions regarding which app features are essential, which would be nice to have, or which are not needed.
As you design your app, you should constantly be asking yourself questions such as “What would AVATAR_NAME think about this feature?”
It is important that you create your app for a specific type of user. This will make a big difference in how you will market your app and what it will cost to market your app.
In general, the more broad your market is, the more expensive it is to advertise to that market with tools such as Adwords or Facebook Ads. So creating an app that is for everybody might not a good strategy unless you are trying to win the app lottery with an app like Instagram that does have a very broad target market and you are hoping for organic adoption via the app store. But with how crowded the app stores are today, that probably is not a good strategy if you want to have a cost-effective path to user acquisition down the road.
Conduct a Simple and Effective User Research
It is essential that you talk to the people that you identify to be your target market for your app. Ask the prospective users what their thoughts are regarding the problem or issue that your app is intended to solve and really listen to what they say. Ask them how they wish the problem or issue could be solved.
This is a core aspect of product development. So really listen to the words that the user chooses to describe the solution that they wish existed. It might not be what you expect. Don’t discount such responses. You should be very open-minded and willing to listen to as many target users as you can find.
Don’t just ask anyone what they think about the solution your app provides, because it might not be very beneficial unless the individual is part of your app’s target market. For example, if your app provides a solution to help class action lawsuit lawyers communicate with clients, then it wouldn’t be useful to go and ask your cousin Tim the professional football player what he thinks of the solution your app provides. Tim probably doesn’t know anything about being a lawyer and wouldn’t likely understand the benefit that you are trying to provide with your app.
As you talk with prospective users, compile a list of common words, phrases and concepts that the users tell you when asking them what they want to solve the problem or issue that they have. These words and phrases are invaluable because they describe the solution the users are seeking in the users own words. This is great for marketing and also helps with product development.
Evaluate the Core Features of Your App
After you have a clear understanding of why you need to build the app and whom you are building the app for, then you need to really think about how the app is going to be able to fulfill the promise that you want to make to your target user avatar. The ‘how’ that I am referring to here can be thought of as a set of features that will benefit the target user.
One effective way of doing this is to start by brainstorming as many possible features for your app as you can think of. Create a large set of different ways that your app could potentially solve the users problem. The more you can create, the more options you will have to choose from.
After you have numerous options to choose from then label the features as essential, desired, and optional. To do this, ask yourself “What would AVATAR_NAME think about the app having or not having this feature?”, where AVATAR_NAME is your avatars name that you previously came up with. This process should help you reduce the possible features down some.
For mobile apps, you also need to consider that the app should likely have a simple and intuitive feature set. If you try to put too many features into your app, then it likely will be difficult to use and as a result not get used.
It also is a smart idea to create what is called a minimum viable product that contains just the minimum core features that your target user need to gain the benefit that your app will provide. This is the shortest path to having a product that you can share with users and see how they react to it.
Create Your App Requirements Communication Strategy
If you want someone to help you build your app, then it is essential that you have a way to communicate what it is that you want your app to be able to do. There are many different ways that this can be accomplished. The important thing here is that the more effectively you can communicate your requirements, the more likely you will get an app built the way you want.
Some options for documenting requirements include:
- Hand drawn sketches
- Photoshop or Illustrator drawings
- Sketches and drawings organized into a storyboard showing app flow
- Screenshots of similar apps that have the desired look and user experience
- Narratives that describe how the app is used
- A list of features and for each feature the user/functional requirements that feature must provide
- Use case narratives that describe steps a user takes in the app to achieve a certain outcome
- If you slack off here and do not create an easily understandable set of requirements, then you probably will not get the app that you want. So take ownership of this task and do you best leveraging whichever tools you are most comfortable with.
Create a Simple App Creation Plan
Write a few paragraphs that summarize why you are creating the app, who the app is for, and what the most important features are for the app. This will help with managing the creation of the app from a big picture perspective.
Then create a simple document with a list of the features that you want created that reference the requirement documents that you previously created. The point here is to envision which features you want to see developed in the app and in which order. This will help later with deciding how to chunk-down the work into manageable actions that can be taken to create the app.
If you are developing the app yourself, then you can use this as the basis for a project plan so that you can regularly review the high level objectives for creating the app as well as references to specific details needed to implement features.
If you are hiring someone else to create the app for you, then you can use this simple app creation plan as a way to communicate your expectations for the app that you want created.
Build The App
Everything that you have done above has laid a solid foundation that should enable you to create an app that provides significant value to your target users. And an app that provides significant value to it’s users by solving a specific problem that that the users strongly desire to have solved has a great chance of creating raving fans.