Tuesday 23 August 2016

Mobile Device Testing: Strategic Private Cloud

With the enterprise app market growing at an exponential rate – with expectations of it to grow 27% in 2016 alone – businesses are asking more and more questions related to mobility development, testing and support. A question that we commonly hear is, “how should we protect strategic data on mobile devices used to build, test, and support apps?” We’ll dive into some details below, but the answer looks something like this:


Mobile devices have become the dominant venue for delivering customer-facing, B2B, and workplace apps as enterprise IT groups move from “mobile first” to “mobile everything.” While mobility brings ease of use to end users, enterprise IT faces massive challenges brought about by the enormous variety of device types and software platforms in the market. Moreover, development and testing has dramatically changed – in earlier, desktop-Web development, the number of test cases largely determined quality, since there was little variation among browsers. In mobility, however, quality is determined both by the number of mobile device testing cases and the variety of devices tested.

At the sunset of desktop Web’s dominance, its development hums along using Agile methodologies and DevOps capabilities; enterprise IT is able to leverage virtual servers to facilitate rapid change, continuous deployment, and to closely align production and test environments. However, more apps, higher end user expectations, and the burgeoning proliferation of mobile device types quickly bring chaos to the “mobile everything” enterprise, and DevOps gains can grind to a halt.

For enterprise apps, new technologies are needed to bring order to the chaos of mobile development. The new core of the infrastructure is the mobile device cloud that can easily make a variety of devices available to developers and testers and can deliver key DevOps capabilities. A mobile device cloud must perform well, offer scheduling and DevOps capabilities, and be secure. As the core component, a device cloud can speed app delivery, reduce capital outlays, and reduce rework costs.


Wednesday 27 July 2016

Enterprise Mobile App Development from Start to Finish



Ever wonder how major companies like Amazon or Rovio (the makers of Angry Birds) develop their apps?

The Conceptual Phase

It starts with a simple idea: to solve a problem, to add convenience or to entertain.

Many times it’s a combination of these 3 things.

In the case of Amazon with their shopping app, they are adding convenience for their shoppers while Angry Birds entertains.

However, coming to the conclusion of what a company wants to address with their app can be quite complicated for a large corporation. While it can be fairly easy for an individual developer to create apps on the fly, large enterprises must take much more into consideration.

If you were Amazon, would you want your app to do everything Amazon’s site can do? Think about it for a second; their site does much more than shopping. It does music and video streaming and rentals, cloud storage and much more.

So should there be separate apps for all of these things, or should there only be one app? Too many apps and people might not download them all and millions of dollars will have been wasted.

But an app with too much going on can be cluttered and not work well, again costing millions or even billions of dollars in fixing, testing and unhappy customers.

Amazon thought it was better to have separate apps which is why they have a shopping app, a music app and video streaming app and you can bet that hours and hours of thought and deliberation went into that decision.

The bigger the company, the more there is at risk when it comes to their apps.

In the case of Amazon’s shopping app, they had to take into consideration how the app interfaces with their backend order processing system, ensuring customer service issues are routed correctly on the backend, providing the same look and feel of their website, and incorporating their powerful search functionality on their site into the app.

 

The Research Phase

 This step is often overlooked which can prove disastrous. Who is the app intended for? Children, adults, teens? What devices will the app be installed on? Androids, Apple, both?

Which Android and Apple devices? iPhone 6s and iPhone 4 are very different machines and yet a significant portion of the population still uses iPhone 4. What about Samsung S7 versus the Moto X? They both use Android yet they’re very different iterations of Android.

It’s absolutely crucial to do the research first because developers must code and design for hundreds of different devices and dozens of different software versions. If even one of these gets overlooked, it can upset a significant portion of the user base which can cost millions for large companies.

The Development Phase


Once the big decisions are made, it’s time to start developing.

This will usually start with a process called “wire framing” which is basically sketching the app out using either the simple pen and paper or using a mock up software like Balsamiq in order to layout the menu structure, levels, backgrounds… All the basic elements of the app.

Now that a non-functional wireframe is in place, it’s time to start coding.

The developers will work from the same developer kits that anyone would use. For Android, they would use an Android SDK and for Apple they would use Xcode.

From here, the dev team will start adding functionality to the wireframe: linking buttons and menus, animations and transitions and more.

The app will be coded until it resembles the desired final product--artwork, colors and all--along with tracking by Google Analytics. After that, it’s time to start testing.

Alpha Testing

Here comes the part that most people, outside of the app dev world, have no idea about: the testing phase.

Many have heard of beta testing but in order to have beta testing you have to have alpha testing!

This is when the devops team will engage in automated testing and manual testing. This can become extremely time consuming though if one does not have the right tools for the job. There’s an entire industry of mobile device testing companies that provide testing services to enterprise-level organizations. 

These companies allow enterprises to efficiently automate and manually test apps via “real device solutions” or emulators.

An automated test will run scripts, that mimic interactions with the app, hundreds of times in a short time period to gather data on the performance of the app and make sure it is running smoothly.

Manual app testing is exactly what it sounds like: manually testing the app with your own two hands.

Both of these are absolutely crucial to make sure the app performs as expected.

After there is enough data from the testing phase, the app will go back to the developers to implement the required changes to fix any bugs found during the testing phase where it will then go back into testing and back to developing until there are no more bugs to be found.

It’s incredibly tedious, but bugs make unhappy users, unhappy users uninstall apps and tarnish a brand’s reputation which costs money. Lots of money.

When there’s millions, or even billions on the line, a high performing and well-polished app is a necessity in today’s world.

Beta Testing

 Some, but not all, enterprises will then move into private or public beta testing or both.

This is when people outside of the development team get to test the app.

Private means that only internal employees start testing and public means the general public can start testing.

This is typically done on a limited level with only so many beta tester slots available.

An effective bug report system must be in place so that beta testers can report any problems to the dev team.

Why go through a beta test when the company spent so much time alpha testing?

As important as automated testing and manual testing is, these tests are done under controlled situations. Developers know what the common bugs are and how to test for them but that leaves out a critical element: the users.

The users might not all be tech savvy so they will interact with the app in different ways than the Quality Control team would. 

Launch Day!

Alright, the app has been tested hundreds of times, the development team has dark circles under their eyes from countless sleepless nights… And now it’s finally time to release the app.

This is the big day and yet the actual process is fairly anticlimactic.

The app is submitted to the Android or Apple store and then the waiting starts. The app is typically available immediately on the Android store while Apple, who has a much tighter quality control process) can take several weeks.

Post Launch

Once the app is in the public's’ hands, it becomes a matter of monitoring the performance via Google Analytics and continuous testing to ensure everything is running smoothly and any needed fixes are prioritized and fixed in a timely fashion.