Darker side of CI/CD

Harnessing the power of Retrospection
June 20, 2018
Fear / Learning / Growth Zone
May 29, 2020

Darker side of CI/CD

Continuous integration (CI) on other hand is a process in which developers and testers collaboratively validate the new code. Traditionally, developers wrote code and integrated it once a week/month for testing purpose. That was inefficient—a mistake in code from two/four weeks ago could force the developers to revise code written one week ago. To overcome that problem, CI depends on automation to integrate and test code continuously. Scrum teams using CI commit code daily at the very least, while a majority of them commit code for every change introduced.

Is Continuous Delivery (CD) actually good for developers, or is it just one more set of expectations that gets in the way of what they really want … writing great code?

Continuous delivery (CD) is the process of continuously creating releasable artifacts.

Continuous Delivery brings a lot of improvement in software delivery process, faster with greater scale. Flip side of conitnuous delivery is it requires time, commitment and a incredible cultural/environmnet changes. At times continous delivery burdens developers with more overhead, infusing more tools and expectation to delivery faster.

Thus, CI/CD is a process for continuous development, testing, and delivery of new code.

Regardless of everything stated above CI/CD is not perfect, there are DARKEST dangers of CI/CD.

Challenges of CI/CD
  • Standalone checkouts are a great solution for small and simple apps however growth in functionality may bring chaos to such a process. Such activities can only ne tended at the beginning of the process.
  • Repeatable and reliable tests are something few people can achieve. Failed tests are often treated as “expected” and intermittent failures cause sets of events that lead to mistreatment of legitimate errors.
  • Large teams tend to awkwardly operate CI. The more the merrier saying does not fit in Continuous Integration. Deploys are literally in danger when there are too many people involved.
  • Automating the wrong processes first.
  • Confusing continuous deployment for continous delivery.
  • Lack of meaningful dashboards and metrics
  • Lack of coordination between continuous integration and continuous delivery

With an automated pipeline a team automatically gets continuous feedback.Especially in the beginning of setting up a pipeline, a team will get a lot of feedback information, so a team should be prepared for this. And be ready to use the feedback.

 

Leave a Reply

Your email address will not be published. Required fields are marked *