Continuous Integration and Mobile Application Testing: An Interview with Prathap Dendi

[interview]



Cameron Philipp-Edmonds: All right. Today we are joined by Prathap Dendi of Electric Cloud. To start things off, let me thank you for joining us today.

Prathap Dendi: Thanks Cameron. How are you?

Cameron: I'm doing well, thank you. Can you tell us a little about yourself and your role at Electric Cloud?

Prathap: Absolutely. First of all, The Giants just won the World Championship, so I want to give a huge shout-out. Ship.io is literally blocks from Giants headquarters in San Francisco.

So, I'm Prathap Dendi. I've been with the company called Electric Cloud, the leader in continuous delivery solutions in the market. I've been with the company for about three, three and a half years. And what we're super excited to talk about is we just launched a brand new service called Ship.io that's focused on mobile development and testing on the cloud.

Cameron: Fantastic. Now, how does mobile testing differ from testing software for other platforms?

Prathap: Oh, fantastic. A great question. So, I'm a developer myself, even though I wrote really bad code. So I've not written code in ten years. When I was doing Java-based development, testing was a huge part, test cases and test results. Quality of the multi-tiered app was very important.

Now with mobile apps, what's significantly different is how consumerized the behavior has become. So, today my three-year-old will delete an app if the quality doesn't come through. So the quality for mobile apps these days is very roughly defined as how many stars they get on the mobile reviews. Whether it is an enterprise app or a consumer app, the mobile user flows and user experience is a bigger part of testing now than it has ever been for multi-tiered apps before.

Cameron: OK. Now when you talk about user experience, is it more with the patience with it, or is it more of the overall user interface?

Prathap: It's absolutely everything. So, let me walk you through. When I was a part of IBM, we used to ship a lot of software, and it used to be that provider of an app had time to train the user on how the interface works, and what is the outcome to expect from the app?

Now in the mobile Apps, you literally get ten seconds in the user flow. Download it and try it and if you're not in the core value use case in the first ten or fifteen seconds—that's a benchmark now. If the user is not into your first use case by the time he logged in, you already lost him. That's how much the consumerization of enterprise has been impacted through mobile apps.

Back to your question, testing of apps now, it has everything to do with overall user experience, including the functionality of it. So we still do the unit testing, we still do the functional testing, but what's significantly different is things like simulation, crowd-based testing, over-the-air testing, all of these are fundamentally new, that we didn't have in the Java and C/C++ world.

Cameron: You talked about crowd-sourced testing and that type of thing. How important is it for mobile testing to be approached with agile development tools and agile methodologies?

Prathap: That's a great question. You may be aware, about a month or so ago, Facebook made a very public announcement that they'll be launching a new app version every four weeks. Now compare that to enterprise where the release cycles used to be a few months, if not a few years. If you're in embedded software, you're shipping a car, or shipping a rocket launcher. It used to be long delivery cycles. Same thing with multi-tiered apps.

Now with mobile apps, fundamentally, the release cycles have shrunk. Now they are a few weeks or even less. So, as a result, companies have redone their processes out of mobile.

So they want the very quick ability to make changes, almost feature-level changes, and a big part of release strategy for them is being able to do A/B testing, cloud-based testing. As you know, apps get tested in—you're able to do it—in a different market before you go for a general launch. That's where mobile testing is these days.

So agile is such a natural fit for mobile app development than it has ever been for software development in general.

Cameron: OK. Now, Electric Cloud's resent acquisition enables continuous integration for mobile application testing. Why is continuous integration something that a mobile tester should be interested in?

Prathap: That's a great question, Cameron. So, if you look at the value continuous integration has been providing from a developer angle, it's something that, in the enterprise for the big apps ... it's some sort of good behavior, right? So you want to have shippable code at any given time and that's what drives continuous integration, and continuous testing, and continuous delivery. So, it's almost good to have in big enterprise and we've been doing a very good job. Electric Cloud has phenomenal success with great customers in that space.

Now for mobile, especially for mobile app developers who are struggling with very quick turnaround windows, continuous integration gives them shippable code every given time. And they're a small team, too, compared to the enterprise multi-tiered apps. They tend to be small team, they do paid programming with a UX person, a tester, and others in the value chain. For them, the technical debt of having code that's not integrated to the trunk is just not even a consideration. They want to check code and they want to have tests run on it, the pre-flight test, they want to do it almost instantaneously.

