Questions to ask before developing a mobile app

Startup culture is catching on back home in the Philippines.  At least this is what I picked up after a few conversations with friends.

Today, someone asked me about some ideas of what it would take to startup an app development business.  I haven’t given much thought to the business part (maybe, I will write about it later) but I do work for one and I put down some thoughts on what it even takes to create an app.

So below are some very basic questions to ask at its inception.

What is the app?

Needless to say, an idea of what you’re making is always a good place to start.  While you’re at it, identify what kind of app were you thinking of.  Is it a game?  A social media channel?  An app for a business? Apps may not inherently be useful  or “purpose-driven” but it doesn’t hurt to know how users are going to end up using it.

Who is the app for?

Also basic.  Now that you know what the app is all about, time to ask who it is for.  Is there one type of user or multiple ones?  A lot of apps are designed to have multiple types of users in mind, with different permissions and capabilities.  In UX design, I believe these are called user personas but we’ll talk about that later.

What goes on?

Now that you have defined what the app is and who it is for, you now have to start thinking of the type of functions that go into it and determine what drives these functions.  There are functions that are natively developed in the app but there are also those that may require third-party services.  The following are some examples I can think of:

The services you use like the one you use for login (if the app needs any).  Database storage is always a good question if you are dealing with logins because…where the heck do you store all of that user data? A client-side database, perhaps?  What if you want to introduce the ability to login with your social media profile?  That may require building in an API to make the third-party service communicate with your app.  Introducing ads to your app may also be developed both natively or through a third-party service.

Content management.  Is your content static or dynamic?  Will the app require internet connection to populate content or is it a pretty slideshow/info-sheet on your phone that you can show off without connectivity?  If you are developing for a business, who is going to manage the content?  If the business owner wants to be more hands-on with content, perhaps it is necessary to empower them with the system and tools for it.  Examples of content management systems include WordPress, Nuxeo, Salesforce, Contentful – to name a few.

Analytics.  This one is tricky because it will depend on the analytics tool that you plan on using for the app.  Most likely, the tools used to implement analytics on an app are NOT similar to the ones used on a website.  An app behaves differently from a website (unless that is the kind of app you are developing, which begs the question – is it worth it?).

Side-note: It may seem irresistible to some to create apps for the purpose of displaying the same website content.  How does that make people’s lives easier?  Why do you want to spend time and money creating an app that reiterates an existing website?  That’s what responsive designs are for.  Consider an app as an entirely separate entity.

What is it going to look like?

In other words, design.  Is there a brand you’re trying to build into the app?  Maybe there are assets that need to be incorporated to create consistency with that brand.  Of course, design also depends on your audience.  Is it a corporate audience or an artistic/indie crowd? We’re all about flat design nowadays.

The end.

Focusing with the end in mind might sound Machiavellian to you but it really is for the good of your development team to know the scope of work involved for the creation of the app.  There are various methodologies out there for the development process. In our office, we have adopted the Agile approach.  From the onset, break down the development to scalable tasks and know where it ends.  KNOW WHERE IT ENDS.  Or more importantly, define it.  The desire to introduce new functions in the process of development may seem irresistible at times but it is important to maintain a scope and defer these new awesome ideas to a later iteration of the app.  That is what updates are for.  For now, stick to the basics.

I could be more comprehensive but I’ll start writing my notes here for days to come.