Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Quality Measures for Enterprise Mobile Development

DZone's Guide to

Quality Measures for Enterprise Mobile Development

Building a successful enterprise app presents different challenges than consumer apps; learn how to prepare for these challenges.

· Mobile Zone
Free Resource

Get gorgeous, multi-touch charts for your iOS application with just a few lines of code.

Enterprise Apps vs. Consumer Apps

Being almost nine years old, the app market for consumers has become highly saturated and mature. On the other hand, enterprise apps are still in their infancy, as companies tend to be late adopters of technology due to budgetary, security, and complexity constraints. Imposing quality standards for enterprise mobile development is a mix of website standards and usability requirements.

Enterprise mobile development serves a direct and lucrative purpose. Companies use apps to increase productivity, streamline processes and offer on the go access to business resources. Consequently, an organization app’s only justification for existence is to provide employees with tools to perform their job faster, smarter and more safely.

The quality requirements are much different from those aimed at the consumer market. An enterprise app is not expected to create emotional engagement to monetize or to trigger recurrent, daily use. Its role is to help employees connect to each other and get fast access to business intelligence or company resources. The graphical interface does not need to be attractive, but useful and easily customizable to the needs of the user. As John Barnett explains, the idea is to make the UI as simple as possible with add-ons for power users.

We will walk through each step of creating an app and assess the quality requirements associated with the respective stage.

Planning

Well Defined Enterprise Purpose

First and foremost, set the aim of the app. As a utilitarian tool, it should serve a clear goal of the company, such as working faster, streamlining processes, or promoting remote work. Try working with a company's decision maker to define relevant KPIs and acceptance levels for what they aim to accomplish through the app. It’s useful to draw maps of intended user behavior and compare them with the company's processes for compliance. It’s important to stick to the most relevant actions that can bring value to the app to avoid overcrowding. Don't create an app just to join the bandwagon!

Responding to End Users' Needs

It’s essential to understand who will be using the app. Will it be for an individual division or the entire company? If the app is intended to be utilized by all employees and they have different technical levels you should first conduct an audit of their IT abilities. The final product should be designed to target low-skilled workers and put in customizable features for more advanced users. You should plan to create training documentation if the lowest level is unfeasible.

Adapted to Chosen Platforms

The combination of hardware and operating system dictates app performance. Make a list of the devices and platforms intended for the app's deployment and ensure you ask about the company's politics regarding BYOD (bring your device). If multiple platforms are necessary, such as Android, iOS, and Blackberry, be sure to include this in development and testing specifications.

Considering Current and Future Needs

Design today for tomorrow by asking the C-suite about the future strategy of the organization. This is the best stage to find out what are their plans for the next 3-5 years and build the app accordingly. Enterprise level apps are expensive and if they are not expandable to new necessities, this could stop growth and innovation. Prepare for the future by using interchangeable modules, not a monolithic approach. An app is valuable if it is adaptable!

Development

Focused on Functionality and Design

An enterprise's app should be like a worker's toolbox: more functional than beautiful. UI rules still apply and responsive design is necessary from the utilization perspective. The customization of themes, personal avatars and the ability to select what to be displayed first helps users to make the app respond to their needs. The interface needs to be well spaced to avoid unwanted commands, but it does not require excellent 3D graphics. A real enterprise app uses minimal resources to perform flawlessly even on the lowest hardware available. Quality means getting the job done!

Including Core Features

Updates, analytics, documents repository, and chat should be core features of any enterprise app. Updates are part of the app's lifecycle and keep it relevant in a world where information becomes outdated every second. Analytics are necessary to uncover what is useful or challenging for the end users. Most of the time, documents and databases are the reason behind building the app, while chat systems power teamwork and including them in the enterprise's app prevents data leakage by consumer apps.

Using API Development

Enterprise mobile development does not mean you must redesign your whole BI system. Just connect what you have in your back-end through API and get rolling quickly. Small companies unable to develop in-house apps due to budgetary constraints can work with third parties for off the shelf or semi-customized solutions. This approach gives the company the opportunity to grow, while keeping the same app.

Managing Security Issues

The most sensitive point of enterprise mobile development is security. This concern has kept companies away from the app world for years. Using APIs makes the apps most vulnerable to hackers' attacks. Safety can be regulated by carefully assigning roles and privileges, as well as putting strict usage policies in place. Depending on the security degree necessary, you can leverage specially created solutions.

Testing

Adapted to Industry & Business

The enterprise mobile solution should help the company achieve their goals while getting some cost cutting or process improvements along the way. Evaluate if the app is fulfilling the role by testing each intended function, from the most common to the more exotic ones. Compare the app with industry standards, consumer standards, and competitors' tools. The most relevant comparison is the one with common apps that perform the same role, including file-sharing, communication or agendas. In conclusion, if your app is harder to use, or slower, employees will continue to use available solutions, exposing themselves to security issues.

Working on Chosen Platforms

Validate your app on the platforms chosen in the planning stage. Test for performance on each of them, emphasizing the most common and the least powerful combinations. If possible, ensure the core functionalities of the app are still usable even when not connected to the Internet. Apps that don't require a permanent Internet connection are better since they tend to use fewer resources and drain the battery slower.

Adapted to Users

During the test phase, it helps to involve a few average users in the process, therefore employing real world conditions. A pilot program can uncover issues before deployment and support the enterprise mobile development process. Let users discover functionalities on their own and record their behavior. Note how difficult is to perform simple tasks and change the design accordingly if necessary.

Maintenance

Updating Schedule & Costs

Due to the dynamic nature of the digital products, a quality enterprise mobile development must include an upgrade schedule. Changes like new OS versions, alterations of the organization's BI systems, business growth or strategy refinement are reasons to make updates to the app. All these changes involve costs which should be in the original package.

Enhancement

Apps are not static inventory items, but transformative elements. User feedback, industry best practices or even trying to get a competitive advantage are all good reasons to enhance the app. When an app is not delivering the value proposition, and users refuse to open it, it is time for enhancement. The development team should monitor the usage statistics carefully, at least during the adoption stage to see if the app is delivering added value.

Management

Management ensures the enterprise app is an investment, not a cost. As with most enterprise level digital products, apps require proper installation, accounts' management, and configuration to ensure security. Installing updates and keeping passwords and access codes relevant are other examples of ongoing tasks. Therefore, a great development team mentions these in the initial contract. The most dangerous situation is to have an app that does not benefit from long term support, quickly becoming obsolete and just a waste of money.

An exceptional enterprise level app is not created only during development and polished in testing. Each stage of production has different quality standards for enterprise mobile development, including planning, and after deployment. The app is a permanently evolving entity, just like the company it is serving. Therefore, it is natural to dismiss a static approach.

Compared to consumer-oriented apps, an enterprise counterpart is more focused on functionality and security, which could translate in less attention for flashy design. The UI is simple, clean and customizable, to offer on the go solutions to worker's necessities. The best apps retain their core functions even when not connected to the Internet and running on low technology devices. The developers should think user-centric and even include real end users in their testing schemes and use their feedback.

Finally, the actual target of the enterprise app is to offer a simple medium for performing the required tasks and quality is present if productivity increases and costs decrease.

.Net developers: use Highcharts, the industry's leading interactive charting library, without writing a single line of JavaScript.

Topics:
enterprise apps ,mobile ,mobile app development

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}