All too often I have come across people who have an idea for an app and are “looking for a developer to get it done” . There seems to be a universal misconception that an individual developer slamming away at his keyboard is responsible for all the popular apps out there (read: Candy Crush, Whatsapp, Instagram). So, each time I read a job that says “I want an app with features like Vine” for $5000” I want to remind them of the old African saying “It takes a village to raise a child”

 The analogy is simple – a single developer cannot develop an acceptable mobile application. Let’s understand who all are part of this village:

The Client Liason / Project manager – This is the person that talks to you(the client) and understands your vision. He/she will understand the basic requirements of the app and will help you create the basic wireframes of your application. The PM will also discuss non-functional requirements like how many concurrent users would your app support, security/privacy concerns, etc

The PM will schedule calls with you to further discuss detailed requirements and keep you updated about the progress of development.

The Software Architect – Once the PM has created the high level Software Requirements (SRS) and the application wireframes. They will discuss the project with the Software architect. The Software architect will propose the system architecture and the technology choices to be made for the app. E.g. Whether to crate Native apps or use HTML5 to create cross platform apps, what server infrastructure to use, do you use a backend as a service like parse.com or do we build our own. Many of these considerations have a big financial impact and the PM will go back to you(the client) to get discuss these and decide on an approach.

Designer – The Designer is part of the creative team. He will bring your app to life. The designer will understand your target market and usability needs and come up with an aesthetically pleasing user interface for your application. The designer along with the PM will work with you to finalize all the screens of the app.

Mobile App Developers – Assuming we decide to build native apps, the development team would consist of at least 2 full time mobile app developers, one each for iOS and Android. These are the  guys that build your application from the ground up. They will build all the user interface elements, functionality and integrate all the magic that happens at the server end of things.

 

Back end developers – Assuming your app is not an offline app (most aren’t), there will be considerable effort spent on creating the backend web services that your app interacts with. Most apps would have some sort of login, perhaps some social logins like FB, Twitter etc. All dynamic data in the app like new posts, notifications, new stories, products, map locations, etc will need to be fetched from the web services exposed by the back end developers. The back end developers would most likely use a LAMP stack to build you database, all your business logic  and integration points with the app.

It’s likely you would also need some basic administration functionality at the back end too e.g. User management, order management, send your own push notifications, Update the database, moderate content ,etc. The same back end devs would build this for admin section for you.

Quality Assurance – The last thing you want is bad reviews on the app stores after spending so much time and money on releasing your app.With so many moving parts, you need to keep a check on quality. The Quality assurance team will perform the following tests on your system using various devices that you would like to support:

(i)   Functionality testing – all the features of the app

(ii) Integration testing  – with various aspects of the phone e.g. gps, wifi, calling,etc

(iii) Compatibility testing – testing on various device and OS version combinations

(iv) Load testing – This is critical to the success of your app. The load tester will determine the maximum no. of concurrent users that each server you have deployed will support. This will help the server admin in capacity planning.

(v) Security testing – to  make sure you don’t get hacked

Server Admin – Depending on the results of the load testing and after fixing the performance related bugs, the server admin will analyze the infrastructure requirements. We usually suggest an auto scalable Amazon Web Services infrastructure. Careful selection and optimization of your infrastructure will save you thousands of dollars in the months ahead and will ensure that you app servers are always up and running. Once the infrastructure is selected the server admin will deploy the code to the Amazon (or other) servers.

OK, so your app is ready, it’s been thoroughly tested. Now, you need to submit it to various app stores. Submitting to Apple can be a lot more cumbersome than other app stores like Google Play. Apple has way more checks that the review team looks at and app submission can take upto 14 days. The development team needs to be available to resolve any objections Apple might raise in your app.

While submitting your app you would need to provide marketing collateral like screenshots, description, keywords, etc.

Support – Thousands of people are now using the shiniest app on the app store. The next thing you know people have some requests – features, data, compatibility with more devices. Some of these requests can be taken care of on the server itself. For some, we would release a new version of the app.We would maintain a mirror server of the production version to deploy and test new features of the app before they are moved to production.

What you need here is a monthly support plan to keep things moving along and to keep the users of your app happy.

So, my advice to all the budding app entrepreneurs out there –  even the best developer will not have the chops to pull off all the work required to conceptualize, design, develop, test, market and support your app. Don’t try and cut corners, look for a great TEAM to bring your app idea to life, talk to them regarding their previous work, their internal processes, their design competencies and most importantly see if they get excited about your app idea. You never know, your app developer may turn out to be your business partner!