This week's book giveaways are in the Java EE and JavaScript forums.
We're giving away four copies each of The Java EE 7 Tutorial Volume 1 or Volume 2(winners choice) and jQuery UI in Action and have the authors on-line!
See this thread and this one for details.
The moose likes Book Reviews and the fly likes Essential Skills for the Agile Developer: A Guide to Better Programming and Design Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Books » Book Reviews
Bookmark "Essential Skills for the Agile Developer: A Guide to Better Programming and Design" Watch "Essential Skills for the Agile Developer: A Guide to Better Programming and Design" New topic
Author

Essential Skills for the Agile Developer: A Guide to Better Programming and Design

Book Review Team
Bartender

Joined: Feb 15, 2002
Posts: 936
Author/s    : Alan Shalloway, Scott Bain, Ken Pugh, Amir Kolsky
Publisher   : Addison-Wesley
Category   : Design Patterns, UML, and Refactoring
Review by : Matthew Brown
Rating        : 9 horseshoes

This book is aimed at developers beginning to work in an agile way, and lays out a set of principles and practices for design and programming that will help them succeed. Although really, most of them are more generally applicable than that: this is all about "good design", with an emphasis producing code that is easy to change. As a developer with relatively little experience of agile methods, I was a bit surprised how much of this was relevant to my own work. The main difference that the agile focus seems to make is when to do things, not how.

Key subjects covered include: programming by intention, separating use from construction, and acceptance-test driven development. Encapsulation is a theme running through the book, and they take a wide view of what this actually means, interpreting established design patterns as encapsulations of some particular concept so that it is easier to adapt. The book isn't tightly coupled to a particular programming language, although it's usually considering an object-oriented approach. Examples are generally Java/C#, with occasional comments about other languages, but most of the time it's talking about more general principles. The examples are clear and easy to understand.

It's certainly readable and useful. My one real criticism is that it's occasionally a bit repetitive. Sometimes that's simply a natural result of way the different concepts under discussion interact, but there are times it seems unnecessary (one small example: a comment about the origin of the "extends" keyword in Java appears twice). Perhaps that's a danger in a multi-authored book? But that's a small fault in an otherwise excellent book.

---
Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.

More info at Amazon.com

[Edit - fixed my HTML - MAB]
Book Review Team
Bartender

Joined: Feb 15, 2002
Posts: 936
Review by : Mohamed Sanaulla
Rating        : 9 horseshoes

This book does justice to its title and subtitle- it clearly tells you the basic design principles to write good code which is easy to read, debug and extend. At first glance the title may seem misleading as it uses the word "Agile Developer" but there isn't much specific to agile in the book, though familiarity with terms like Scrum or Kanaban or TDD would be an added advantage.

Salient features of the book:
- Emphasis is on the basic design principles like Cohesion, Coupling, Encapsulation, Redundancy, Coding to Interface. These are further built upon to introduce/redefine the ideas.
- Covers each concept in depth and with the aid of repetition of concepts helps in grooving them into the developers mind.
- References to other Books which cover a referred concept in depth which can help in in-depth study.
- Appendices with extra information to aid in better understanding.
- Concepts explained with simple examples to drive home the concept.

Few gotchas:
- People not familiar with coding/new to it might not find the book very appealing, hence I would recommend the book to someone who has worked on a large codebase and may be some legacy code (not dating back to 80s).
- Suggestion would be to read the Appendix first, might help for people who are not familiar with UML notation. Basic design principles are also explained there.
- Familiarity with GoF design patterns is a PLUS, as these have been referred all over the book.
- One can visit the references provided in each chapter to read up more.

So, if you are thinking of picking this book- I would say go ahead, you can always re-read it to refresh the concepts.

---
Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.

More info at Amazon.com
Book Review Team
Bartender

Joined: Feb 15, 2002
Posts: 936
Review by : Ankit Garg
Rating        : 8 horseshoes

This is a very good book for anyone who has to makes design decisions in development. It describes different approaches to design and development and the pros and cons of each approach. For example the book tells you where to use inheritance and where to use delegation. Its not a design patterns book, rather it describes different programming methodologies and techniques which are required in Agile development. The book covers a wide variety of topics which will increase your knowledge by many folds. If you have been in development for some time, you might be familiar with some topics covered in the book as you might already be following them. The techniques described in the book are extremely practical and useful.

The book is easy to follow on most places. There are however some chapters which are a little confusing. Specifically the examples in the Needs vs Capabilities interface are not easy to follow and relate to in real life scenario. It also took me some time to figure out what Shalloway's Law described in a chapter meant. Other than that all other chapters are easy to understand with the examples and diagrams. The Appendixes are also useful for beginners.

Overall this is a very good book and is a very good read for any developer who has some experience in development.

---
Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.

More info at Amazon.com
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Essential Skills for the Agile Developer: A Guide to Better Programming and Design