Saturday 11 July 2015

Mobile Application Development Process

Whether you’re building a consumer application or an enterprise mobile app, the process is pretty similar. This post outlines the steps we generally take when mapping out a mobile solution. Depending on the project or client, we may step in at the very beginning to help gather requirements or step in when they’re ready for development and testing. Either way, follow this process or you will save a lot of time and money by clarifying details and identifying issues early on.
Step 1: Identify the Need
Also known as Requirements Gathering, this step sets the stage for development. During this stage it’s crucial to get all the stakeholders together to brainstorm the solution and finalize a feature set and roadmap. As listed below, the deliverables from this step will clarify exactly what the application will do, who will use it, how it will perform, what devices it’ll work on, and most importantly… what it won’t do.
It’s good practice to start building a roadmap during this stage. A lot of good ideas will come out of the brainstorming sessions so it’s good to capture them all and place them on a roadmap. Lately projects are generally built with an agile mentality where it’s important to get the first version in the hands of users ASAP. To reach this point, it’s important to lock down the scope of the minimum viable product (MVP) and work towards that.
The key deliverables from this step include:
            1. Functional and Non-Functional Requirements
            2. Use Cases
            3.API Specification
            4. Architecture and Design
Step 2: Create Mockups and/or Prototypes
Step 2 is where you start to take the ideas from Step 1 and put them into a semi-functional prototype. This step can be done concurrently with Step 1 as it’ll bring clarity to the use cases and requirements.
We often use a tool called Balsamiq which is great for wire framing. Getting a mockup or prototype that you can click through helps clarify a lot of details. Once you have this kind of mockup, you start to identify issues with workflows, use cases, and especially user-experience.
Once the wire frame is complete, share it with the stakeholders and end users. Get feedback from people that haven’t seen the app before and quietly watch them click through the screens. This early user testing will uncover little issues that could cause major headaches down the road.
The key deliverables from this step include:
              1. Wireframes/Mockups/Prototype
Step 3: Finalize the Design and Create a Test Plan
Once the wire frames have been finalized, this is when you can get a UI designer involved to create the actual graphics. With the complete wire frames and an understanding of the application’s flow, the UI designer can focus on improving the user-experience and creating a polished UI. At this step most of the functional questions have been answered so there doesn’t have to be too much iteration in design – at least not many related to scope changes.
Meanwhile, this is a good time to get started on the Test Plan which will consist of Test Cases and execution planning. At Optimus we work within the agile methodology so we get our testers and developers to work closely throughout the development process. This planning stage helps us prepare for that.
The key deliverables from this step include:
1. UI Design
2. Test Plan
Step 4: Development and Testing
Now the fun begins with development and testing. Since the application has already been thoroughly vetted, documented, and designed, the developers get to focus their efforts on putting the pieces together. This is a bad time to be asking questions about functionality and scope as the developers and stakeholders should already have a very solid grasp of the requirements.
By getting a business analyst and the key stakeholders together for the first few steps, the development team can quickly get up to speed by reviewing the deliverables and being shown the mockups.
Inevitably some new questions will be raised, but have no fear because that early effort helped clarify the majority of smaller issues. Also it should be noted that developers and testers are considered part of the ‘stakeholders’ group and should participate in the early planning stages. Their input will be invaluable as they offer input on technical limitations and opportunities.
The key deliverables from this step include:
             1. Application code
             2. Test Results
Step 5: User Acceptance Testing (UAT)
Prior to releasing the application into the wild, it’s best to release an alpha or beta to a select group of end users. These users can start to use the app in their daily routines and identify any issues. This helps improve the quality of the application before launching it to a large user group.
It’s best to get a diverse group of users for UAT – especially a mix of devices, expertise, and some users that have never seen the app before.
The key deliverables from this step include:
             1. Documented and undocumented feedback from users
             2. A more functional application
Step 6: Deployment and Support
After UAT, it’s time to deploy the application to the App Store, publish it online (in case of a web-app), or publish to an enterprise App Portal (in case of a private app). Depending on the platform there may be some lag associated with this deployment, but you should keep some resources handy in order to quickly turn around any new issues that pop up. An increased user base will have a wider variety of devices and could lead to other complications.
The key deliverables from this step include:
              1. Deployment and Support Documentation
              2. Finalized copies of the previous deliverables

No comments:

Post a Comment