Good but also simplified without much depth and knew and practiced 90% of it already. If it could better teach these lessons that come with experience, that would be an awesome book. Too easy for someone to read this, parrot things without really getting it, and then end up in a state where words like “agile” don’t actually mean anything and are actually potentially a red flag for inexperienced/incompetence haha.
Cool to see that what was effective then is still effective now, although sort of sad to see that the common team dynamic problems still are the exacts same problems today at top sw crafting skill companies like Apple and Google. I would have hoped things had improved more with these lessons making there way further into the program management mainstream and the way companies get technical work done, but they really have not. But also inspiring to improve and make it better. I enjoyed the section on that, “improving yourself and influencing others”. But if it still sounds like the high priority great idea and this was 30 years ago, maybe the delivery of that idea is the problem. Not sure. Part of it for sure is the human experience: it’s never worth it to improve something technical in the short term if it costs trust and harms the relationship for getting future things done. The book did a great job talking about that aspect and how most every problem is ultimately a people problem if you ask enough whys.
I’m very curious in how to better deliver these learnings and why it really hasn’t caught on as much as it should. Most teams I work with are still divided in the way they get work done, they don’t test their code and waste everyone’s time, many people haven’t ever tried TDD, many people see pair programming as a 50% reduction in productivity, and so much time is spent talking and upfront planning the best solution when in that same time an MVP of two of the solutions could have been built to bring meat to a real discussion.
There’s a great section (ch 14) about the time value of money in this book, something everyone knows, but the degree of articulation and granularity and simple solutions for various common topologies of time being wasted was exceptionally well written. I’m sure I will be using one of those diagrams to ground a point in a future meeting this year 🤓
If you’re familiar with Toyota lean manufacturing, pair programming, TDD, 5 whys, and everything is ultimately a people problem not a technical problem, then you’ll also not gain much from this book.
Still, it was fun to read, especially given the time period and how much has solidified since then, at least for people who have read the agile manifesto and practiced it, read the lean startup and practiced it, learned TDD and practiced it, have experienced the net win of pair programming, etc.
I was expecting more absolutist opinionated advice which I tend to enjoy as it makes it easier to really get a feel for the advantages as well as being easier to critique, especially like it when opinionated advice comes with the author’s added critique of when the simplified advice breaks down. The book was well balanced and not absolutist to my surprise, especially given the “extreme programming” name.
I was also expecting more depth. The TDD section I was expecting to be more insightful, and it was barely a page long, which could only make sense to someone who already gets it. From everyone I’ve taught that went from knowing nothing about TDD to realizing how cool and useful it is, including myself, the process took weeks of learning and practicing. Learning and improving my testing/agile/lean skills, most notably TDD being an easy way to execute on that, has been my not so secret weapon for my rise in productivity, and I’ve had a great time sharing and helping others undergo that same epiphany.
The main reason I picked this up was because of how meaningless terms like agile, fail fast, MVP, and lean have become, being used optically to label practices that are far away from the original label when it comes to execution. I was curious to see the original XP, and it too is spot on!
Overall it is a solid book, but I question its value in teaching people who don’t already know the concepts. It’s too easy to read this then start repeating the buzz words as if the individual and team’s end execution has really changed and grown for the better. Hard to pick up these lessons without living them, and short of that having more depth in the sections that details someone else living them. But still a great reflection guide that might give enough to go learn in depth if the problem and solution resonate.