The tips given in this book were pretty good, but I feel in some ways it's like a typical self-help book for programmers. The entire time I was reading it I was like "yeah, I agree with these points", but they were rarely things that I hadn't heard or thought about before. The difficult thing, I think, is actually implementing the ideas in this book properly, and the book doesn't really go into any subject in enough detail to help the reader figure out how to apply the techniques more effectively to their own workflow.

I would contrast this book with e.g. "Working Effectively with Legacy Code", which spends a whole book talking about how to refactor and unit-test highly-coupled code in all kinds of example situations. It's one thing to say that you should regularly refactor your code, or try to maintain modularity, but it's another thing to see hundreds of examples of how to actually accomplish this task, especially in cases where the actual decoupling or testing is very difficult to do.

So in this sense, I would say that this book reads pretty nice, but that it's probably not going to change my actual workflow very much. It's just too high-level.

This was an excellent read.

I really enjoyed the lessons and taking my projects to the next level.

I found this book very good, practical, and helpful - a great resource.

Lots of great tips.

4.7/5

While many complain about already knowing everything in the book, or that it's outdated, I believe they are quite missing the point. Perhaps this book didn't speak to you at the point you are at in developing your skills and crafts, but it might speak to someone else just beginning. Rating the book low for the reason it wasn't what you needed is rather disingenuous, as a rating should be a guide to the quality of the book overall.

The information contained in this book is essential for software developers who want to develop their skills and knowledge into a craft worthy of renown, to become masters of the field. It is essential for anyone working in a team or working solo.

The book is dated in the specific examples it uses, as would any book become so dated. What is *not* dated are the principles, the tips, the stories, the **wisdom** of this book.

As I was reading it, it felt all so familiar. Yes, most anyone who has been at the craft of software development will probably recognize much of this. I felt like the authors had been following me around during my consulting practice in the 90s as they pull from the same stories, lore and practice that I taught. Reading this book now, in 2012, I recognize all this and am grateful for the review. One may know a lot of practices, but having a refresher on the extent of what matters in software development helps.

As I approach a new team, a new job, I am looking to convey a lot of these concepts to people who may have only been cursorily exposed to them, and develop the team into a high quality, high craftsmanship group. This book will aid in that quite a bit, I hope (although the Russian translation may be lacking).

If you are just starting out, read this book.

If you are in the midst of your career, read this book.

If you are an experience veteran of the craft, or feel yourself a master, read this book, THEN TEACH IT.
challenging informative inspiring reflective medium-paced
challenging informative inspiring slow-paced

swalker251's review

4.25
informative reflective medium-paced

It was a re-read, but it was like 8 years since I read it for the first time. A timeless piece, except for some of the software advice (also for the heavy focus on Java...)
informative inspiring fast-paced

valid

Awesome. A bit outdated though, but still has a lot of sense.

Personally I have taken advice about text analysis and code signing.