I often hear/read people talk/write about how Agile is a mindset and how it should not characterized by a set of practices. It’s been said that “confession is good for the soul”, so I’ll confess that I find myself making such statements and while I wholeheartedly believe that Agile is largely a value system, its important not to throw out the baby with the bathwater. My observation and experience is that doing so results in teams and organizations (and consultants) implementing whatever they want.
Anyone who has formally learned to play a musical instrument or a sport or art or craft (you get where I’m going) knows we start with learning the fundamentals (which includes practices). For someone learning to play the piano, you need to know where middle C is, the difference between black and white keys, you need to understand and be able to play scales, understand and play 1-3-5 (chords) etc etc. There is a set of fundamentals that you need to have if you intend to be able to play music (that is pleasing to the ear).
Once you have the fundamentals down, you become empowered to improvise and try new things on your own. To take some risks. To do something different. You can do this because the fundamentals form the basis of any improvisation that you do. You build upon the fundamentals. You may also recognize this as Shuhari.
So what are the fundamentals for a team who says it’s Agile? Based on my experience, I would say they need to able do the following:
- Attend to the needs of everyone involved (see Antimatter principle).
- Deliver value in small increments
- Deliver value frequently
- Respond to change quickly
- Learn regularly
(As a side note, don’t try “scaling” – whatever that means – if your teams don’t have a handle on the fundamentals).
Whatever you do, make sure you know what the fundamentals are and practice them till you’re really good at them. Then go from there.