Many people think I don’t like code or coders. Not at all. Big mistake. (by the way, I was one). Let’s leave those people to get excited, and let’s continue on code. Yes, code is not agile. We apply agile culture in environments where code is essential. We practice around code in relation to agile culture. But if code is not agile, it is its cradle and that’s not a surprise.

Let me explain. Agile exists because we had to find something when we realized -at the end of the last century- that a Cartesian approach, that rationalization and excessive compartmentalization led nowhere. When we realized that we could no longer have a rational, matrix-based approach but a systemic one. When we realized that we didn’t live in a complicated but complex world. Well, we had to find other ways. That’s when agile appeared. And for not very distant reasons, a few decades earlier, Lean.

And it’s no coincidence that this “there” was right in the middle of code.

Indeed, agility is a revolt to say that things are complex, systemic, and above all not Cartesian. Agility is a soft science and not a hard science. Now where is the place where we were most wrong on the subject: code, computing. An assembly of 0s and 1s could only be Cartesian, 0s and 1s could only bring the complicated, the rational. But this is not the case. We completely went astray, and the people who were struggling right in the middle, who measured the gap founded the agile manifesto. It’s where the most absolute rational scientism should have flourished that it shattered. Code is a complex assembly of intuition, art, of know-how, of luck and bad luck, yet in fine based on 0s and 1s. Agility was in my eyes born from this contradiction.

For Lean I propose the same reasoning. The Taylorist approach no longer had its place in the complex modern world. The mechanism that could for a time make its success was also the cradle -by opposition- of its modern alternative, Lean. Yet as the image above shows, everything suggested that we could rationalize the human being.