Last year, Sundar Pichai, head of the Android and Chrome teams for Google, announced Google Play offers more than 1 million apps. Shortly thereafter (and not surprisingly), Apple CEO Tim Cook announced they too had 1 million apps available in their store.
Such strong numbers truly demonstrate how big, strong and healthy the mobile app ecosystem has become. However, to a developer creating a mobile app today, these numbers are horrifying.
With more than 2 million consumer apps vying for the attention of mobile users, in addition to all that will fall in with Amazon's announcement of the Fire Phone, competition and push for user engagement has become fierce. This, coupled with the bring your own device (BYOD) phenomena, is also affecting the enterprise. Consumer app experiences are dictating the enterprise app experience - if the app isn't easy-to-use, employees will find workarounds with the consumer apps that they know and love.
To be successful in this competitive space, mobile apps must offer exceptional experiences, which is far easier said than done. Exceptional experiences are not the product of magical ideas, hiring UX experts or buying tools and services, but rather the result of a continuous cycle of listening and adapting throughout an entire product lifecycle.
There are seven essential steps, when used within the context of a listen/adapt loop, to help enterprise teams deploy successful mobile apps, which will be adopted in accordance with overarching business needs.
The start of mobile app design begins with assumptions rather than facts. Whether right or wrong, the more time spent acting on these assumptions, the less likely developers will abandon them. This is the result of an inclination known as "loss aversion," which causes us to prefer avoiding loss, even to acquire gain. To compensate, the development team needs to acknowledge this weakness and avoid over-committing to poorly developed paths.
Disposable implementations of a mobile app implies the project is trivial to acquire and painless to lose. It's this quality, particularly in the beginning stages, that makes it easy for developers to pivot in new directions. Pivots enable development to quickly hone in on the best experience for the mobile app. And while many developers will be compelled to immediately start writing code with this pivot in mind, the time-consuming process makes it difficult to casually dispose of a product and makes the exercise counterproductive.
Therefore, avoid writing code and instead test ideas by iterating through wireframes, mockups and prototypes. Consider starting with low-fidelity, non-interactive wireframes (sketches) and transitioning in steps toward high-fidelity, interactive prototypes.
Tools such as Balsamiq Mockups, UX Pin and Telerik AppPrototyper can help rapidly construct (disposable) prototypes of mobile app ideas using a drag-and-drop-library of shapes, adding polish (design detail, interactivity) and gaining confidence in the direction of development, minimizing the time spent coding and re-coding.
The natural rhythm to coding is Write, Run, Repeat - the direct relationship between action and result; doing something and then experiencing the impact of what's been accomplished. During the development cycle, the faster this wheel spins, the more productive development will be.
Previously, software was encoded onto punch cards. After programmers spent hours, maybe even days, inscribing instructions, they would feed the code into a slot and, eventually, get a result. If the desired result wasn't met, they would go back to the drawing board and do it again.
Similar to the 'wait-and-see' approach, when writing for mobile, development teams are dealing with a lot of different devices and form factors: iOS, Android, Amazon Fire, Windows Phone, smartphones, tablets, etc., which makes it difficult to readily experience the impact of the code, increasing distance between action and result.
The mobile development process needs to bridge this gap by making developers immediately aware of code's impact across all intended devices. Create a development process that integrates the SDK, build service and device simulator to provide immediate feedback for quick turnaround and a more efficient process.
At some point during the software development process there may be an unintentional hiccu. In mobile development, it can be extremely difficult to fully understand the impact of newly created code when it can behave differently on each targeted device.
Automated functional testing helps guard against accidental breaks in existing features by "recording" various activities (such as logging in) and continuously playing back these tests on a variety of devices. If a test fails, the negative impact becomes immediately known. It's a simple save tactic to keep progress ongoing.
During the app-building process, it's important to listen and adapt. Stay focused on users, their feedback and the problem at hand. Avoid the overly distracting technical hurdles, of which there are plenty: countless mobile frameworks, data services, Web APIs, push notification services and authentication services. In addition, the services that support the development processes come with their own associated APIs and SDKs to learn.
It is easy to get sidetracked, therefore, work to stay focused on the activities with a clear and positive impact for users. Consider tools and cloud services that can help maintain focus -- Facebook Parse, Kinvey and Telerik Backend Services are excellent examples of cloud-based services available to confront these challenges. These services provide fast scalable infrastructure, APIs and management tools, which enable development teams to swiftly address project requirements.
Anyone within the enterprise can certainly understand the attraction of launching a mobile app on a grand stage. Before committing the kind of resources it takes to create buzz, simply ensure the ideas work.
We're not burning our apps to CDs or disks anymore - shipping doesn't need to happen in one fell swoop. Use this to your advantage by starting small. Recruit a manageable group of early adopters. Ship early and often to these early adopters through personal deployments, rather than public app stores.
Finding these early adopters and making them happy will garner priceless market research that can be funneled into future efforts. Keep in mind, the development process must allow for established, distinct groups of users, building directly to their mobile devices, to get the variety and scale necessary to demonstrate true success.
Getting users to submit detailed feedback by typing on tiny screens is difficult, frustrating and generally very prone to error, which makes the likelihood of constructive criticism much less likely. This is why we're left with the kind of reviews we often see in public app stores.
It's infuriating to be on the receiving end of a comment such as, "This app is so dumb, I'm going to delete it." It has zero constructive feedback to suggest why this person is unhappy or what we should do to fix the problem.
To overcome this challenge, do not be completely reliant on public app store reviews. Give users a way to provide feedback from inside the app. However, keep in mind they aren't going to give a lot of details so look for ways to gather data automatically so the feedback you get is actionable.
Whether or not users send feedback, developers must know the ins and outs of user experiences. Historically, it's been very challenging, if not impossible, to find out exactly what users are doing within an app.
Thankfully, there are now solutions that provide visibility into how users are experiencing the app. By using tools such as Through analytics and measuring user activity, developers will gain insights that can be funneled into the next application iteration.
Successful mobile apps offer users exceptional experience. The seven steps above, when used inside the listen/adapt loop, can help teams drive toward a successful mobile app, one that will be widely adopted and used throughout the organization.