Tractatus on CICD

As we now know, building products in a problem domain is difficult. We also know we will be working in that problem domain for a long time. It makes sense then to build a tool that allows us to build and maintain products easily. This is what collectively has been called in software as having a “CICD” stack. Surprisingly, lots of companies are not obsessed enough with its importance. They may think of it as a nice-to-have, second-hand infrastructure. Obsessions in software are rarely a mark of good engineering. However, if I had to make a bet on one thing worth obsessing about it’s the CICD stack. This is because a software company is essentially a huge factory of product updates guided by immersion in the customer's problem domain. Products are difficult to make, so they will need lots of fixes and enhancements that we will need to be delivered to users. Making products is also an inherently iterative process, so we can’t plan and deliver all features in one go. We will need to ship them in a never ending cycle of updates that respond to changing customer needs and technology demands of the day. Employees that were hired to solve problems in the problem domain will spend their days interacting with the CICD stack. They will try to deliver their value into customer’s hands and each obstacle in the process will contribute to their burnout. As Elon said, it’s not about building a car, it’s about building a machine that builds the car.

Popular posts from this blog

Terminology of CICD

Perils of classes and pointers

On Testing