Now, Electric Cloud, when we wanted to build this mobile solution, when we looked at the market, we found that our same customers that use Electric Commander, and Electric Accelerator for their continuous delivery, the big web apps and IT apps, customers like GAP, customers like E-Trade ... they're approaching mobile differently.

They have splinter groups of mobile app developers and testers and they're all coming to stage of maturity where they say, "Look, we want to have a system now in place that has a nice release pipeline right from build all the way to release, for mobile apps." They were looking for it and that's where the magic is.

So, we looked at acquiring companies in the space and we found a company called Cisimple that was the market leader, it's an AngelPad invested company, is a market leader in doing CI right. Not using legacy systems like Jenkins for mobile apps, but something that's native and custom built, for iOS.

Something that really understands what goes on in Xcode, cocoa parts, and write a custom build system that's super fine-tuned for mobile apps. Same thing for Android, right? Understanding what Android's build system looks like, supporting Gradle. That's what Ship.io is about, right? It's purely focused on mobile app builds, tests, and reads.

Cameron: So it's really making your mobile applications—the agile aspect of it, really—actually, very quick and agile?

Prathap: Absolutely. Today, the workflow should be so simple, right? So you are a mobile app developer, your code is on your source configuration whether it is GitHub or ProForce. When you come at it, you automatically start the pre-flight and the CI builds, right? Then you want to automate some the tasks, you want to do some on-device testing, you want to do over-the-air notifications to other employees of your company that want to test it, or partners. That is the service that we build at Ship.io.

Cameron: OK. Now with any kind of testing, some people fall on the fence of always wanting to automate everything—do a lot of automation testing. Now are there some things with mobile testing, that no matter how convenient automated testing could seem, should always be done by a human?

Prathap: Yeah, that's a great question. So, if you look at the flow-release cycle of an app, the first unit test developers do, invariably, is their domain, right? They always make sure the code is working and they check it.

Now as you go from simulation to real on-device testing to user testing or A/B testing, there are places where you really need human hands and eyes.

There are two reasons for that. One is, the apps that they're writing for the platforms, iOS platforms and Android platforms, they're always changing. The look and feel and how deep they go into the native SDK versus using a cross platform approach. It's always changing, so you always want to have your simulation done manually. You want to make sure the experience is there. So, there's always manual testing.

Then as you go into the over-the-air cycle, you are probably doing some feature based testing, right? You have two user flows for the mobile experience. You want to make sure which one of them is getting the users, very quickly, to the core of your value proposition. And that we still see customers rely on physical user testing.

Cameron: OK.

Prathap: There is a lot that can be automated and that's on the increasing curve right now. Performance testing, on-device click-a-round, all that can be scripted and that's being automated. We have wonderful partners like AppThwack that provided on-device testing for us. And there's a good amount of manual and automated testing.

Cameron: So it kind of links back to that whole thing we talked about at the beginning, as far as the whole user experience package. You kind of have to have a human touch to give that layer of satisfaction.

Prathap: Absolutely.

Cameron: Now, how does continuous integration relate to continuous delivery and why is continuous delivery important to mobile applications?

Prathap: That's a great question. So, if you think about the goal for every developer and every app owner to be having a shippable product, in this case, a shippable mobile app. Continuous integration is a developer-centric process, right? They want to make sure the code that they write is on the main branch and they're not going to break anyone else's code.

Now what makes it continuous delivery is making sure it's actually tested and it's release ready. Same thing on the deployment side. So, there are steps. Whether it's an Android app or iOS, there are specific steps the developers need to go through before it gets accepted on an app store. And all of that, unless you automate it on a release pipeline, and that's the continuous delivery for mobile apps.

Where we've seen a lot of pain for customers is a lot of configuration issues that can go wrong. Somebody forgot to put a signature, or somebody didn't do the code signing that your app store requires you to do.

Now, none of that is rocket science, but because there is so much going on and if you don't automate it, you are bound to have a failure and your app store rejects your app upgrade and you lose it by a week and you happen to be in the right seasonality and your app doesn't make it, you've lost that business because, as you know, the top five apps in the app store at Google Play get the lionshare of the business.

Cameron: Right. They're monopolizing.

Prathap: Right. Monopolize it. Now if you had a hiccup because of some configuration issue, then you lost it. So continuous delivery becomes really important when you have mobile apps as your main product and you rely on it being high-quality and on time. Continuous integration, kind of, stops short of the full release cycle. That's what we like about Ship.io, it's your full system on the cloud. You simply need to hook up your code and every time you connect, it automatically gets compiled code in your build cycle and you have the automated test running, on-device test running and the OTA you can hook up. The notifications come to you, "A/B failed, or OTA worked." You just need to react when you get to there.

