I have to admit, I have a little quest going on. To read all books that come up on the first page (12 items) when searching for the word ”Kanban” in Books on Amazon.com (sorted by relevance). It’s a fun quest, but I don’t know if I will ever complete it though, since the search result keeps on changing over time 🙂 Anyhow, in that quest, I have read ”Learning Agile” by Andrew Stellman and Jennifer Greene. The book was released in November 2014 and the sub title is ”Understanding Scrum, XP, Lean, and Kanban”.
The book has ten chapters and they are:
- Learning Agile
- Understanding Agile Values
- The Agile Principles
- Scrum and Self-Organizing Teams
- Scrum Planning and Collective Management
- XP and Embracing Change
- XP, Simplicity, and Incremental Design
- Lean, Eliminating Waste, and Seeing the Whole
- Kanban, Flow, and Constantly Improving
- The Agile Coach.
The first chapter sets the agenda for the book by presenting what Agile is (”Agile is a set of methods and methodologies that help your team to think more effectively, work more efficiently, and make better decisions”) and how it is structured.
In the second chapter the Manifesto for Agile Software Development is introduced. This and all the following chapters are structured in a very pedagogical way. The subjects are first described in ”plain text”, broad up again in a narrative (fictive stories), summed up as key points and finished off as a FAQ (Frequently Asked Questions). This redundancy is intentional according to the authors ”we do it to help you get that ’aha’ moment”. For me, that have read a few other books on Agile, this gets a little boring and time consuming with all the repetition. The book spans 420 pages which could have, in my option, been less to be a truly ”agile” book.
Moving on, the third chapter explains The 12 Principles of Agile Software in greater detail. This is a good chapter to get a deeper understanding of the Agile principles!
Forth chapter starts off with a good slogan from the board game Othello: ”A minute to learn, a lifetime to master”. This can be applied to all Agile methodologies described in this book (well, maybe not just a minute to learn, but they are all very simple to get started with but needs a lot of practice to ”master”). If you want to know the basics of Scrum, you can download the official Scrum Guide. More in this chapter are the five Scrum values:
Chapter 5 completes Scrum, it has a reference to a survey (on page 142) that states that 64% of the features in software is never used! It can be due to something called gold-plating. Developers that, with the best of intent, throw in extra functionality that never has been requested.
Chapter 6 & 7 covers XP (eXtreme Programming) that has similarities with Scrum. A personal takeaway from this section (though I’m not programming anymore) was the section about code smells or anti patterns (”a pattern of behavior that a team exhibits that cause problems with the project”). Those being listed are:
- Shotgun surgery – A small change to one part of the code requires another change in another part of the code than in turn requires yet another change somewhere else in the code and so on.
- Half-baked code – An object that needs to initialize other (irrelevant) objects as well to be used.
- Very large classes – Hard to read and maintain.
- Duplicated code – Identical (or almost identical) blocks of code that does the same thing.
- Spaghetti code – Code with complex and tangled structure.
- Lasagna code – Too many layers.
- Hook – A hook added for future use (but then never used).
- Edge case – Code that handles an edge case that seldom (never) will happen but makes the ”normal flow” much more complex to understand and maintain.
”A system that’s designed to immediately report a failure as soon as it happens is called a fast-fail system” – Andrew Stellman & Jennifer Greene
I would also like to list the XP practices:
- Pair programming
- Continuous integration
- Energized work
- Ten-minute build
- Incremental design
- Whole team
- Sit together
- Test-driven development.
Chapter 8 talks about Lean that is a mindset with its own values and principles. The values are:
- Eliminate waste
- Amplify learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build integrity in
- See the whole.
Reaching the end here, chapter 9 is about Kanban, flow and constantly improving (kaizen). Not so much new stuff for me here, once again WIP (Work in Process) limits are enforced and described as the ”secret sauce” behind Kanban.
”Kanban is about helping a team improve the way that they build software” – Andrew Stellman & Jennifer Greene
Final chapter tells you about the agile coach that helps the team adopt agile. The team needs an agile mindset to be successful with an agile methodology.
If your are new to Agile, and have a lot of time to read, I can recommend this book to get more knowledge about Scrum, XP, Lean and Kanban. If you only want to know about a specific method, or have short of time, there are other more suitable books around.
All the best,
Tomas from TheAgileist