I first met Jonathan about ten years ago when he was a young programmer eager to prove to the world that he was the best he could be. At that time I was impressed with his willingness to be open to new ideas – even the idea that a tester could be valuable on an agile project that was practicing eXtreme programming (XP).
As I read “The Agile Samurai”, I was amazed once again with his simple way of expressing some of the most difficult issues we face in agile projects. He introduces us to the Inception Deck – a great place to start if you are thinking about transitioning to agile, or if you are having problems and think expectations need to be reset. One of the most powerful ideas he talks about which I see consistently lacking in many teams, is the idea of ‘Meet your neighbours’. Who do we need to talk to? Teams forget there is more than just the Product Owner or single customer that we have to please or may have information that can help us deliver the right product.
Jonathan uses examples to back up each principle he introduces. The conversations between the Master Sensei and the aspiring student at the end of each chapter are better than any thought provoking questions I have seen in some books. They make you stop and think; one of my favourite conversations is the “The Incomplete Story”. What do you do when you don’t finish a story within an iteration – something I see in many new agile teams.
After reading the book, I have adopted Jonathan’s ideas of sliders to show the trade-offs between quality, scope, budget, and time. These forces are in conflict, yet consistently clients want ‘all’. The sliders give us a great way to demonstrate the trade-offs between these forces – it is such a simple idea, yet so powerful.
One of the things I really appreciated was the acknowledgment of more than one “right” way to do things. He echoes my feelings – If we adhere to basic agile principles and understand them, we are ahead of the game and dramatically increase our chance of success. Agile is not a silver bullet, but takes work to achieve success. Vocabulary is one of the issues I struggle with when I go from client to client. Jonathan has done a suburb job of making his vocabulary generic using phrases like Master Story List.
One of the things I thought was missing was how ATDD feeds into the TDD cycle. The last few chapters are very developer focused, but I would have like to have seen how tightly coupled customer tests are to the developer tests. However, I am happy that he talked about the importance of building quality into the system using the practices of TDD and refactoring.
After I read the book, I realized how much I would really like to work with Jonathan again.