The Agile Samurai
I was first put onto this book by Fabiola. She mentioned the Inception Deck in one of her presentations. That caused me to do some research and stumble upon the book. If you haven’t heard about the inception deck, you can check it out here as well as in the book. The inception deck forms part of this book, but the book is so much more.
Unlike many computer science books, it is quite fun to read. The tone of the book is lighthearted. There is a lot of humor and a lot of Samurai references. Each chapter ends with a “Master Sensai and the aspiring warrior” where the author addresses a common question or concern with some ancient oriental wisdom, similar to what you might hear in the dojo.
If you want to learn about agile software development, this book is a great place to start.
The book is divided into five parts. Each part introduces a new aspect of agile development. Overall it hits all the major points and gives you a very good overview of the big picture. The inception deck section goes into deep detail on the inception and how to use it. The other sections just give you enough information to be dangerous. They do however point you in the right direction as to where to get more information.
Introducing Agile
The first couple of chapters simply give an overview of agile. It starts talking about basic principles like delivering value early and often and embracing change. Then it talks about what a typical agile team looks like. The book talks about how teams self-organize and how all the traditional roles (developer, tester, UI Designer, etc) are filled.
Agile Project Inception
This next section is all about the inception deck. It is divided into 2 chapters. The first chapter is all about the big picture stuff: defining the goal and the scope and getting everyone on the same page. The second chapter is about defining the general nature of the solution you are proposing, looking at the risks and then laying out a rough timeline and prioritizing various tradeoffs.
Agile Project Planning
This section is all about taking our initial idea for the project from the inception deck and fleshing it out more. It starts with a chapter on User Stories. It talks about what makes a good User Story and how to gather them. The next chapter talks about estimation. It’s all about how we take the user stories and assign them points based on their relative size. The last chapter in this section is all about dealing with the inevitable: reality doesn’t always conform to our expectations. It’s all about estimating your velocity and deciding where to flex.
Agile Project Execution
This section is all about the nuts and bolts of taking the user stories we have collected and generating working software. The first chapter is about managing iterations. It talks about deciding what stories to work on in each sprint and then how to actually write the code and test it to verify that it works. The next chapter is about communication. It talks about the various meetings, the planning meeting, daily standups, the show and tell with the customer, and the retrospective/planning the next sprint. The book is divided into five parts. Each part introduces a new aspect of agile development. The next chapter is about visualization. It explains how to create a visual workplace where the important metrics are easily visible.
Creating Agile Software
This last section is about the technical skills needed in order to make agile work. There are brief chapters on unit testing, refactoring, test-driven development, and continuous integration. They are really just overviews. Any serious student will require more information, so there is a “Where can I learn more?” section at the end of each chapter to point readers in the right direction.