Understanding and enhancing the Mobile Application Lifecycle

img

At the present time, where mobile app development is getting commodity in IT departments of middle size and big companies, in agencies and standard software supplier, not the whole mobile app lifecycle is taken into consideration. The development process (!) is getting more and more streamlined through better coding tools (e.g. Eclipse ADT or XCode), code repositories like GIT or SVN and diverse testing tools like Crittercism. What app supplier not always understands is, that an app has a lifecycle and creating an app is not a process. Nowadays, topics like quality assessment, feedback and testing by real people in real environments is hard to do and mostly not easy to control. Additionally there are problems regarding versioning of apps and delivering the right app versions to the right people. To cover this app lifecycle we need to understand the “Mobile Application Lifecycle” concept.

Mobile Application Lifecycle

Identify!
The round trip starts with steps, every professional app developer or supplier already knows, the identification of what use cases should be implemented. The job consists of multiple tasks like identifying target groups and identifying the business need and requirements. Additionally technical aspects like target platform, devices, development technology and tooling has to be taken into consideration.

Concept!
The next step to high quality apps is the conception step. Workflows need to be defined, wireframes created and afterwards, the technical feasibility has to be proven. Often you can already create prototypes of the app in this step.

Design!
The so-called user experience (UX) is one of the most underrated elements in app development. After the workflows and controls are defined and created, the styling, colors, images, fonts and more need to be generated and properly arranged. This is what the user feels and sees, when he uses the app.

Develop!
This is probably the most known step in the app lifecycle. Use development tools to write the code you need for your app.

Build!
Dealing with certificates and signing an app correctly can be a hard task especially when you do not want to do it manually for each build. Continuous Integration tools like a Jenkins server can help you. Correctly configured these tools help with building artifacts of complete apps automatically each time you commit new code.

Test!
Automatic testing is a lot of work, but in nearly all cases it is worth the effort, because you do not need to test everything manually again, when you deploy a new version of your apps. Further tests done by the developer in the emulator do not guarantee that the features will work in a real environment. Tools like Crittercism also support the testing process massively.

Review!
After building and testing your app internally you finally need the feedback from your stakeholder, reviewer or approver. How do you do it? Do you provide him an .ipa (iOS app) file or .apk (Android app) file via e-mail?

Product or project managers should have a possibility to give you quick feedback in case of bugs or problems. Additionally this process should be done in iterations, which makes it complicated.

Further problems can occur when wrong people receive a review or development version of your app. So why do not use a professional tool for this too, as you do it for other steps too? Enterprise app stores make it possible to manage the whole app lifecycle. They provide defined and approved processes for receiving feedback and releasing the correct versions of the right apps to the right people.

Deliver!
The delivery of the right apps to the right people is the next challenge. When you develop public apps for public app stores it is not a big deal, because you use mechanisms which are implemented and delivered by the big guys (Apple App Store, Google Play Store,…). When you develop enterprise apps it gets harder. How do you define who can see which app in which state? How do you receive feedback? How do you approve apps? Enteprise app stores can cover all these tasks. Classic MDM (mobile device management) tools just provide the possibility to deploy or not to deploy an app to a device, but not the management of the whole app lifecycle. With MDM tools you do not have the possibility to comment or rate an app, approve and release an app and get more information to an app. So why not use a professional tool for these step too, as you do it for the steps described before. Why not using an enterprise app store to keep all people in each app state informed about the newest apps for them and simultaneously receive feedback from them.

If you let develop apps for you, the app agency or your app supplier can deliver the correct apps to the right people in your own corporate app store. Especially when you have multiple apps and/or multiple app suppliers, an enterprise app store will work as a gateway for your entire suppliers.

On the other side, as an app supplier or agency you can professionalize the process to deliver apps to your customers and involve them early in the app lifecycle to receive quick feedback and don’t hassle with deployment challenges.

Use!
After deployment the user can simple get an enterprise app from the enterprise appstore app, because the usage concept of app stores is known for every smart device user. User involvement and making app delivery to them as easy as possible drives the adoption of apps in companies.

Maintain!
During the active usage of the app, you need to monitor and maintain apps. Upcoming bugs or feature requests from the users in a productive app state need a way to be integrated back in the first states of the app lifecycle. This can be realized with an enterprise app store in a similar way the reviewer give you feedback.

After all app development is not a process but a lifecycle. Enterprises and agencies need to understand that it is very important to continuously deliver high quality apps and improve apps continuously. On the long term users will not use apps, when they are not improved continuously.

Therefore my advice:
Streamline and enhance the app lifecycle with professional tools.

Mobile Application Lifecycle

Core benefits of tools for the app lifecycle management:

  • Central Management
    • Centrally manage the lifecycle of apps independent of platforms
    • Quality assurance
      • Rise quality of apps through review processes and quick feedback by stakeholders back to the developers
      • Install quality gates for app supplier
      • Early involvement of all departments and stakeholder
      • Receive Feedback during whole lifecycle
      • Managed Delivery
      • Rise Reputation
        • Through professional tools app developer (IT departments or agencies) rise their reputation and show that they control the whole lifecycle
        • Manage different app versions and development states for different user groups
  • Manage different app versions and development states for different user groups

One thought on “Understanding and enhancing the Mobile Application Lifecycle

  1. Pingback: Understanding and enhancing the Mobile Application Lifecycle | Qualidade de Software

Leave a Reply

Your email address will not be published. Required fields are marked *