Getting both high speed and high quality in the mobile era

Think speed and quality are mutually exclusive? That might have been true in the past, and many IT organizations still bemoan the days when they had more time to thoroughly test every bit of code multiple times before a big annual software release. Today, continuous release cycles for mobile devices have all but wiped out those leisurely days of testing and re-testing. But when Discover Performance spoke with Shamim Ahmed, practice director of application lifecycle and testing at HP, he made a surprisingly persuasive argument for why the speed of today’s development cycle can actually improve quality, not jeopardize it.

Shamim Ahmed: That’s right. With mobile, instead of one code drop a day, you’re sometimes doing multiple code drops a day. So everything the Apps team does is highly accelerated compared to the traditional pace of development. In a way, it’s a very good thing because it forces customers to actually think about how to do this right. And if you don’t, you’re going to have poor-quality applications in your app stores or you’re going to start falling behind your competition. Now that mobile is driving development, apps must be relevant. They have to be current. They must have the coolness factor and all of those things—but none of that matters without the quality.

Q:Speed and quality are often totally incompatible. How do you see customers balancing this speed-versus-quality conundrum?

SA: Well, in the old paradigm, you could test quality. Even if your product had a lot of bugs, you would go through so much testing that you would eventually catch them all. In the mobile world, because of the accelerated timeline, you don’t have the luxury to do that kind of slow, deliberate, repeated testing. That means you have no choice but to build quality in from the start. That means your development process has to be extremely sharp. So the fact that mobile applications are relatively small and not really complex actually helps quite a bit. A traditional app might have millions of lines of code, so it’s very difficult to keep up a high level of quality in all parts of the system. In mobile, you’re delivering a much smaller application, so you should be able to build in a higher level of quality.

Q:Coding tools are keeping up with these changes, too, so developers don’t have to do a lot of their work by hand anymore. Does that build in quality?

SA: Absolutely. A lot of mobile applications are generated by systems in which you do mockups. In other words, you’re actually using code generators. You describe the layout of the system and the behaviors of the system, and these tools generate code for you. So the quality of the applications you generate is much higher from the very start. You’re not creating them from scratch and introducing all kinds of human errors that somebody else will have to clean up later.

Q:So given this higher-quality starting point, how is testing changing?

SA: Well, because the application is small, you can afford to test every part of it in a relatively small timeframe. You can actually create a test set to test every nuance and every bit of the application in a matter of minutes, making the testing potentially much more thorough than in the past. We also encourage our customers to use automation to test across a variety of different devices so there are no surprises. You don’t want to find out in production that it works on an iPhone but not on a Samsung, for example. So we’re helping customers create labs with a variety of devices, device types, and operating systems, and have the application tested concurrently across all of them in minutes. So you get instant feedback.

That’s how our customers are balancing speed-versus-quality. And I think a lot of them are finding that if they implement the right processes and use the right tools, quality can actually be easier to attain than ever.