The fast-paced world of mobile apps may benefit from a software development method that aims to boost efficiency and flexibility: DevOps.
DevOps, which borrows concepts from the Agile software movement, seeks to pull together the development and IT operations sides of an organization. That can prove difficult, since developers tend to favor change while operations personnel strive for stability. The DevOps approach tries to get everyone to meet in the middle and, at the same time, eliminate the awkward handoffs that can occur as software passes from coders to implementers and, ultimately, to customers. The objective: Shrink cycle time and meet changing customer needs.
Cultural change is an important aspect of DevOps, but so too is automation. An emerging set of tools aims to help bridge development and operations. As the industry changes, experts say the tenets and tools of DevOps are starting to impact mobile development. One key driver is the pace of development.
“Mobile development moves more quickly than most enterprises are accustomed to,” says Eric Minick, lead consultant at UrbanCode Inc., a Cleveland-based company that provides DevOps release and deployment tools. “It’s complicated by apps often targeting multiple platforms such as iOS, Android and generalized HTML5 offerings. Mobile teams can benefit from taking a few pages out of the DevOps playbook.”
In Minick’s view, approaches such as continuous delivery may be applied to mobile applications. In doing so, development teams “would rebuild our apps with every code change, ‘deploy’ them into simulators, and run functional test suites for each target device or platform. This can help the team catch regressions more quickly,” he says.
Enterprise Markets, Mobile Infrastructure
Many mobile apps are geared toward consumers. But adherence to DevOps could help developers extend their reach to include business accounts. “It would open up their applications and their market to enterprises,” says Jesus Garcia, alliance marketing manager for Intel’s software and solutions group. [Disclosure: Intel is the sponsor of this content.]
However, enterprises are often wary of taking on applications that don’t meet their needs in terms of maintainability, security and control, among other variables. DevOps provides insight into the operational side, which is important when it comes to application maintenance and management.
“Consumers aren’t necessarily concerned with security, manageability and maintaining applications — but enterprises are,” Garcia says. “If a DevOps approach is going to facilitate integration into an enterprise environment, that’s a win-win for both the enterprise and app developers.”
DevOps can also help IT teams coordinate mobile apps and the enterprise back-end applications that support them.
“More and more, the mobile applications are not just building on top of existing back-end applications within the enterprise, but are driving changes to those systems,” Minick says. “That requires increased collaboration between the mobile development teams, traditional development teams and the traditional operations groups. The coordination required, and the pace being driven by mobile, is a big factor driving DevOps in the enterprise.”
Steve Hazel, vice president of product at Sauce Labs Inc., a company that lets developers test web and mobile apps in the cloud, also cites back-end applications as a fit for DevOps. He says the vast majority of mobile apps have a component in the cloud — a website that presents an API that the app uses, for example. While a mobile app a consumer uses isn’t part of an enterprise’s operations, the back-end application falls into that category. “All of the DevOps methodologies apply to these mobile back-end sites,” Hazel says.
Hazel notes that many mobile back-end apps are being developed from scratch, so people want to adopt the newer methodologies. In his opinion, mobile developers as on the cutting edge of DevOps and Agile adoption. He suggests that the percentage of mobile developers that has adopted DevOps may be higher than the percentage of web developers that uses that method.
Michael Prichard, founder and chief technology officer of WillowTree Apps Inc., a mobile app design and development company in Charlottesville, Va., says his company has a 12-person DevOps team, out of more than 45 employees overall. WillowTree started building native apps in 2008, but eventually the company found that those apps needed to talk to something. The DevOps group focuses on creating APIs and back-end integration.
In one recent example, WillowTree developed the NBA’s All Star Weekend 2013 iPhone and Android apps. The company, Prichard explains, created the entire back-end system, building a Django content management system instance and employing Amazon Web Services to build a scalable system. “There are no more standalone apps,” Prichard says.
New software release approaches and shorter maintenance timeframes may also contribute to DevOps adoption. Jacob Ukelson, director of product strategy at Nolio, an application release operations software company, says maintenance windows have shrunk drastically with always-on computing, and he notes that mobile will cause them to shrink further or disappear entirely. As a consequence, companies will need to manage feature upgrade deployment and bug fixes so they have minimum impact on application availability, but still ensure application stability, he says.
Companies hoping to make that happen will begin to adopt new deployment methodologies such as dark launching and blue-green deployments, which can help meet those needs, Ukelson says. DevOps can smooth that adoption path. “DevOps will give companies the agility they need for these new release paradigms,” Ukelson says.
Automation vendors find that mobile developers have started to purchase their DevOps supporting tools.
“We expect more adoption this year as mobile development matures and the DevOps approach becomes more widely understood,” Minick says. “We definitely see some customers using our tools for mobile development, and to make sure all the back-end systems have updated code in place before the apps are pushed out to customers.”
Ukelson says a few customers use Nolio for mobile app delivery. Still, mobile isn’t the main driver for adoption of Nolio’s Release Operations Suite, Ukelson says, noting that continuous delivery has become a key reason to deploy the product. Mobile, however, provides another driver for the move to continuous delivery.
The time appears ripe for DevOps and greater tool use in the still-young mobile development arena.
“In many ways, it’s still in the early days for mobile development and while the velocity is there, the discipline is lacking,” Ukelson says. “My bank’s chronically broken mobile app makes that abundantly clear. The resulting two-star ratings with a comment of, ‘Might be good if it worked’ hurt adoption over a long period of time. Adopting a DevOps mindset, and more mature tooling, should help these mobile development teams keep moving quickly while raising quality.”