Cameron: All right. Fantastic. Ship.io sounds like the full package here. To round out the interview, let's talk about the full package here, including you. You have a deep international business development background in software, hardware, services, and cloud computing. Technology has drastically changed our ability to operate within various boarders. In your opinion, how has cloud computing aided companies in developing international relationships and how does it help create a more approachable international community?

Prathap: That's a fantastic question. To answer your question, I've never seen this kind of a straight-through processing, an ability to connect across the boundaries and today it's Ship.io. I worked for start-ups all my life, with the exception of IBM, and IBM is a massive international company, I've never seen the straight-through connections that you get when you have a global service like this.

We have users coming from Argentina, from Poland, India, China, Russia, and a lot in North America. The community is, especially the mobile [community], they are truly sharers. They're solving problems. They've had users who use our SDK [software development kit] to fix something that we didn't even intend to have, a new feature. They coded a new feature in the integration, they share with others.

So, they are truly a mobile first generation that came to work through social media—Twitter and Facebook. So, they are by nature sharers and to answer your question, the internationalization for mobile is such a natural thing. Whereas, in earlier models we really had to to have, "Oh, Click here." "Sign this agreement." "Download software." "Let a salesperson call you and go through the value." None of that, right. So people, they have a problem, they're going and searching on Google and Twitter. They find Ship.io, they log in, and they talk about it, without even me, being involved. They talk about the value they get and they share and, as a result, our week-to-week, if you follow our sign up, we now have thousands of users up there. We didn't spend a penny on marketing.

Cameron: Wow. That's amazing.

Prathap: Right? Same thing with partners. People like TestFlight and HockeyApp. All our partners have heard of us and they reach inbound and say, "Hey, here's a great idea." "We can work together." Slack and other partners they reach out because they see this kind of usage and value creation on the cloud. And it has made our lives really simple because we focus on creating more value rather than having to market or sell these things. So, it's been a phenomenal experience for me.

Cameron: So you say that mobile and the cloud have definitely made the ability for a large community to do great things and make it look smaller?

Prathap: Absolutely, absolutely. There's no formality that people can connect and they're sharing things and they're sharing use cases and giving us a ton of feedback. And all of this happening on a self-service basis. So, when people say the Internet happened about ten years ago in 1995, only a few people that truly moved into the Internet, right? The majority people were still using Internet but they didn't move in fully. But with mobile I feel that everybody has now checked-in to the Internet era. Everybody's connecting very directly, through platforms like Ship.io that we built for collaboration.

Cameron: You have such a wealth of information so, finally, as a last question here for this interview, knowing what you know now, what wisdom would you give yourself the day you graduated with your bachelor of technology degree in electronics and engineering and telecommunications engineering?

Prathap: I was thinking about that in the shower this morning. If I could go back on a time machine, I think one advice I would give myself is, really, the value creation in technology is now such flatline. People are open source and services on the Internet. What I would have told myself twenty years ago is, "Go invest in a service oriented creation of value." Not packaged application but, really, a service orientation approach. What we're calling continuous delivery now. Go build a machine like Amazon, right? Because they were really the first one's who created this self service on the cloud. And we're emulating. Companies like Ship.io are emulating that. So, "build an Amazon" back in the 80's would be what I would tell myself.

Cameron: Okay. Well, thank you so much and this wraps up our interview. Once again, this was with Prathap Dendi of Electric Cloud. He spoke to us today about Ship.io. Thank you so much.

prathap dendi electric cloudPrathap Dendi, vice president of business development at Electric Cloud, has over fifteen years of experience in technology leadership and executive positions. He has deep international business development background in software, hardware, services and cloud computing. Before joining Electric Cloud, Prathap served as IBM’s business development executive for the cloud computing business. While with IBM, Prathap was responsible for driving software strategy including acquisitions and new technology creation. Additionally, he held leadership roles in software, services, sales, and business development. Prathap's illustrious career includes work with many prominent Fortune 500 companies such as Allianz, Barclays Group, Chevron, Disney, Gap, Nissan, Procter & Gamble and Visa. A graduate of the National Institute of Technology in Warangal, India, Prathap holds a bachelor of technology degree in electronics engineering and telecommunications engineering.

 

About the author

Upcoming Events

Apr 28
Jun 02
Sep 22
Oct 13