The purpose of Continuous Integration is to fail

6 points by mtlynch


Corbin

Here's an alternative perspective: The purpose of CI is to enable CD. Personally, CI also serves a second purpose: it babysits a compiler while I sleep; the purpose is to tell me that it failed.

ryan-duve

Here's my best, good-faith attempt to apply this to an analogous system.


My computer doesn't start when it's too hot because of a thermal interlock. That interlock is only valuable when it stops my computer from turning on. If the temperature is fine, it's just overhead, the same outcome as I would get without it.

...

It's unfortunate we use the word failure to describe what happens when my computer is too hot to turn on. When it happens, a red LED that says "error" lights up. Instead, I propose when the computer is too hot to turn on, a green LED lights up that says "success".


I think the author is saying the indicator should reflect whether the safety mechanism is working, which is different from every indicator I can think of. My car, my washing machine, my HVAC system. For all of them, indicators alert me to the failure of the system, not the status of the gauge that detects failure. I would be very confused if a CI system behaved the opposite way.