CICD everything you need to know
Yes we all want CICD but it often remains aspirational. How to overcome barriers and get started.
The barrier to implementing CICD is people, not tech
Organizations seeking to adopt continuous delivery will primarily focus on evaluating tools and improving working practices. This is important, but to truly embrace continuous delivery, organization management must ensure that their teams adopt CICD's core principles:
- Architect the system in a way that supports iterative releases. Avoid tight coupling between components. Implement metrics that help detect issues in real-time.
- Practice test-driven development to always keep the code in a deployable state. Maintain a comprehensive and healthy automated test suite. Build in monitoring, logging, and fault-tolerance by design.
- Work in small iterations. For example, if you develop in feature branches, they should live no longer than a day. When you need more time to develop new features, use feature flags.
- Developers can push the code into production-like staging environments. This ensures that the new version of the software will work when it gets in the hands of users.
- Anyone can deploy any version of the software to any environment on demand, at a push of a button. If you need to consult a wiki on how to deploy, it’s game over.
- If you build it, you run it. Autonomous engineering teams should be responsible for the quality and stability of the software they build. This breaks down the silos between traditional developers and operations groups, as they work together to achieve high-level goals.
Any new process is impossible to implement without company-wide adoption. Management should embrace and lead the adoption process, and team members need to be willing to change the way they work.
Without buy-in to QA automation and site reliability engineering, it will not work
Organizations looking to adopt continuous delivery need to involve stakeholders early and often. This includes buy-in for QA automation, which typically requires some upfront investment of both time and money. To get the buy-in and budget, building a story of the value and vision for QA automation and the value CICD can bring is typically required. Management should encourage collaboration across all teams, promoting innovation, individual accountability and responsibility.
If CICD isn’t your current state, it’s easier to start with a controlled bang, no matter how small, to spark momentum
In many organizations, change can often feel constant. As Isaac Asimov said: “The only constant is change.” In general, developers don’t like change, so implementing a process that promotes the acceleration of change is likely to face many internal hurdles. Starting small allows for incremental change and allows teams to adjust to the process one step at a time.