Saturday, January 22, 2011

10 years of Agile... and?

This year, the Agile 2011 conference will be held at Salt Lake City. A very symbolic choice for a symbolic year: the Agile manifesto got signed exactly 10 years ago very close by.

For this occasion, I’m thrilled and honored to having accepted Esther Derby’s invitation, and become member of the review team for the stage "Collaboration, Culture and Teams".

2011 means much to me too, as I discovered XP at the beginning of 2001 (exactly 10 years ago, what a coincidence!) in a large telecom manufacturer... The project was one of the very first Agile projects in France (second or third, I don’t know for sure).

Let’s try to quickly recap my last 10 years as an Agile practitioner:

  • 2001, year 1 : a “short” rewrite project in C++ with predefined, fixed requirements (no user interface, but an old and mature communication protocol with other subsystems). I joined a set of 3 talented freelance developers, now friends for a long time. A frank success: we released the ultimate version of this pilot project on time, and with extremely few defects.
  • Years 2 to 6 : a much bigger project for the same client (telecom company) with plenty of uncertainty along the way. Our incremental and adaptive approach allowed for an organic growth from scratch to a solid (“state-of-the-art”, would even write a customer, important telecom carrier) configuration tool for large network carriers. We all agree, none of us would have been able to predict and design ahead of time what we ended with. After 1 year, a natural split emerged in two subprojects (a kernel & GUI team that I was part of, and a plugin team for domain checks and wizards). After 3 years, the product met such success that the company assembled several other plugin development teams around the globe (US, Russia, China) for other domains, and a multi-user, collaborative version got released few months before I left for new adventures.
  • Years 7 to 9 : an Agile offshore experience (team of 3 in France and 4 in India) as an XP coach, with a high turnover in the first year. Aside from showing the way of the engineering practices and driving the XP rituals (stand-ups, iteration planning games and retrospectives), my assignment consisted in giving rise to a genuine team spirit in a team divided by over 7000 kms of lands and seas. Concretely, we pair-coached for 3 years with the project manager to make it real (I often wore the technical lead hat), and we all traveled several times to physically get to know and trust each other.
  • Year 10 : management through a mix of Agile and Lean approaches of a large project flooded with quality problems inherited from history. The development team was familiar with Scrum and XP engineering practices, which allowed us to experiment a (limited) Lean journey for Problem Solving on top of Agile, and progress steadily on the path of excellence.

This has been a truly exciting human adventure so far, thanks to the numerous great people I had the chance to work with... I am learning very much every passing year and realizing with a mix of fear and pleasure that the journey will never end.

What about the software community as a whole? Where does stand the Agile movement after 10 years?

Some Agile proponents publicly say, “Agile has been widely accepted as a mainstream way for building software ; the success of any project is only a matter of implementing correctly its tried and tested techniques!”

Paradoxically, I think that the stakes have never been so high for the Agile movement.

First, the vast majority of so-called agilists deliberately ignore the roots and motivations under the practices: any fellow having built a product backlog, worked iteratively and attended a retrospective will consider himself an expert, and ruin the image of Agile by his blathering. Not true? Just look and listen around you... “Agile” has become a revered buzzword, the temptation is just too high for people seeking quick money.

To XP core values of Communication, Simplicity, Feedback, Courage, Respect... we need to add Humility today: the good practitioner needs to keep the beginner’s mind, in the sense of “Shoshin” (http://en.wikipedia.org/wiki/Shoshin).

Motivated persons might devour many books on any subject, but that will not make them proficient or experts... Practice only does. Getting involved in real projects for years, testing, coding, refactoring, pairing... and the most important, making mistakes.

I don’t know for the rest of the world, but I believe there are scarcely anybody (a handful at most) that I would call an Agile expert in France. I’ve never claimed to be one, notwithstanding my double-digit experience.

The second source of fragility comes from inside the movement.

For the past three years, a dangerous rift have been threatening the Agile movement unity: in response to the neat predominance of Scrum over the other Agile flavours, Bob Martin has launched and popularized the “Software Craftmanship” movement.

The two approaches basically differ in what they consider should be the primary focus of attention for a software organisation:

  • Organisation and communication (soft skills) for Scrum
  • Coding as a craft (technical skills) for Software Craftmanship

This creeping internal conflict is now discussed openly on many top-notch blogs (Dan North, Robert Martin, and Martin Fowler among others). See Martin’s article for a summary at http://martinfowler.com/bliki/CraftmanshipAndTheCrevasse.html.

How sad Scrum has prevailed over XP. Aside from this certification folly, I think the system advocated by XP more powerful than Scrum or Software Craftmanship, as it devises a synergetic work on both the two aspects.

Finally, Agile, Scrum, XP, Software Craftmanship, Lean... who cares? These are mere labels. We professional software developers are employed to help our clients and users by delivering the best possible tool for their specific, real-life needs, on time. That only matters. The rest is crap.

And happy birthday, sir Agile!