- Paperback: 272 pages
- Publisher: Addison-Wesley Professional; 1 edition (August 29, 2011)
- Language: English
- ISBN-10: 0321543734
- ISBN-13: 978-0321543738
- Product Dimensions: 7 x 0.5 x 9.1 inches
- Shipping Weight: 1.3 pounds (View shipping rates and policies)
- Average Customer Review: 8 customer reviews
- Amazon Best Sellers Rank: #1,145,461 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Essential Skills for the Agile Developer: A Guide to Better Programming and Design 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Frequently bought together
Customers who bought this item also bought
“I tell teams that the lean and agile practices should be treated like a buffet: Don’t try and take everything, or it will make you ill–try the things that make sense for your project. In this book the authors have succinctly described the ‘why’ and the ‘how’ of some of the most effective practices, enabling all software engineers to write quality code for short iterations in an efficient manner.”
– Kay Johnson
Software Development Effectiveness Consultant, IBM
“Successful agile development requires much more than simply mastering a computer language. It requires a deeper understanding of agile development methodologies and best practices. Essential Skills for the Agile Developer provides the perfect foundation for not only learning but truly understanding the methods and motivations behind agile development.”
– R.L. Bogetti
Lead System Designer, Baxter Healthcare
“Essential Skills for the Agile Developer is an excellent resource filled with practical coding examples that demonstrate key agile practices.”
– Dave Hendricksen
Software Architect, Thomson Reuters
About the Author
Alan Shalloway, founder and CEO of Net Objectives, is a renowned thought leader, trainer, and coach in Lean, Kanban, product portfolio management, Scrum, and agile design. His books include Lean-Agile Software Development (Addison-Wesley, 2009), Lean-Agile Pocket Guide For Scrum Teams (Lean-Agile Press, 2009), and both editions of Design Patterns Explained (Addison-Wesley, 2001 and 2004).
Scott Bain, senior consultant at Net Objectives, is a 35+-year veteran in software development, engineering, and design. He authored the Jolt award-winning book Emergent Design (Addison-Wesley, 2008).
Ken Pugh, a fellow consultant at Net Objectives, helps companies move to Lean-Agility through training and coaching. His books include Lean-Agile Acceptance Test Driven Development (Addison-Wesley, 2011) and the Jolt Award-winner Prefactoring (O’Reilly, 2005).
Amir Kolsky is a senior consultant, coach, and trainer for Net Objectives with more than 25 years of experience.
Top customer reviews
When it comes to the agile movement I still remain torn. I watch it change and shift the industry's development processes to improve the customer satisfaction delivered by software teams successfully executing the processes, while at the same time I watch more teams use it as an excuse for the chaos they live in.
The good news is books like this one offer sound advice on achieving agility. The bad news is the agile team members I mentioned above that are living in daily chaos never pick them up. They are too busy putting out the day's hottest fire.
Moving a team that cannot produce using waterfall or RUP to a shiny new agile process will do nothing but make them produce crappier software. An inexperienced team that can't produce quality software with one process won't start producing quality by claiming to be agile.
I tell you all that because I want you to understand where I come from when it comes to agile methodologies. I am not an Agile Movement Zealot, but I find the guidance provided by this book very valuable.
The book has chapters on Programming by Intention, Separate Use from Construction, Define Tests Up Front, Shalloway's Law and Shalloway's Principle, Encapsulate That!, Interface-Oriented Design, Acceptance Test--Driven Development (ATDD), Avoid Over- and Under-Design, Continuous Integration, Commonality and Variability Analysis, Refactor to the Open-Closed, Needs versus Capabilities Interfaces, and When and How to Use Inheritance.
The book ends with three Appendixes- Overview of the Unified Modeling Language (UML), Code Qualities, and Encapsulating Primitives.
Each topic is considered a Trim Tab. According to Wikipedia Trim tabs are small surfaces connected to the trailing edge of a larger control surface on a boat or aircraft, used to control the trim of the controls. Boats with outboard engines will often have trim tabs attached to the lower unit of the engine. Many airplanes (including gliders) have trim tabs on their elevators, as a simple method of providing trim in the longitudinal axis. Richard Buckminster "Bucky" Fuller used of trim tabs as a metaphor for leadership and personal empowerment. The authors of the book say they are the actions and insights that give the most understanding with the least investment.
The first chapter, programming by intention is one topic that still is kind of weird to me. Every explanation of what it is could just be classified as common sense to me. I agree with everything that goes along with programming by intention, I just don't understand why or how you would not program like that.
Separate Use from Construction is a nice perspective on the reasons for using dependency injection, ORM mappers, and not over designing when using such tools.
Define Tests Up Front explains why testing is not just about testing, but also about code quality.
Shalloway's Law and Shalloway's Principle is all about reducing redundancy.
I am glad the book includes the chapter on Commonality and Variability Analysis. It is just as valuable today as it was when it appeared in the first edition of Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition).
The best thing about this book is that each subject is truly the actions and insights that give the most understanding with the least investment. Each chapter is a little nugget of wisdom that has been tested over time. The book is all about one of the cores that allows agility to be a reality on a project and that is great programming practices.
Over all I found the book a very easy and enjoyable read. I highly recommend it to developers of all languages.
This is a short book at just over 200 pages, and as such it will not be very useful when it comes to teaching a non programmer how to program. The entire book is well written and frequently insightful. I found the introduction (preface and notes) and its quotes from Buckminster Fuller especially thought provoking with its unique way of looking at software development.
The book is made up of a series short chapters, each of which briefly covers one programming best practice, which the book refers to as .Trim Tabs.. The .Trim Tabs. concept is explained in the introduction and is a way to look at the effect that minor changes to the way code is written can have major effects on productivity. Each chapter goes into just enough depth for someone with programming experience to understand the concept and nothing more. Each chapter also is very good at giving an example of a good book that is specific to the current topic so that anyone who wants more in depth information can easily find it.
The first half of the book is dedicated to the low level practices of development such as refactoring, test driven development, encapsulation, and removing redundant code. The book does an excellent job of covering this broad range of topics in just under 100 pages. However, due to the brevity, an experienced developer may find themselves arguing with the book.s oversimplification of some topics.
The second half of the book goes over more high level design and development practices such as the dangers of over designing a system, continuous integration, open-closed principle, Law of Demeter, and favoring aggregation over inheritance. It is in this section that I started to feel that the book should have been longer to do justice to some of the topics. All of the information they included was of the same high quality as the first portion of the book, but the complexity of the topics covered meant that a lot of information was left out. As an example, in the section on continuous integration there is only a page and a half on Continuous Integration Servers. No matter how well written that page and a half is, it isn.t going to convey the true value that CI servers can provide.
This book is perfect for someone who is moving from a procedural language into the OO world for the first time. Also, anyone who.s team is considering doing agile development for the first time and wants to confirm that their current development practices are up to the task will find this book to be very useful.