Mobile App Development Process – Rocket Science or a Piece of Cake?
See the steps to go from great idea to finished mobile app and learn what mistakes to avoid at each juncture.
Join the DZone community and get the full member experience.Join For Free
A few years ago, having an idea on the growing mobile app market made you the winner. Nowadays, every startup knows that idea execution is the most important part of succeeding in business. The same refers to mobile app development. The idea is the tip of the iceberg and you should be aware of the whole process. Creating an app is easy. However, making a successful mobile application is a process involving more knowledge and preparation.
First of all, we should define the objectives of the app development process. It’s not rocket science to guess that the biggest aim is creating a successful mobile app.
But there is something more!
The mobile app development process should be understandable and uncomplicated for a client. Sometimes it is overlooked by various software houses, which promote their complex process, consisting of 8 or even 10 steps to complete the project. You may ask, how many steps should a perfect process include? 10 steps may overload our mind and make it difficult to proceed. As an example, we may take a look at one successfully established process, which most of us know and have completed. In the e-commerce world, a checkout operation is divided into 5 steps:
- Delivery address
- Place an order
We may call ourselves the perfect online shopping people, and the reason is that for us, the whole process isn’t complex to adopt. Adding one more step may contribute to the collapse of checkout conversion, and as the result, the efficiency of online shopping. And we don’t want to let it happen — neither do e-commerce store owners.
Despite that, each app is different and our methodologies are constantly evolving, there is a fairly standard process when developing mobile apps.
In this article, we’ll take a look at each step of the mobile app development process. I will tell you some secrets, for instance, which part is crucial and the most interesting. I hope you will enjoy reading.
1. Concepting & Strategy
This is the initial part of the project, often associated with analysis or discovery. It is dedicated to building an understanding of your business goals and how they are going to be implemented within a future software product. Regardless of what kind of a product is being built, there are always key factors that should be properly defined, for instance:
- A completely new idea: how the user is going to be involved in a monetization model (startup case);
- Optimization of certain processes within the company by using a mobile app: how to reduce the time spent on some routine operations (enterprise case).
When you enter this stage, you probably have an idea for building an app. That’s good, but you should focus on the problem of target users better than the idea itself. There are typically many options for how achieving a customer’s goals with an application. Through excellent communication with software development team, you can determine the best approach to deliver a great application. In this phase, you will:
- Identify the app users
- Select a mobile platform for your app
- Define the project scope, main software features, and business goals
- Conduct market research and competitor analysis
- Divide features and user stories to the core ones (Minimum Viable Product) and for further implementation
- Identify the skills and team members needed for your project
- Detect and cover risks
- Prepare SWOT Analysis and monetization strategy (for commercial projects)
This phase is essential because you lay down the necessary groundwork for what is to follow. The detection of mistakes in this phase is much cheaper and less time-consuming compared to further stages of the app development process. A typical concepting and strategy phase could last 1-2 days for a small project, a week for a mid-sized project, and about two weeks for a large and more complex project.
Outputs: SRS – software requirements specification consists of features map with use cases for MVP and technological stack, larger projects usually get proof of concept.
Outcomes: project requirements and risks.
Biggest mistakes to avoid: taking an app idea for granted, as well as guessing which features are crucial for the target group of users. In a worst-case scenario, you may overlook this phase, not identifying risks and a full scope of the project and moving on to the next phase.
The target of discovery work is to be able to provide a solid estimate for implementation. In my opinion, it is the most crucial and interesting part of each software development process. However, it’s up to you how you exploit the opportunities of this stage. You can totally immerse yourself in an emphatic journey through the minds of users, discovering their hidden desires and needs, leaving what was certain and opening to new ways of achieving your goals.
2. Product Design UX & UI
Once the idea has moved into the project initiation phase and the essential elements have been fleshed out (who, what, where, when, why), the design phase of the project should begin and the project initiation team will then be formed based on the scope and complexity of the project.
The success of a mobile app is determined based on how well users are adopting and benefiting from all its features. The goal for product design UI/UX is delivering seamless and effortless user experiences with a delightful look.
The first step of your mobile app design process is to select data and functionality needs to be presented and organized. Typically, we begin this process by writing down a list of features we want the app to perform and a list of what needs to be displayed somewhere in the app. We create information architecture for an app.
Now, the ideas start taking its shape. Once we understand what we are developing, we will create wireframes which are conceptual layouts, also referred to as low-fidelity mockups. They give visual structure to your app’s functional requirements and enable us to explore the problem and define the solution at the same time. It frames our current understanding of the problem, while also helping us to figure out possible solutions. Besides wireframes, there is also something important to do – user workflows. These are the pathways, which users can travel within your app. Consider each of the things you want your users to be able to do and see how many clicks are needed to complete that action. If something takes a few clicks to accomplish, that might be fine, but it should not take a few clicks to perform common tasks. Your feedback on the stage is very important and we are ready to make changes until you are 100% satisfied with the vision of the product.
After your feedback is fully implemented, the vision of the app becomes much more colorful, and that’s why UI designers come to play. Their role is to create building blocks of your app’s design. Having a sound style guide will help tremendously with your app’s usability. There is a lot that goes into determining an app’s style guide. The app development team needs to consider who you are and who your customers will be. Is your app going to be used at night? Then maybe a dark theme will work best, as to not blind your users. The output of this phase is a set of colors, fonts, and widgets (buttons, forms, labels, etc.) that will be drawn from in the design of your app.
Now, we have everything we need to build a high-fidelity prototype, which is often developed with the assistance of tools like Invision. They are highly useful for simulating the user experience and the app’s workflows expected from the finished product. While prototype development can be time-consuming, the efforts are well worth it, as they offer early-stage testing of your app’s design and functionality. Often, prototypes help identify modifications to the app’s proposed functionality. We strongly suggest that, as far as possible, changes to the product be made in the app prototyping phase. They are a lot cheaper, easier and faster to work with, as the actual mobile app would be.
Outputs: information architecture, user flows, low-fidelity wireframes, click-through low-fidelity model, style guide, high-fidelity mockups, clickable prototype
Outcomes: you get a feasible and well-designed prototype ready to be tested by real users, in order to correct mistakes before coding phase starts
Biggest mistakes to avoid: focusing on how an app looks like, misunderstanding and often overlooking UX designer role in the whole process.
The product design phase is not just about how your app looks like, but it’s about how a user will experience it. Vinod Khosla of Khosla Ventures best explains it: “Design is a way of making technology useful.” Lucky us, that we have app design, which is cheaper and faster to develop before the appropriate coding phase and we can not only imagine how the product will look like, but even see and test it with the real users.
After defining every small detail of the mobile app and visualizing them into a single screen, we can move to the coding process. We consider designing phase output as input for the coding phase. The basic role of this phase is to convert designing into code using the programming language chosen in the ‘concepting & strategy’ phase. The well-developed code in this phase can help to reduce the efforts required for testing and maintenance. This is generally the longest phase of the software development lifecycle (SDLC).
The mobile app development is an iterative process. You may have heard the term “sprints” or “agile methodology.” This basically means that you break up all the development work into smaller milestones and build your app in a series of cycles. Each cycle includes planning, development, testing, and review. Before appropriate writing code starts, developers along with project managers define some standards, version control system and other development tools.
The planning phase of each iteration involves dividing up the list of tasks into smaller chunks. Developers often estimate the time needed to complete each task so that the tasks can be evenly distributed to ensure a balanced workload during the sprint. We use Jira to have full control over app development project. Our clients usually get free access to see task assignments, time estimation and work progress in order to be up to date with the project.
Now, it’s time for the real coding. The development team begins implementing the styles and functionality of your app. At ITgenerator, we use agile software development methodology. We work in 2-week sprints and have a product demo for the client at the end of every sprint. This approach helps us be closer to the clients and better understands their needs. Having regular feedback enables us to save time and the client’s money. Working together like this makes for a high-quality mobile product.
As problems are discovered in this phase, reassign tasks back to developers so that the problems can be resolved and the issues closed out. Once testing has been completed and each task is done, we move on to review. At the end of each sprint, we talk with the client and determine how the sprint went. It usually connected with releasing another demo version of the app.
Outputs: the source code of an app, library, executables, user manuals, and additional software documentation.
Outcomes: fully developed MVP product ready to be tested.
Biggest mistakes to avoid: low-quality code, final product at the end without demos in the middle, poor communication.
It is the most mysterious phase of software development. Suddenly, your vision turns into a real product. What you have no control over is the quality of the code written by the programmers. You simply have to choose a good mobile app development company who employs experienced programmers on a daily basis. On the other hand, you may have control over how your product develops. Your activity in this phase should not be less than during the design one. You are close to the end of the project, but there are two more stages left.
Quality is given importance at every stage of the development. But, this is the stage where we make sure that every aspect of the app is working as you desired. Being ISTQB (International Software Testing Qualifications Board) certificated member, we follow standard testing methodologies not only at this stage but in the whole app development process. There’s a major misconception that software testing is a post-development activity aimed at finding bugs and delivering anticipated outcomes. But an experienced tester would know that software development and testing are executed simultaneously.
Most testing should be performed by non-developers or at least people who are not your app’s primary developer. This will help ensure a more genuine testing experience. Based on ISTQB we provide for 20 different types of testing, but experience has shown that these provide the best quality in relation to the time that will be spent on testing. These typically include the following:
Usability tests – a critical step in mobile app testing is to ensure that the final implementation matches the user experience created by the app design team. Visuals, workflow, and interactivity of your app are what give your end users first-hand impression of your app.
Functional tests – we check all functionalities in the application. It seems obvious that if an application offers e.g. QR code scanning it should work, but when looking through the opinions of users of various applications available in Google Play or AppStore, it turns out that this is not the case at all.
Volume tests – an important test that will protect us from unexpected problems that may occur one month or one year after the publication of the application. As the number of users in the application grows and the number of data increases, it may occur that the application is running slower or it may not be possible to run it at all because the system was not prepared for data overload. In short, we fill in an application or system that connects to the maximum amount of data and look at whether it works or not.
Performance tests – usually it is an automatic test, i.e. the machine simulates the user’s continuous work with the application for 24 hours. If the application is still working properly after 24 hours, we can predict that it will also work after 48, 72 and a month of normal use.
Security tests – it can help ensure there aren’t any loopholes in the software that may cause data loss. The sets of tests are meant to attack the app to identify possible threats and vulnerabilities that would allow external persons or systems to access private information stored on the mobile device.
Device & platform tests – it is important to test on a dozen or so (5-15) most popular smartphones. The most common mistake is to check the application on one model of their smartphone. Then it may turn out that on 5 other models the application does not start at all, or in the best case part of the functionality does not work properly or it displays poorly on different screen sizes.
Outputs: Test Logs, Test Incident Report Log, Test Summary Report/Findings Report.
Outcomes: fully tested beta version of the app ready to be deployed.
Biggest mistakes to avoid: checking and testing the application on only a few smartphones.
In mobile app development, it’s a good idea to test early and often. Doing this will keep your final costs low. Refer to the original design and planning documents while building out the various test cases.
5. Deployment & Maintenance
Finally! The moment we’ve all been waiting for. The last phase is about transitioning the finalized application to the users. The objective of the deployment phase is to make the developed software operational in a live environment. There are two main components of deploying your mobile app to the world. The first involves deploying your web server (API) into a production environment that is scalable. The second is deploying your app to the Google Play Store and Apple App Store or on internal, corporate ground. Usually, project managers should responsible for the successful execution of software deployment. Reviewing deliverable, status of the deployment and reporting to management should be done by them.
It would be incredibly naive to think that the mobile app development process ends when the app is shipped. According to clutch.co, the maintenance of an app constitutes approximately 50% of the product’s initial price in the first year, 25% in the second year, and between 15-25% for every year after. Most applications (52.8%) are updated once per every 6 months. On the other hand, almost 30% once a month or more. The appearance of new versions of operating systems and hardware can be considered the most common reasons for updates. Modern programming languages are also replacing older solutions. At present, Objective-C migration to Swift and Java migration to Kotlin are observed. Other costs include data security (infrastructure, monitoring) and vulnerability detection. Therefore, you need to save money, as well as your energy and caution until the last phase.
Continuous monitoring and analysis of information can’t be overlooked in this phase. Fabric’s free toolkit solves many of the application monitoring issues:
- Crashlytics offers us application crash reporting with an overview of statistics related to range and retention.
- Appsee allows you to track the most frequently selected elements of the UI. It allows us to better understand how users use our application and to detect errors in UX.
Outputs: Deployment schedule, released version of an app in the app stores or outside of them
Outcomes: the first and infinite subsequent release of your app
Biggest mistakes to avoid: not having a budget to develop an app, after hearing feedback from real users, not monitoring users’ behavior inside an app
As your application gets into the hands of users, feedback will pour in, and you will need to incorporate that feedback into future versions of the app. Typically, as soon as the first version of the app is released, the development cycle begins anew. Make sure you have the resources to maintain your product. Apart from the money invested in building a digital product, keep in mind that it’s a long-term commitment not only to your product but also with software development company.
Thinking of creating mobile app development isn’t as easy as it would be, but it needn’t be so difficult. In my opinion, the goal of the mobile application development process is to open your mind to a completely new solution for your final product. It isn’t a rocket science, nor a piece of cake. It’s something in the middle.
Published at DZone with permission of Piotr Juszczak, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.