Wednesday, 10 January 2018

[Book Review] Extreme Programming Explained by Kent Beck

Image courtesy:
For the longest time I was really been intimidated by the term "Extreme Programming" (XP) because for me the words represented an extreme form of something that I had very little experience or knowledge*. That is the reason I had kept myself away from reading literature on this concept although teams at ThoughtWorks had been following the values of XP long before I joined the organization. I read this book to strengthen my understanding of the core concepts of XP and deliver the same via a workshop.

The key takeaways from the book was the emphasis on the core values of XP and the supporting role that the principles and practices play in successful adoption of this discipline. The book focuses on the "human" nature of software development and on the social dynamics (of mutual trust, respect, communication) that can make or break teams.
"values bring purpose to practices, practices bring accountability to values" Beck, Kent. Extreme Programming Explained
As a practitioner, I found a couple of perspectives thought-provoking:
  • Frequent pair rotation (possibly multiple times a day!) - In practice, we have found this to be really challenging in projects where the code base grows over many years. Sharing context efficiently with all team members becomes fairly challenging.
  • Estimation in hours - Having spent a long time trying to understand points based estimation and convincing team members & customers about its merits v/s the traditional approach of using time/hours it was a little disconcerting hearing the author talk about hour based estimation.
Overall the book is a must read if you want to start the journey towards XP but if you have been a practitioner for a while you may feel that the author misses out on presenting detailed/indepth insights on some of the important topics. Even some of the anecdotes could have been more descriptive to keep the readers more engaged and to enhance their understanding of the concepts.

* I have no formal programming education, having completed my business degree specializing in Marketing & Finance. My primary role in my professional career spanning 10 years has been of a Business Analyst.

No comments:

Post a Comment