How to build a mobile app. The right way.
In my work, I often get approached by friends who share this brilliant app idea with me and ask for an opinion. When I sit down with them and ask the details it turns out that they haven’t figured it out yet and in general are quite surprised that so much work is involved.
I can understand that my friends don’t have this knowledge, but unfortunately, I see this scenario on various job boards, tech forums and even with some of my client prospects. It looks like app building process is still a mystery to many, so I would like to share my process.
I hope you find it helpful and I would love to hear your thoughts on it. Please leave a comment, tweet or send me an email.
Step 1. Do your research
Research the market. Research the competition. Research your options.
Do you offer something new? What existing solutions are missing and what value does your app bring to the table?
Think about what you’d like to see in the end and define what you mean by success. It can be a monthly revenue, a number of app users or maybe getting a funding from venture capital. With this goal in mind start thinking about your budget and how you want to secure it – it might be hard to nail it down properly at this point, but it should give you the right perspective on future work.
On a side note remember one rule – the more quality work you put in the earlier stages the easier and cheaper it’ll be to build the app in the end. Making changes along the way is problematic – it’s a bit like building a house – once you painted the walls it’s messy and time-consuming to change the location of your electric sockets.
Step 2. List all app features.
Write down all the app features you can think of. Personally, I like to use simplified user stories format for this.
As a <role>, I want <goal/desire>
As a Reader, I want to share blog posts with my friends
Thanks to user stories it’s easy to keep things organized and have the right focus when working on the app. Try listing as many features as you can think of – for the first version you’ll probably implement just a few of them, but they’ll be handy when you’ll start working on the next iterations.
Step 3. Talk to potential customers.
At this point, your idea is properly defined and ready to be presented to target customers or users. For example, if you target business owners try to get them on a call and discuss what you’d like to create. When describing the app idea limit yourself to 1-2 sentences and focus on the value your app delivers. Then try to learn if this is really their pain point and if they are willing to pay you for your solution. Don’t forget to ask a lot of questions on how your users deal with the problem right now – it may lead you to new opportunities or give you ideas for other features (make sure to write them down on your list).
Step 4. Select most important features (MVP)
Think about most important features that are crucial for your users and from now on focus only on these features (Minimal Viable Product). The more you cut off now, the more money you save when building the app. A lot of MVPs can be built with relatively small budget – sometimes you don’t even have to build the app. If your goal is to get venture capital funding – building clickable prototype might be enough. However, in general, I wouldn’t recommend getting VCs at an early stage, because they take over the control and a big chunk of your potential income.
When limiting the scope consider building the app for just one platform – depending on the market it can be iOS or Android. If you can do this, and I strongly suggest that, you can save even more and have easy time building app for the second platform.
Step 5. Create app wireframes
Ok – you’re probably at least few weeks into the journey and your app doesn’t have a body yet. It’s time to start designing. But before you design your app logo, splash screen and spend few days thinking if it should be green or purple – draft out some basic wireframes. You don’t need any graphic or coding skills here – just normal pen & paper. These wireframes won’t have to be complete – most likely your designer will change them anyway – but it’ll be much easier for them to understand what you need. Focus on the user experience and how your user stories can be fulfilled by the app. Make your main features easily accessible and simple to use, so the users won’t need any guidance when they see the app for the first time.
Step 6. Hire a graphic designer and create proper designs
We’re getting closer to the ‘real-work’. Yay! Now we visit the beauty shop and put a make-up on your app. For that, you’ll need to hire a graphic designer. But before you do, browse through pttrns.com, mobile-patterns.com or behance.net for some inspirations on how you’d like your app to look. Now show your designer the user stories, wireframes, and inspirations and he’ll put them to life. This will be the base for future developer work and quotes from companies.
Step 7. Hire the developer or team
I hear you say – “It’s about time! I’ve been doing all this side stuff work and all I want to do is build this great app and earn real ca$h!”
But trust me – previous steps were really needed to get you ready for the next few months (wax-on / wax-off process). Building the app is the most costly part of this journey so you probably thank me in the end.
You can look for developers in numerous places like online job boards, developer agencies or software houses. Each has its benefits and downsides and I’ll try to explain them in another post. Regardless where you look, you have the designs and feature list, so you should be able to get proper quotes on complexity and cost.
Now match the offers to your budget, consider all the risks (do these cheap devs can deliver your app?) and hire your dream team. Choose carefully because once you start working with someone it’ll be hard to replace them later. Switching developers cost money and sometimes involves ditching all the previous work.
Step 8. Create a roadmap for building the app
Every developer has its own methodology of building the app and if they have good communication skills they’ll guide you through the process. At this point let me share mine, so you can have a general idea of how it could look.
I like to sit down with new clients and discuss the plan for development before I do any coding – let’s call it a roadmap. It’s hard to estimate the work and cost without really understanding the requirements, so this step tries to reduce the risk and put a proper perspective for the client.
After few meetings, I create a list of tasks required to develop the app, general estimate for them and a schedule for delivery. Another important part of the road mapping is rethinking wireframes and designs to match what’s possible within your budget – I know you and the designer had these killer ideas for some features, but they might cost too much to develop and it’s better to remove them now than to overpay for something of less importance. On the other hand, there might be few important features you might have missed. For example I always try to introduce app analytics and additional error logging and crash reporting integration to the apps I build. They’ll be handy once the app is live in the store and are really worth extra time.
With the task list and effort estimates, you have enough information to know what it’ll take to bring your idea to life so you should freeze, secure and commit to the budget. You might have to shave off few features or increase your budget but this is required to ensure the app will eventually land in the hands of final users.
Step 9. Build the app
Now it’s finally time to do the fun stuff – bringing your idea to life. I’m pretty sure all the initial excitement is gone, but no one said it’ll be easy, right? At least you’re committed now and there’s no turning back.
Again – each developer has its own process for the building phase. I like the agile approach and build the apps in 4-week sprints. The cycle is simple to follow:
- Meet with your developers at the beginning of the cycle and discuss what you plan to do for the next month
- Have a weekly meeting to discuss the progress and potential problems.
- At the end of cycle test what they did during this period.
- Start the cycle from the beginning until all is ready
It’s important to constantly learn about your team on each sprint. Let me share a small secret here, we – the developers – are often too optimistic about our estimates, so during these sprints try to adjust your expectations and have your budget ready for extra work.
Step 10. Test with first customers and beta testers
Now that your app is almost ready and working, you can show it to your first customers or beta testers. If you did step 3 then you should contact the people that liked your app idea and ask them to try it out. Don’t be afraid that your app has some glitches – they’ll understand that it’s still a beta (Gmail was for several years) and will be happy to be first ones to try the app. In the end, you’re trying to fix their problem and ease their pain, so use their excitement and try to get as much feedback as possible.
Step 11. Release to market
After you gathered feedback from first users it’s time to implement required changes, fix last bugs and finally release the app to the public. Believe it or not, but now it’s the hardest part of them all. You committed several months into building this, a lot of sleepless nights, not to mention all the cash – just for this moment. It’s time to start making money on the investment or to grow your audience if the goal was to get X number of users. And often the response may be not what you expected – instead of thousands of happy users, you get a few hundred which don’t use your app that much.
You need to stay focused on the goal, be active and build your user base – so do the required marketing for your app, grow your audience and provide great customer service to keep your existing customers happy.
If you aren’t good at marketing then you should consider hiring a professional to help you out. It might be even a good idea to look for him when you’re still building the app.
Anyways, good luck on the journey – prepare for a long one. And I really wish you a successful one.
Step 12. Learn. Build. Measure.
Now that your app is live you can start thinking about the next step. The typical cycle for development is to learn – build – measure.
- Learn about your users’ needs and requirements. How they use the app? Do they complain about missing features? Mobile Analytics are helpful here.
- Build the features that are most important to your users and fit within your budget.
- Measure how your app is growing. Do your users stay with you or abandon the app after few days? Measure other metrics that are important to you – number of new users, certain feature use count, etc.
You should also make sure to secure your developers and agree with them on the next batch of work. If you’re hiring a freelancer, he might have other projects on his plate and won’t be able to help you within the next few months. And if you hired a full-time developer to be part of your business, make sure you have a work-plan and features ready for him. Otherwise, he’ll be burning your budget doing non-important work.
To be honest, when I started working on this post, I didn’t expect to be so long and I just scratched the surface. Some of my friends, who approached me for advice, were surprised about the amount of work required to build the app and actually got discouraged before reaching Step 1. And although that wasn’t my intention, I’m really glad they abandoned their idea and ask them to buy me a bottle of wine as I just saved them a ton of time and money. It’s better to quit early if you can’t handle the work.
I hope you find these steps helpful and you will continue with your idea and eventually bring it to life. If so, please share this post, comment or send me a private message. I plan to discuss each step in detail in future posts, so it’ll motivate me to make it sooner than later.