Week 38 - What I Need to Know About the App Development Process
When it comes to developing your app, there are essentially two paths you could take:
Grab a cup of coffee, open up your IDE, code out some core features, do some testing, debugging, eat lunch, add some branding, and push your app to the app store.
Or, you could do extensive pre-planning, doing all the research of both your targeted users, the need that your app addresses, create wireframes, design prototypes, develop, test (and keep testing), publish it in the app store, and have an entire marketing strategy to promote it.
While the first option sounds quick and easy (and cheap), it probably won't lead to a successful app. Especially when there are over 4 billion apps that people can choose from between Android and iOS, you'll want to make sure that you even have a chance in this saturated market.
So, let's dig deeper into option 2 and really figure out how to develop an app successfully.
1. Refine Your Idea
Let's say you have a pretty good idea for an app you want to make, or at least you think you do. The problem is that ideas are a dime a dozen, if that. Before you get too attached to that idea though, you need to do some pretty intense initial research.
For example, before you even think about the design or coding of the app, you need to define the kind of person that would buy or use it. In the marketing world, we call these ideal customer profiles buyer personas. This buyer persona would contain all the necessary information about your ideal customer, from their likes and dislikes, motivations, passions, life goals, demographics, etc. These personas help you ensure that you are targeting the market you want and make sure the app you develop fits the niche user.
Once you know who to target though, you need to figure out how. As part of the persona, you should have identified their most used platform, source of information, entertainment, and so forth. Your app needs to cater to their preferences so you can get them in the door and make sure they stay.
An unfortunate reality though is that your idea is not going to be unique. The good part about this is that you can now figure out what your competition did well, or completely failed out. Sometimes, people have great ideas that theoretically would be successful, they just might have done it too early. Take advantage of your competitor's failures, adapt, and improve.
2. Create Your Wireframes
Once you've finished all your research, you'll want something tangible to look at. This comes in the form of wireframes, which are essentially the skeleton of the app. While it won't use any real data, images, or coding, it will give you an idea of how the app should look, feel, and function.
A key part of wireframing is to discover the user journey through your app, and how it might be flawed. For example, the wireframe can help show that the core feature of your app is more than 3 clicks from the home screen, and therefore doesn't make a very good user experience.
This wireframe is supposed to give you, your developers, and your stakeholders a better idea of how all the pages and features of your app work together. App navigation is a crucial part of the user journey, and if they can't figure out how to get from point A to point B, they'll just leave.
3. Analysis the Technical Feasibility
When deciding what you want your app to do, you need to think about whether it can or even should. For example, if your app needs lots of data, you'll want to factor in people's limited data plans, in both speed and monthly limits. Or, if it's processor/graphics intensive, you'll want to account for varying levels of smartphone specs.
In most cases, you'll need to make use of APIs, which are basically just ways to pass information between applications. In this sense, you'll want to make sure you have people who know specific APIs, how much it will cost, and if it's even worth using for your app's essential functionality.
Plus, you'll need to decide if you want to do it just on iOS or Android, or both. Based on your assessment, you might have to make some changes for what you want your app to do, or at least how to do it.
4. Rapid Prototyping
Similar to the wireframing process, you'll want something more tangible that users can work with and get a feel for the experience. Building rapid prototypes get the general experience down and let you work out the kinks before you develop the full-fledged product.
The prototype is made to get those user's feedback so you can improve on the base experience and so that your final product will be exactly what users want.
5. Create the User Experience
Now that you have the dirt path finalized, you'll want to add some mile markers, signs, street lights, and maybe even turn it into a sidewalk. This looks like fleshing out the user experience more - adding specific design elements, establishing the overall look and feel, and how everything should flow.
Whoever is in charge of UX and UI needs to layout how all the buttons, links, pages, data, etc., interact with each other in a logical and painless way. Make sure that you don't put all your eggs in one basket by making only one experience, and instead, make a few variations so you know what will work best.
6. Develop in Stages
While this is near the end of the process, you've most likely had many of these steps running concurrently. Development probably began early on and at least became a prototype for you to use and share.
The key here is to make sure you develop in stages. Apps today are built in one go and like any software, usually makes use of agile methods. This basically means you'll work on different parts of the app in the span of a short time (called a sprint), and then move onto the next part when that sprint ends.
As you're doing this, you'll want to figure out how to make this process as modular as possible, having teams working on different parts and being as flexible and progressive as possible.
7. Debug Fast, Early, and Constantly
When it comes to any sort of coding, a majority of your time is going to be dedicated to the actual debugging (not the initial coding). To ensure the most efficient use of your time here, you'll want to test each and every part of your application on a consistent and frequent schedule.
For example, the worst thing you can do is spend a few days or even weeks coding out your base app, and then begin testing after that. You're asking for a world of pain, and may just end up throwing your computer at a wall because you forgot a parenthesis at the very beginning and just spent two sleepless nights trying to figure out why you were getting a runtime error that could have been solved if you had just done some debugging early on.
At a basic level though, you'll want to at least test for "usability, compatibility, security, interface checks, stress, and performance." A lot of this testing doesn't even necessarily need to be done by developers (and all honestly, shouldn't be). Your users are your best (or alpha) testers, as they'll give you the best idea of what is and isn't working. Their feedback is vital to getting a basic app off the ground and needs to be done before sending it off to the marketplace so you know you aren't just wasting your time.
8. Send it Off (and Wait for Feedback)
Now that your app has been researched, tested, debugged, and prepped for launch, it's ready to go to the app store. And, once it's there, you're job is done and the money just starts flowing in.
Sorry to break it to you, but this is where it gets intense.
Once real-world users get their hands on your app, you'll begin to get a lot of feedback, both the good and the bad. There will be lots of flaws that you didn't account for, and hopefully, you'll be releasing updates and patches as they are found.
Don't think of apps as a one and done thing, as you'll never have gotten it done right the first time, and users have no problem telling you so. If you want to stay relevant, take that feedback and improve your app. Otherwise, you just wasted a lot of time and money.
1. Have an Idea or Find Some Problems
In cases where you don't already have an idea for an app, you're next best shot is a to make a list of problems that you have in your day-to-day life. Generally, the slight nuances you experience or problems you face are usually experienced by many other people. In this case, you might just have a product or service you can begin offering. And, if it makes people's lives more convenient, you got something to work with.
Just think of it this way: your app is a product or service that is remedying a problem, whether that be boredom, socializing, data reporting, or even just taking the best pictures. There are plenty of problems to be solved, capitalize on that.
2. Make Sure There is Demand
Just because you and your closest friends all experience the same problem doesn't mean it's a widespread issue. The internet is a wealth of knowledge, use it. Search around about your problem, see if there is a large search volume (you can use tools like SEMRush, Moz, or just even the Google Keywords tool), and adapt from there. If no one is Googling the problem you're trying to solve, then you should go back to step one.
Or, if you have a database of users you can pull from, simply do a poll and figure out if that idea would address a problem of those users. If you get overwhelmingly positive or negative responses, then that should tell you how to proceed.
3. Document and Wireframe
OK, so you know that there is a need for your app and that a good number of people are interested in your solution. At this point, you'll want to start figuring out the process of your solution. How do users navigate your app, how do they find what they need, what issues would they run into, what is the necessary information they need to access, etc?
Essentially, what do your developers need to know when they begin to build this out?
4. Need to Have Vs. Nice to Have
All the information you just gathered though might be a little overwhelming, and you might even get caught up in what you can do but not necessarily what you should do. The first iteration of your app needs to just have the absolute core features. Do only what is necessary to remedy the user's problem.
The easiest way to do this is to make a list of all the features that you want, and then split them into two categories - the need to haves and nice to haves. In the beginning, focus on the needs, both to stay within budget, on time, and within scope.
5. Realize the Importance of Design
As someone who leans more toward the simplistic and logical view of things, I don't always have the eye for design. But when it comes to your users, you'll want to make sure that you design it for them, in a way that they find intuitive.
While a "basic" design might be quick and cheap, you'll most likely end up shooting yourself in the foot by designing an experience that people will find ugly and cumbersome. Make sure that what you create is useful to people, which includes how it is designed.
6. Form Your Team
In cases where you aren't a developer yourself, you'll need to hire an individual or a team to do the coding for you. There are plenty of resources at your disposal, from freelance sites to entire companies. Hire the developers that fit your niche and have apps you liked. Just know that you'll get what you pay for (i.e., cheap developers usually ends up meaning cheap work).
7. Get on the App Store
When basically every smartphone used today is either Android or iOS, you'll need to be where the buyer is. This just means you'll need developer accounts in the two respective app stores so you can sell and/or distribute your app. Publishing your app to the Android Store or the Apple Store has specific requirements. Make sure you satisfy them before you get too far ahead of yourself.
8. Maintain User Data
Before you put your app on the store though, you'll want to have a strategy in place to track user data. Basically, you'll want to know how many downloads you've got, how many people are using your app on a daily, weekly or even monthly basis, and how engaged they are with it. Here are some popular mobile analytics apps you can use.
9. Listen to Your Customers
So, the app is now developed (at least when it comes to its core features) and you have some basic metric tracking setup. As soon as you put it on the store and start getting downloads (there's a lot you'll need to do to go from one to the other), you'll need to listen and read up on how users are interacting with it.
Their feedback is crucial for ensuring the success of your app, and by addressing your concerns, you make a product that will want to be used even more.
10. Expand and Improve
As you collect feedback, evaluate your user data, and make minor improvements, you'll also look back at that list you made earlier - the nice to haves vs. the need to haves. This list will be your road map as you continue to iterate and improve on your app's features and functionalities. Use it carefully, and make sure you always maintain the core functionality as that is what people wanted in the first place.
Make Sure It's Useful
Turns out, if your app doesn't address a wide issue or provide some sort of value to someone (no, your mom does not count), then your app is going to fail. As we've talked about before, attention is a valuable currency that people can't save up.
I actually thought it was funny that the first example brought up in this article was a bathroom locator and rating app - it just so happens that I was in a Ruby on Rails class that did the exact same thing. Turns out, they might have been on to something.
To think about it simply, don't think about your app as just a version of your site on mobile. While it can be that, you're really just thinking too small. Apps can provide so much more for your users. Get creative and figure out what that might be.
Using QR Codes (I disagree with this, but take it as you will)
A Quick Response code is that weird mix of black and white squares that your phone or scanner can integrate into something meaningful, think a coupon, URL, ID, or product tracking. In many cases, you'll have to download an app to read the QR code, hence my opposition to this method.
Ads - Mobile and Social
As with any product or service that is marketed today, there will be paid ads that go along with it. Specifically, you can make mobile ads that target people browsing on their phone. Or, you can make use of Facebook, Twitter, and Instagram's vast repository of people's personal information (demographics, location, interests, loves, hates, etc.) to target them with even more specific ads.
Just like regular content marketing, guest posting is a great way to utilize already established platforms and audiences that could fit your niche. Since people can smell the sale from a mile away, you'll want to make sure that what you write is trying to answer a problem as a whole, not why everyone should download your app.
That's not to say you shouldn't include CTAs and links to your app, as that is a must have. Just don't be a sales guy about it.
Hire Someone Else to Do it
If you have the budget, you could also just hire an entire team to do all of this for you. These agencies specialize in app marketing, and can give you front to end service on getting your app exposure, downloads, and success:
Or, just Google around for mobile app marketing agencies and pick the one that you like best.
Too Long; Didn't Read
When it comes to developing your app, there are a few steps you should probably take before you go into UpWork and hire the cheapest freelance developer you can find.
Make sure that there is actually need for your app, that it addresses a widespread problem, and that you are providing a good solution that people would actually use
With your market research done, you can now move on to some essential wire framing and documentation
You'll now talk about technical feasibility, figure out what you need to have and what you can work on later, and begin working on a rapid prototype
You'll want to make sure that even though coding it well is important, the user experience is just as important for the success of your app. Make sure it's designed AND developed well. Sacrifices in either area will be obvious.
You're most likely going to be working in an agile environment, so get iterations of the app done quickly. Make sure you are going to test, debug, and fix you app at each iteration constantly and quickly.
Get your Android and Apple Developer accounts setup for launch day and make sure that you've integrated some sort of user data tracking into the app (non-creepily) so you can track performance.
Based on user feedback and the wish list of things that would be nice to have, release consistent updates and fixes for you app.
In terms of marketing your app, it's not really much different than anything else. You want exposure for it, highlighting the app's capabilities while also not sounding super salesy. This could be Google Ads, Facebook Ads, flyers, or even radio promotions.
Assuming you defined a target customer base, "everyone" doesn't count, then you should also know the platforms and mediums they live on. Target those first.
Or, just hire an app marketing agency to all of this for you. Depends on your budget I guess.