Mobile computing is probably the hottest topic for development and operations teams right now.Employees in companies large and small have various mobile devices, many of them personal,that they are using for work. Companies all over the world want to use the mobile market by providing customers and users with apps that make mobile computing easier. So, it is important for companies to think through not just the development of a mobile capability but also how theywill deploy it and how they can ensure the continuity of the capabilities as these change overtime. This article covers how DevOps (development & operations) can help address the issues of deploying different versions of apps to different devices.
2. developerWorks® ibm.com/developerWorks/
DevOps for mobile development Page 2 of 6
The downside of that approach, however, is that it's not possible to exploit all of the power
and features of the different mobile platforms. Users inevitably ask for better integration with
existing native functionality on the mobile device, such as the calendar application. Meeting these
demands requires native applications if the platform does not expose APIs to access the features
— and that's when you'll start asking questions about which and how many platforms you are
going to support. In addition, how many versions of the platform will you support? Given that most
customers will only keep a device for a few years, how much risk is involved in excluding a version
and choosing not to support those customers? Do you support or exclude one entire platform,
such as iOS? One version of Android, such as 3.2? Do you extend out to the full capabilities of
Jelly Bean, the latest version of Android?
Adding to the challenge of mobile app development and deployment is what is being called the
"consumerization" of IT. More and more, employees and customers are bringing their own devices
into the enterprise environment. For example, at IBM in January, there were approximately 10,000
iPads running inside the company and more than 30,000 other iOS devices. This means that an
enterprise can no longer have a corporate standard that states they will only support iOS, version
4, because consumers are purchasing updated iPhones or Samsung Galaxies, along with tablets
and other smartphones. Although there are advantages when enterprises use their employees'
devices, consumerization creates a very large set of targeted environments, which increases costs
both in development and management.
The pitfalls of mobile app deployment
One of the main pitfalls of developing and deploying mobile apps is packaging too much change
into one large deployment. This traditional waterfall method of development is also prevalent
in enterprise application development. A company spends six to eight months working on
requirements, six to eight months developing, six to eight months testing, and then they put their
massive application into production. The problem is, during all that time, the teams involved will
likely miss requirements, lose track of components, and even break part of the build. So to reduce
that risk, the company implements a rigorous and complex governance process.
Companies often want to take this same approach to mobile development and deployment,
because they want their first release of a mobile capability into the market, whether for their user
base or employees, to be perfect. In reality, the app does not have to be perfect, it simply has to
be usable and intuitive. Most enterprises don't realize this, however, so they put a great deal of
time and effort into what can become a costly endeavor — and, often, a late one. Most apps that
are the result of waterfall development are late to market and often do not end up addressing their
users' needs.
DevOps is a way of addressing the deployment challenges of multiple operating systems, multiple
devices, and consumerization by extending the agile development methodology to quickly
deploying functionality needed for successful mobile apps.
The power of DevOps
DevOps basically addresses the need to deploy a running application, with the latest features,
out to the production environment at any given point in time. This is an agile approach, where a
3. ibm.com/developerWorks/ developerWorks®
DevOps for mobile development Page 3 of 6
waterfall development methodology will not work. It is important to define your requirements and
develop in small, functional pieces of business value. Every night or every 15 minutes or every
time a change is checked into the source code management system, you want to ensure that it is
possible to build your product or business function. This is the continuous integration capability of
DevOps. Further, given the complexity of enterprise mobile apps, this is not just about compiling
the code for the mobile device. Enterprise apps leverage backend systems, which may also need
to include new functionality.
Capturing the build and deploying it through the various environments requires a robust set of
continuous delivery capabilities that can push apps:
• From a developer's desktop with a simulator running Android, iOS, or another mobile platform
• To the test environment that might involve a third party testing different handsets
• To the back-end systems that expose services to be consumed by mobile devices
• And into a production environment where it is delivered to the various devices
Each platform has different characteristics from a deployment perspective; however, no matter
what the platform, for the delivery to be successful, you must identify, track, capture, and test
every change. This requires a disciplined approach that brings development and operations teams
together to ensure frequent, reliable, high-quality software deliveries. Development and operation
teams work together toward a common objective: continuous delivery of working mobile apps
without anyone assigning blame or making excuses. Automation is critical.
That's why DevOps is so powerful for mobile application development and deployment. DevOps
can:
• Capture changes
• Automate how those changes take place
• Automate testing
• Keep the changes small enough to reduce risk to the business when they are moved into a
production environment
• Ensure that, at every stage along the pipeline, appropriately packaged business functions are
replicated and pushed forward
With DevOps, you are using a disciplined and automated approach, deploying small, functional
enhancements that might, over time, become a very large, complex capability. It pushes your apps
and your updates through your provisioning capabilities to the various endpoint devices in your
mobile ecosystem. DevOps also means transparency to changes so that all the stakeholders are
aware of how new capabilities are progressing, thereby reducing the business risk. Metrics and
measures are captured and exposed on dashboards, increasing transparency and accountability.
DevOps is an ideal approach when you also consider that the timeframe for delivering mobile
apps is much shorter than for enterprise applications. Companies want to get started right
away. Therefore, it is important to take the time to integrate teams and processes on mobile app
releases and updates and help everyone understand that the objective is not perfection; the
goal is improvement. This starts everything off in the right way, and progress is faster and better.
Efficiencies happen and processes are improved at the same time they are automated.
4. developerWorks® ibm.com/developerWorks/
DevOps for mobile development Page 4 of 6
Conclusion
Companies all over the world want to exploit the mobile market by providing customers and
users with apps that make mobile computing easier. To do this, it is important to think through
the development of the capability, how you will deploy it, and how you can ensure the continuity
of your capabilities as you change them over time. DevOps helps ensure a successful mobile
app lifecycle that takes all of this into consideration. It brings not only automation but also
business results because DevOps tightens the feedback loop between developers and operations.
Developers can make changes more quickly, and organizations can speed the refinement and
updates of their apps.
5. ibm.com/developerWorks/ developerWorks®
DevOps for mobile development Page 5 of 6
Resources
Learn
• Michael is an active blogger on The Mobile Frontier.
• Read more perspectives on DevOps in the Enterprise DevOps blog.
• "Techniques for rapid mobile solution development" (developerWorks) offers concrete
suggestions on how even a small in-house team can quickly develop and deploy a well-
targeted employee app across multiple platforms.
• At the developerWorks DevOps zone, find how-to articles, technical perspectives, and
evaluation code to help developers, testers, and IT production and operations teams
understand and adopt the IBM DevOps approach to continuous software release and
sustained innovation.
Get products and technologies
• Evaluate IBM products in the way that suits you best: Download a product trial, try a product
online, use a product in a cloud environment, or spend a few hours in the SOA Sandbox
learning how to implement Service Oriented Architecture efficiently.
Discuss
• The DevOps community provides news, discussions, and training to help you and your
organization build a foundation on agile development principles and the associated DevOps
movement.