App Development Process — Discover, Design, Deploy, Develop, and Iterate (4DI)

Saad Arshed
4 min readJan 25, 2018
App Development Process — App2Dev.com

Are you planning to build the next big App? Are you overwhelmed by the task? Does the idea of not getting it right the first time haunts you? If so, welcome to the club. I have had many sleepless nights trying to learn and figure out the perfect App Development Process. We went through many iterations and wasted a lot of money. But all that led us to a model that works wonderfully well for us now.

Now, I am writing about our current version app development process. Its not perfect as we keep on tweaking it. I hope you gain some insights and provide feedback. We call our process 4DI—Discover, Design, Develop, Deploy, and Iterate!

Discover

Whenever an inquiry comes in we start off with the discovery process. We try to get as much info from the client. This process starts with signing an NDA so that both parties are comfortable talking to one another.

To capture any idea in full, we try to understand the targeted market base, size of the opportunity, platforms to build upon, customer acquisition plans, monetization models, and so on.

During this process, we try to make sure that both parties understand the real value of the idea and get realistic about the opportunity.

This process is carried out before any signing of contract. We try to keep it independent of any obligation.

Design — Wireframing

Once this discovery phase is done we start off with the app design/wireframing process. Here we try to capture all of their business needs via mockups. The end result of it is the Design Layouts.

During this phase, we try to capture all the functionality and features that the customer is planning to develop for the 1st version of the app. We make this process interactive, adding more detail to each and every step.

Following snaps are from one of our client’s work.

Wireframes from App2Dev.com
More of App2Dev.com Wireframes

Design — System

I will try to keep this part simple as possible. As the process is handled by experienced developers and details of it would be too difficult to cover in few sentences.

Once the client signs off on the designs and mock-ups, we move on to the System Designing Phase. This process is led by our experienced system designers (high-level architect) to determine the architecture of the app, tools to be used, and man-hours required.

The most significant question for the system architect at this point is to determine the usage requirements and how to build to build a technology stack that scales well.

For web development, the system designer has to select the proper tools for the front end, server side, and the databases. For front-end, options can vary from picking simple front-end frameworks (Bootstrap, Bulma, ..) to JavaScript Front-end Frameworks (React, Angular…). For server side programming, we have to choose the right languages like PHP, Ruby, Django, NodeJS and so on.

For mobile apps, we have to choose between the Native vs. Hybrid platforms. JAVA, Kotlin, Swift, Objective C are all example of Native languages to build Android or iOS Apps. Hybrid frameworks like React Native and Ionic can be used for hybrid applications.

Again, the choice is much dependent upon the complexity of the application and scaling goals. Our experienced system architect determines all this.

Develop

After this, we start our coding and development process. For this process, we use agile development with frequent iterations often and test extensively. During all of the process, we do involve client for testing and feedback of the different components in the building process.

Client Involvement

We try to keep our clients engaged as early in the process as we can. We get their feedback on each step and also try to guide them throughout the process so that they have a clear understanding of where the project is.

Usually, a project manager will look after this process. The task of the project manager is to get the details from the right department and then translate it to our customer in form and manner that is understandable and actionable.

For such interaction, we use different channels and are open to the ones that customers prefer. In general, Skype, Slack, Trello are the preferred and frequently used tools.

Deploy

Few of our clients, with simple applications, will choose to deploy applications themselves.

In case of the complex applications, where one has to be good with deployment tools, customers engage us in helping them with the process. For this process our Dev Ops team take on the deployment, maintenance and testing of the solution.

Iterate

All above processes are subject to iterations. We continually test and redo the work. Usually for building the MVP (minimum viable product), the core is built first, tested, and reiterated for improvements. Once the Core functionality is perfected, more features and enhancements are added.

Iterations ensures that the product we are building incorporate feedback and suggestions at every stage. So we try to build architectures and teams around the concept of building, rebuilding, testing and improving based upon feedback. And it works well for us.

This article was originally published on App2Dev.com/Blog.

App2Dev.com

--

--