My son became a black belt in Tae Kwon Do recently. As I was bragging to my friend about this, his reply really struck me. He said “Congratulations, now the real learning can begin.” This really impressed me. I told my son this and he nodded his head and gave me that all-knowing, pitying look that says “yeah Dad, everyone knows that”. But now that I look back on that exchange, I realize that this applies in other areas as well, not the least of which being agile development.
Early on in my experiences with extreme programming, it struck me how many times discussions started to lean in the direction of martial arts and eastern philosophies. We would talk about removing Big Design Up Front from the development process. Good design will emerge, like the lotus blossom. We have seen the rise of coding dojos and katas. Application development is a journey of many steps, and other such gems.
I think the most important lesson of all of them is the one that had my son shaking his head. Just as the Agile Manifesto says we are learning new ways of developing software by *doing it* and *helping others do it*, we need to always keep sight that no matter how much experience we feel we have, there is more to know, and more to gather from those around us. There is no One True Way, and we should never find ourselves measuring the worth of our efforts as to whether they fit a specific checklist of what Scrum is, or what is a truly Agile process. Agility is more about the mindset. It is about providing true value to your customer, and frequently. Its about working collaboratively, and embracing change.
Agile development, in some flavor or another, has been around for about a decade or more now. Agile has become widely accepted as a great way to develop software and more. I guess now the real learning can begin.