Mobile App Development
Technology, Information and Media
Article

Getting Ahead of User Demand with CI/CD

by
Mutual Mobile
April 15, 2019
8
min(s)
Why you need to practice CI/CD to stay competitive, how it works, and how you can implement it now

Amazon claims to release software updates every 11.6 seconds. Facebook says it rebuilds apps up to 60,000 times a day. The key to such rapid release cycles is continuous integration and continuous delivery, or CI/CD. And while organizations of all sizes now accept CI/CD as an important part of DevOps, many still ask whether it’s really necessary, and, if so, what it takes to implement properly for best results.

Short answer to the necessity question: Yes. And while addressing implementation is more nuanced, many find the answer to be along the lines of “mysterious but attainable,” especially with the right guidance. Guidance that includes best practices for leveraging the build, integration, and QA automation at the heart of CI/CD.

The Functionality Imperative

></p><p>Dan Nichols, VP of Technology</p><p>As software developers race to deliver more capabilities to modern digital customers who expect rapid-fire updates, it becomes crucial that they deliver as quickly and economically as possible, while still ensuring high-quality code. Customers who don’t get the service they need when they need it take their business elsewhere. It happens daily. A recent <a href=

Salesforce survey found that 57% of customers have reported shifting their loyalty to companies that react more quickly to their needs.

Tech influences customer experience in just about every industry. Research from McKinsey & Company found that ever-more-demanding customers are behind the push to expand and improve software development. In other words, if companies want to meet customers’ expectations, their apps better deliver real benefits in as close to real time as possible to match the evolving needs of end users.

Simple cosmetic fixes or unstable code that doesn’t deliver the goods won’t cut it. Someone else will deliver if you can’t. And quarterly updates to software, no matter how good, can’t keep pace. “You’re going to have to patch it or adapt it for some real – world uses that you haven’t considered,” points out Dan Nichols, VP of Technology at Mutual Mobile. “Your competitors are moving more quickly than that,” he says of quarterly releases, “because your customers are nimble enough to move away from your product or find an alternative in that amount of time.”

To be competitive, you need to release apps and other software to users rapidly and with confidence. The combination of CI/CD and QA automation allows you to do this by ensuring that new code gets thoroughly tested as it’s integrated into updates that are then delivered to users as quickly as possible.

Defining CI/CD

></p><p>Cycle of CI/CD</p><p><em>In simplest terms, CI/CD is a way to build and maintain software as part of a continuous process.</em></p><p>Continuous integration (CI) brings vetted code into the main application as it is completed and tested. “Developers are getting feedback as they’re trying to merge changes into the source code,” explains Nichols. If automated tests fail as part of this process, then the faulty code stays out of the main build until developers can fix it. “It might all compile together, but that doesn’t mean it’s going to do what it’s supposed to.” Applying QA automation as part of the process means only qualified code makes it into the application when applying CI.</p><p>Continuous delivery (CD) then brings validated code to production environments as soon as it’s available, either for immediate release to users, or, more likely, through more frequently scheduled releases. “The goal is that we’re taking the output—those builds from that CI pipeline—and we’re able to transition them very quickly into a production environment,” says Nichols. Whether it’s through automated connections to app stores or deployment scripts that promote vetted code to the cloud, the goal is to benefit from a well-scripted, automated process for code releases.</p><p>Altogether, CI/CD plus QA automation lets organizations continuously create, test, and deliver new code to keep pace with rapidly changing business needs. To make this possible, effective CI/CD processes hold everyone on the team accountable for quality.</p><p>Industry giants such as Amazon may use CI/CD practices to release updates multiple times per hour. But, for many, moving to weekly or even bimonthly updates can go a long way toward meeting user demand and staying ahead of the competition.</p><h2>How to Implement Agile-Powered CI/CD</h2><p>Making the shift to CI/CD can present organizational challenges. But with the right tools and partners in place, it doesn’t have to be painful. It’s similar to the shift you may have already experienced moving from a waterfall-based workflow to Agile development. In fact, says Nichols, developers need to apply Agile principles to engage in CI/CD. “The Agile transition from Waterfall is really mostly about acknowledging that plans change,” says Nichols. “The classic Waterfall approach doesn’t help customers or teams react.”</p><p><strong>Agile-powered CI/CD workflows enable organizations to adapt more rapidly to change. To that end, moving to CI/CD for software development requires following five key steps.</strong></p><ol><li>Audit your existing development and testing processes. You can’t know what you need to change unless you have a clear understanding of how you already work.</li><li>Establish transparency between project management, development, and QA teams. This step is vital for fostering coordinated effort and the culture of collaboration that a rapid release cycle requires.</li><li>Implement a test-driven development (TDD) process and create tests that cover existing code. Having good test coverage of your code base is essential for releasing with confidence.</li><li>Develop automated UI and integration tests that cover key flows and interactions. This will allow you to replace time-intensive, manual processes with automation test suites that provide fast, constant feedback during the development cycle.</li><li>Build out your CI/CD processes, integrating your source control, test automation, and deployment systems to create a robust pipeline from development to production.</li></ol><p>Building out automated tests is one of the most important aspects of ensuring quality while enabling a rapid release process. “The quicker you can test your product, the quicker you can get it into the hands of the people that are going to be using it,” explains Cole Cochran, DevOps Engineer at MutualMobile. He also points out that CI/CD provides a fast-track for testing that can actually improve quality at the same time that it increases speed.</p><h2>Finding the Right Balance with Automation and QA</h2><p>Test suites and scripts do the work of dozens of people — working for weeks — in just a few minutes, accelerating the release process. DevOps leaders reported in a recent <a href=

Forrester Research survey that they were likely to consider automation in quality assurance a “critical business differentiator” at almost twice the rate of DevOps laggards, as defined by the survey.

The quality of testing tools available makes the move to automation not just a critical step on the path to CI/CD, but also an achievable one. Cloud testing services, for example, allow QA engineers to run automated tests on almost any phone, tablet, or browser, quickly pinpointing design and functional issues.

That said, automation can’t replace manual QA testing for experiences that require subjective evaluation. Automation often doesn’t capture the full story with graphics-heavy apps, for example, or games. That’s why the most effective engineering teams make judicious use of both automated and manual QA testing.

Building a CI/CD Partnership

Mutual Mobile

Mutual Mobile Resource Team.

More by this author