It’s one thing to build a minimum viable product for your app, and another challenge entirely to run and maintain it as your user base grows.
At the Rise Conference in Hong Kong last week, I Can Has Cheezburger? founder and developer advocate for Facebook Parse Eric Nakagawa shared some insights on the most common mistakes developers make when crafting apps for the first time.
Your app isn’t built to scale.
The problem: App performance decreases as user base grows
As you sign up new users from 10,000 to 100,000, there’s a chance that your app’s performance will take a hit — slow, poorly performing database queries are usually the culprit.
Fix it: Improve performance by normalizing your data and converting queries from mobile users to simple ones that fetch only the content they’ll need on the go. Additionally, pre-calculate countable items and store those values — such as the number of comments a post has received — instead of running a fresh query to surface that data afresh for every user.
The problem: Your database contains large objects
Storing images and other large objects in your database slows down queries and impacts performance, especially as it grows over time.
Fix it: Avoid storing massive chunks of binary data this way. Plus, consider purging data — such as content uploaded by users or messages sent between them — after a certain period of time to prevent becoming a warehouse of potentially useless bytes.
The problem: You’re DDoSing yourself
If you plan to launch a new feature or section in your app and alert your entire user base to check it out at the same time, it could lead to your server being overloaded.
Fix it: Segment your audience into small chunks before sending out email alerts or push notifications, and invite users to see what’s new in smaller, more manageable batches.
Spreading out your messaging this way also gives you a chance to monitor the effectiveness of your marketing campaign and adjust it mid-way if necessary.
Plus, it might help surface issues you haven’t been able to test for at scale, before launching your new feature to your entire audience.
The problem: Users begin to notice errors as your audience grows
Popularity spikes can expose common problems, like server timeouts, server connection drops and failed updates when users save or upload content. And as more users hop on to your app, they’ll encounter scenarios you may not have thought of, such as losing a connection in a subway while your app is fetching content.
Fix it: Try to account for such problems before you acquire a large user base. For example, what happens if you use SMS authentication for user registration and your text message is delayed for some reason? Or, what if a user writes up a long review or comment, but loses their data connection immediately after submitting it?
Ensure that you have fallbacks for such scenarios. Allow users to retry actions like signing in through a third party service or adding comments in case these don’t work the first time.
Security is an afterthought
Nakagawa noted that many startups fail to plan and implement robust security measures for their products. As a result, their customer data is at risk and could spell disaster in case a malicious hacker decides to attack their systems.
- Keep your API and database servers up to date. It’s not always easy with a live app, so plan for this in advance.
- Stop using passwords when accessing remote servers and use SSH instead for increased security.
- Limit database access as you’re building out your infrastructure.
- Document your security decisions. Make note of everything you choose to implement when securing your systems, so that in case of a breach or even when you have new staff join your team, you have a handy reference that describes your setup for diagnosis.
- Separately store your public, private and protected data so that your crucial assets aren’t exposed all at once in case of a breach. Use role-based security systems to allow access to these sections of data.
- Hash and salt your passwords, and encrypt private data like users’ phone numbers — or don’t store them at all unless absolutely necessary.
- Allow users the option to delete their data from your systems, especially personal information and location history.
Your app experience is poor
A good user experience is about more than just how your app looks on screen. Think about how you can improve the way it works in less-than-ideal situations.
The problem: Your app requires a constant and steady data connection
This is a near-impossible scenario in the world, as mobile users are on the move a lot and frequently encounter dropped data connections.
Fix it: Rethink the way you pull in data and display it. Fetch only essential content, use content delivery networks for faster performance and cache it on users’ devices and buy your app some time to get additional data.
The problem: Your server calls are slow and tend to overwhelm your systems
If your app makes users wait for more than three seconds for something to happen, you’re probably doing something wrong.
Fix it: Consider using an API so your calls are quicker and have secure endpoints for data coming in and moving out from your server.
An added benefit to building your own API is that you can use different versions for segments of your audience on varying device and software, without slowing down or breaking your app.
The problem: Users drop off your app without signing up
Your app might have been borne out of a good idea, but not all users will be convinced at the first sight of it. Sometimes it takes a kick or two of the tires for people to know if the new app they just discovered is right for them — and they’ll want to try it without making any sort of commitment.
Fix it: Allow users to try your app anonymously and without signing up, so they can experience value without having to first fill out a form.
For example, if your app recommends restaurants and displays reviews, show users some options around them and let them see how well it works, before prompting them to register.
Build your onboarding process around this, and you’ll be able to have more users actually try your app.
In closing, Nakagawa shared some tips for being a better founder:
- Define what success means to you and your company. Know the outcome you want, and share that with your co-founders. This eases discussions about key decisions as your company grows.
- Build a team that can take action independent of you and try to encode that in your company’s DNA.
- Spend time with other founders — it’s important to learn from others’ experiences when tackling new challenges.
- Don’t go dark. It’s usually a bad sign when your investors haven’t heard from you in a couple of weeks or if you’ve gone quiet on social media for some time. Figure out a communication schedule and stick to it.
- Join local entrepreneurial and startup groups, and grow your network. You’ll need all the support you can get when building your company.
Read next: 10 ways to monetize your mobile app