In this interview, Ship.io general manager Prathap Dendi explores continuous delivery and the explosion of mobile development. He explains how we've applied the lessons learned from mobile development elsewhere, plus the most exciting trends now and looking forward.
Prathap Dendi: My name is Prathap Dendi. I'm a software engineer by training. Today, I'm the general manager for a very exciting business called Ship.io. We are the industry leader in mobile app continuous delivery. A bit of my personal experience and background here: Started as a software engineer, founding engineer in a few startups in Silicon Valley. I was part of the team that wrote up the first multi-tenant SaaS platform back in the year 2000. It's a Java-based platform. It's now in the ... It went into an acquisition of BEA, now part of Oracle. Did a security XML appliance called Westburn Technology that got acquired into Progress Software.
Then spent a few years at IBM driving their software group strategy. This is around the service-oriented architecture technology. I did a few strategic partnerships, acquisitions, and grew the business very nicely to be the number one in that space. Right after, I joined Electric Cloud. It was, again, a market leader in DevOps and continues delivery. As part of that, we had the opportunity to start Ship.io, which is primarily focused on delivering mobile apps in the continuous delivery fashion. That's a little bit of my background.
Josiah Renaudin: Well, thank you very much, Prathap. Thank you for joining us today. We're going to be mainly talking about the explosion of mobile development, as well as continuous delivery. Let's jump right into the questioning. How has the expansion of the mobile world really altered the development landscape? How different is this type of development compared to what you've worked with in the past?
Prathap Dendi: It's a great question. Something that I, personally, have spent a lot of time understanding. I wrote code, starting with Pascal as the language, and then C++, and Java. That's when I stopped, but if you look at today's mobile app development, it's significantly different. It, obviously, has a lot of commonalities in programming, but if you look at how the lifecycle of mobile app differs from a typical lifestyle of a multi-tier Java app, or a web app, or an IT product, it starts with release frequency. The mobile app updates these days are down to two weeks. If you look at your mobile phone, whether it's an Android phone or an iOS phone, I bet you that you had a couple of red dots that are telling you that there are, probably, twenty to a hundred mobile apps that are begging to be updated today.
The release frequency has really come down to two weeks and three weeks at best, both on consumer apps, as well as enterprise apps. What that does to development, in general, is, how do we write features, whether it's bug fixes or brand new features, how do we write code that is ready to ship, and that can go through your development process, testing process, and the release process in such a short interval? It's fundamentally changed the way you choose your software development practices, whether it's agile or other practices, or even the tools and services that go into making your software delivery much faster and in line with where the industry's going. That's for beginners, what I see as one of the biggest changes that we're seeing in mobile world compared to IT or the web, even.
Josiah Renaudin: In order to give more context, in short, could you kind of just give us your personal definition of continuous delivery before we move forward in the interview?
Prathap Dendi: Absolutely, and I'll make it very simple. I think there are a lot of books written about it. One of our advisors, Jez Humble, has a very well-respected book out there on continuous delivery, but, for me, very simply, it is, keeping your code to be ship-ready, right, so that any given time, there's no technical debt. You have code that you write that's gone through a continuous integration check-in and has seen ... Because the minimum continuous testing and continuous delivery steps so that the code is ready to ship. Shipable-ready is what I define as continuous delivery, for mobile apps anyway.
Josiah Renaudin: And like you had just mentioned, there are a lot of different books and articles written about it, so a lot of people are discussing it, they're digging into it, but why do you think this concept is often thought of as enterprise-centric only?
Prathap Dendi: Yeah. That's a great question, and that's the background I come from. I think the complexity of software in enterprise apps, multi-tiered enterprise apps, is a lot more than mobile apps as you know. I think, fundamentally, continuous delivery practices started in enterprise because there, to tame the complexity using continuous integration and continuous testing, ease of method that a lot of people use has become more of a standard now.
That's the reason why you get a little bit more of an enterprise-centric branding, but if you look at mobile, the complexity aside, I think the release frequency is what drives an option of continuous integration. We have seen ... There are millions of app developers now in the world and because there is a race to get your app to the app store very quickly, continuous delivery is just a natural fit for mobile app developers, designers, and testers. I think that definition has changed quite a bit. I actually see a lot of mobile app companies starting to use continue integration techniques and continuous testing as a practice today.