Review of Clean Agile

By | March 7, 2020

Clean Agile: Back to Basics
Robert C. Martin
Prentice Hall, 2019

Bob Martin begins this book by describing it as his personal recollections, rather than a work of research. He starts by pointing out that agile software development started as a way of describing what had worked for some small development teams working on reasonably small projects. The book focuses mostly on the original intent of the people working on what would become agile.

In covering the topic, Martin ranges through the history and lessons of software development, describing both successful ideas and failures. A large part of what he seems to be doing is explaining the context around the development of the Manifesto for Agile Software Development. Many courses teach agile as a solution to all problems. This book spends the time needed to make sure you understand where agile came from so you can understand when and how to apply it.

Practices and Principles

The book describes the original practices and principles that made up agile and explains once again how and why they support agile development. The book is very much about effectively getting work done. Martin also describes how important the principles are in a world that is driven by software.

He explains the principles and how the original practices fit together to support the principles. He explains both low-level technical practices (like pairing and TDD), and values (like courage and communication). Martin does not lay out a set of commandments for how software should be developed. Instead, he explains the goals of software development and how agile practices and principles get us there effectively.

Other Opinions

One thing Martin did in this book that really surprised me was bring in people to write chapters that disagreed with his opinion. One of the important lessons of agile is realizing when you don’t know something and experimenting to fix that lack. Having chapters in his book that disagree with his opinions really follows the spirit of that agile lesson.

Hope

For me, one of the central concepts in the whole book is introduced relatively early:

Hope is the project killer.

Martin makes the very clear argument that we should run projects based on data, not on hope. As long as we

  • hope we understand the problem
  • hope we have a good solution
  • hope we are using the right technology
  • hope we have the right people
  • and, hope we can hit the deadline

we are pretty much guaranteed to fail.

He makes a solid argument that the goal of agile is to learn as fast as we can. We want to generate data about what we are doing. We want to make that data visible. This way we can manage the project, instead of hoping to succeed.

Conclusion

I would definitely recommend this book highly to any developer with more than a year or so of experience. It will be more useful once you get past the junior level tunnel vision on implementation and technology and begin looking at larger projects and realizing that tech itself is not enough.

For the part of the team doing implementation, the focus on practical techniques is a refreshing change from some current agile writing. For the people managing the process and team, the reminder of the original goals of agile serves as a check on the sometimes process-heavy forms of agile.

Leave a Reply

Your email address will not be published. Required fields are marked *