When i heard the word extreme programming for the first time, back in 2000, i remember i reacted with enthusiasm.

At that time i consider myself pretty good at coding (i was not) and i felt the excitement of getting better by adhering to a cool methodology.

I even registered my personal domain as a bombastic xpmike.com.

To be fair at that time i knew no object oriented design best practices, i didn’t put any automated test to the code i wrote, nor i enforced any design concepts before writing it.

I just took pride in what i did, gratified when i delivered my code within deadlines, mortified when it crashed (as it did) on production.

One year later XP creator, Kent Beck, was one of the seventeen signatories of the Agile Manifesto: a praiseworthy attempt to squeeze various lightweight programming processes within a defined set of values (which i spare you here).

These simple values define agile as a whole: a tentative to enhance the developing of software by adhering to a strict technical discipline and few abstract practices.

I start experiencing with agile values back in 2007, when i developed my first Rails application with automated tests (which are hardly unit, although named like that).

I continued by understanding the SOLID principles of object oriented design and how to properly write isolated unit tests. Then i learned the refactoring catalog, and, since i can quickly run a cluster of tests, i applied its rules to my code, that i committed frequently to the SCM.

At the end of the journey (years passed) my code was more solid and extensible. I felt confident releasing it on production by the ease of a key press, granted all automated tests pass.

I was pretty happy about my implementation of the manifesto’s values, but suddenly the raise of an emerging, shiny agile transformation movement starts telling me i wasn’t doing agile the right way.

I was not adhering to all of the organizational processes and tools that a bunch of certified zealots evangelized.

Nonetheless i keep seeing many (fr)agile projects break as thin pieces of glass, by sticking to a broad set of concrete commandments, but completely lacking the mandatory technical backbone.