The pace of software is getting more and more frenetic. Two years ago, 35% of businesses responding to a Cloud Native Computing Foundation (CNCF) survey were releasing software on a daily or weekly basis. In the most recent CNCF survey, that number increased to 65%. Of those surveyed, the percentage of businesses releasing software daily increased from 15% to 27% during that period. In software development shops, it’s important to have smart, skilled people who are really good at building solutions for the business. However, with software releases being released on a daily, or even hourly, basis, even the best in the field find it difficult to stay on top of this process, which often involves “going back” to make fixes. That’s why a well-designed and highly automated continuous integration/continuous delivery (CI/CD) strategy needs to be in place, according to Andrew Davis of Copado and author of Mastering Salesforce DevOps. At Dreamforce 19, Davis outlined the challenges facing businesses today, noting that effectively accelerating development cycles requires coordination and useful tools.

While Davis is addressing Salesforce teams, his views resonate across the broader IT landscape. Typically, he said, software deployments follow six phases that form the foundation of DevOps:
- Understanding what users.
- Creating what users need.
- Confirmation that what has been built works.
- Confirmation that it works well with everything else.
- Confirmation that nothing else will break.
- Installing it to users.

In the last three steps, many development teams tend to “stumble,” according to Davis. So Davis breaks DevOps down into a three-step process: development, innovation delivery, and operations. He explains that there’s the development part, where teams build new things, and the operations part, where things run in production. Then there’s innovation delivery, which delivers that innovation to production. That’s why DevOps automation is needed to eliminate the need for “manual tinkering” in the phase between development and operations. Davis also listed the characteristics of an effective DevOps and CI/CD strategy:
- Every developer and team in a company comes together on a common trunk or code base at least daily.
- As soon as the code base changes, automated tests are run. If tests fail or things break, they are fixed within ten minutes.
- The ability to automate the testing phase to run rapid tests is critical to CI/CD efforts, Davis noted. Developers need rapid tests where they can get feedback while still having fun while they work. These tests should be done in a way that provides near-real-time feedback to developers, feedback in less than five minutes. They can then be followed by more comprehensive unit tests.
Another problem to address is what’s called “configuration drift,” where “environments get out of sync for a variety of reasons,” Davis said. Maybe teams are making changes in production that aren’t helping development and testing. It’s also possible that they’ve changed development environments, but there’s a lot of junk in sandbox from 2006 that hasn’t been refreshed, making it not quite right for production.
