Two years ago I wrote “Dear business people, an iOS app actually takes a lot of work!” and until today I have not really revealed publicly how it was the little accidental ‘overnight-success’ I had. So here it is: on the first day it stayed on HackerNews‘ front-page for a breaking record of more than 48 hours (a usual indie link wouldn’t stay more than a couple of hours). My server crashed more times than I could count and the highest live visitors on site recorded to Google Analytics was close to a thousand viewers, that’s 1000 concurrent connections at any one time. Until today, I still have few thousands view on that article every month without doing any promotion.
So I decided to write a “version 2.0” given the extensive experience I have had while assembling a great team and started building mobile apps professionally under Silicon Straits Saigon. Instead of looking at the various cost consideration factors of building an app (which the previous article still reflects very accurately in 2014), I would take a different approach by giving a sample timeline and rationale why things need to be done in a certain way.
Let’s say you have decided to build an app that allows users to post and share cooking recipes but you want to own every aspect of it including servers, source code. You also have this super niche audience group that you want to target and it will need certain features that no other recipe-sharing app out there have it. Of course, you might have all those ideas in your head but there’s nothing written down in black and white.
And very importantly, this article assumes that you are serious in building a nice-looking and solid app, not just dummy or disposable prototypes. Moreover, I am discussing development of native apps and not cross-platform solutions. Sure they could potentially save time but nothing really beats individual native code when it comes to long term benefits.
It’s going to work for sure, you know that the idea is solid, right?!
Hopefully, after reading my previous article, you now probably accepted the fact that you are not going to get it done cheap.
To make things more realistic, I would also assume that you don’t want and can’t afford to pay for a huge lum-sum upfront to the developers/company you will engage. This is also true for SMEs/individuals/agencies who need to maintain a low monthly burnt rate to survive the longest time while working out marketing and launch plan. Sounds familiar?
With that in mind, what I usually propose to my clients is a monthly arrangement with bare minimal headcount of 1 for each skill-set needed to complete the app. And in this example, let’s say you need 1 back-end developer, 1 iOS developer, 1 Android developer. Make sense?
In case you are expecting one developer for everything then please stop reading this and go back to your day job instead. Unicorns do exist in some forms but you are no where near their league.
If you are still unclear, look at the Timeline below.
Surprise?! I said only 3 developers but now there’re 5!!! What’s going on?!
Don’t freak out just yet, let me answer all that burning doubts one by one:
+ UI/UX Designer: Why do I need a UI/UX designer?
Don’t worry this is pretty common misconception. Most people when thinking about “making an app” they actually think of “copying” an existing app with similar design or maybe borrow a design from another app. Another gap in expectation is that decision makers think developer can also design, which is not true most of the time. Putting this together, the business owner usually assume it’s simple for the developer to plug design pieces from elsewhere and put in the app easily.
NO! You need at least a proper designer and the next guy (below) to even begin realising the app.
+ Product Manager (PM): What is this role and again why do I need him?
You don’t have any written documents, maybe you have some napkin sketches but that will not be sufficient to convey everything exactly the way you want it to be built. And developers, they don’t talk your business languages, they don’t care if you wanted nice design or reach thousands users, they can’t fill in the blanks for you. This PM guy will the interface between you and designers and developers. He will also help you to ask you questions that you probably have never thought of while drawing on those napkins.
Arguably, you can make an app without a PM for sure. But based on my experience, the project will drag much longer and you will never get to the satisfactory level that you hope for in the beginning. It wouldn’t be a smooth sailing experience.
There are also several reasons why I always refuse to call my PM as Project Manager, this deserves another long post that I intend to publish soon. The bottom line is Product Manager is more than just Project Manager. Subscribe to my blog and stay tuned.
I believe the explanation above toned down your doubts and you are ready to get to the real rationales behind my proposed timeline: task dependencies.
Kickstarting the app, you need the idea-guy (UX designer) to dream for you, then the creative guy (UI designer) to draw your ideas nicely, but of course, you also need the PM guy to help you put things together and plan out what is realistic and what might be too far-fetching. If you are lucky, at the end of first week you should have a very good sense of what the app will look like and what can be ready for launch based on a certain timeframe. My team has a unique creative process that make sure you can’t fly off too far from the reality within this first 2 short weeks (ask me how!).
Why can’t we just start building right away?
The issue is what should be building first? Logically, the back-end (Server dev) needs to start his work first before the “app guys” can do their jobs. A typical example why you can’t start building the “app” part immediately is this:
– You want a registration screen, but you have not decided what information to collect.
– The server dev can’t decide for you if you need to store Age or full Date of Birth, it’s up to you.
– The app guys can’t build the interface because Age is a year selection while Date of Birth is a date selection.
– Now you need to go back to the beginning to work with the PM.
So the fundamental of dependencies for making an app is this: you need concrete sense of what you want to do first, then the server work can start a little bit; after which the app can be build incrementally. It’s like the app developers will play catching up with the server developer and that’s the most effective scenario.
Your milage may varies, sometimes you might need a much longer time for UI/UX development because the exact flow is too complicated or not known in advance. My team worked with several media agencies and this is usually the case, the high-level ideas are there, but the end client (usually big MNCs), cannot decide how to do the UI and what are the functions to have.
In other cases, your server development might need a longer head-start due to complex overhead logics, example: integration logic with external servers, or in regulated industries. In the timeline above, I assume the developers are all in one place, hence reducing all possible delays and mishaps in communications.
You can only plan so much. There will be several changes once you are able to see and test the beta versions on your devices. That’s why there are half-blocks on my timeline for the designer. You should expect to work with them occasionally to revise the design and user interactions of the screens. All other work will have to be reconsidered to fit the slightly-changed plan.
Most likely you will get your iOS app ready earlier than Android. Not only because of Android’s notorious fragmentation but also because of really weird and seemingly-stupid bugs which happen only on certain devices that you don’t have physical access to. I faced many of these over the past 3 years and eventually I learnt to accept the sad truth, it simply takes longer.
How long would it take to get it done depends on how complex and detailed the requirements are. A good Product Manager, in my definition, should help you to control this while you can’t. He/she should be able to tell you to set a date and stick to it. You should not change your mind half way and take a detour because of subjective judgements of market for example. He/she should help you to manage the timeline carefully.
Don’t expect your first version to be perfect, in fact trying to push the last 10-20% til perfection might get the project killed by lack of resources or missed deadline. Just get it out there to real users already while it’s good enough.
Making mobile app is still not as simple as it seems to non-developer. In modern days, when almost every new app is Internet-connected, the process consists of more than simply iOS/Android programming. You need strong server support, you need designers and equally-important product manager. Each of these components when carried out in certain order, it should help to achieve optimal time and cost for your first release.
If this article doesn’t scare you and you still want to make an app? Contact me and/or the team at our Facebook page.