Let's face it -- the pace of software releases is getting more frenzied. Two years ago, 35% of enterprises responding to a Cloud Native Computing Foundation survey were releasing software on a daily or weekly basis. In CNCF's most recent survey[1], this number surged to 65%. Those respondents with daily release cycles increased from 15% to 27% during this time.
In busy software development shops, it's great to have really smart, skilled people who are really good at developing elegant solutions for the business. But with releases going out the door on a daily, maybe even hourly basis, even the best of the best find it difficult to stay on top of this process, which often involves going back to make fixes.
That's why it's urgent to put in place a well-honed and highly automated continuous integration/continuous delivery[2] (CI/CD) strategy, according to Andrew Davis of Copado and author of Mastering Salesforce DevOps.[3] At a compelling session[4] at Dreamforce 19, he outlined the challenges enterprises now face, pointing out that effectively accelerating development lifecycles "requires thought coordination and good tools."
While Davis' talk was directed at Salesforce teams, his insights resonate across the broader IT realm. Typically, he related, software deployments follow six phases that form the foundation of DevOps:
- Understand what users need.
- Build it.
- Make sure it works.
- Makes sure it works well with everything else.
- Make sure you didn't break anything else.
- Deploy it to users.
The final three steps is where many development teams tend to stumble, Davis says. "The most blissful thing about writing code or doing a complex admin task and so forth is when you get everything in your head, and you can see how everything fits