Agile has become today’s dominant software development paradigm, but agile methods remain difficult to measure and improve. Essential Skills for the Agile Developer fills this gap from the bottom up, teaching proven techniques for assessing and optimizing both individual and team agile practices. Written by four principals of Net Objectives—one of the world’s leading agile training and consulting firms—this book reflects their unsurpassed experience helping organizations transition to agile. It focuses on the specific actions and insights that can deliver the greatest design and programming improvements with economical investment. The authors reveal key factors associated with successful agile projects and offer practical ways to measure them. Through actual examples, they address principles, attitudes, habits, technical practices, and design considerations—and above all, show how to bring all these together to deliver higher-value software. Using the authors’ techniques, managers and teams can optimize the whole organization and the whole product across its entire lifecycle. Essential Skills for the Agile Developer shows how to Perform programming by intention Separate use from construction Consider testability before writing code Avoid over- and under-design Succeed with Acceptance Test Driven Development (ATDD) Minimize complexity and rework Use encapsulation more effectively and systematically Know when and how to use inheritance Prepare for change more successfully Perform continuous integration more successfully Master powerful best practices for design and refactoring
The book aims to provide a starting point for software developing teams that aim to write higher quality incremental software.
Opposed to the title suggestion, it does not necessarily focus on the process or characteristics of agile development, but discusses related concepts (such as TDD) that are likely to support in building of better software design. Other agile aspects are only briefly mentioned (pair-programming) and others completely neglected, based on criteria unknown to the reader. The book is also not focusing entirely on design patterns nor on object-oriented concepts, although many of them are used to support some of the examples. However, it does not reach deeper details and it seems that supporting the examples is the only reason that the concepts are presented together. It felt like some hints towards practical application are missing.
The main message is clear nonetheless: “software design is an ongoing process” and notable attention is required from the software engineer in order to fulfill the “...ility” requirements.
I consider the book to be an easy read for the entry-level software developer. It provides a good starting point for further reading in one of the touched domains (agile methodology, design patterns, object orientation).
this book is generic with lacking of skills!The only reason I finished the book is because I wanted to know how boring was. I even started it over about half way through it lost me. My advice don't waste your time better books out there.
This book covers a set of programming and design practices, that help software developers to deliver better products. Each practices is explored in detail, describing the how and why. This book can be used to improve your programing skills, and define your own set of design and coding guidelines. Among the practices described are "Separate Use from Construction", Encapsulation, Test Driven Design, Continuous Integration, and Refactoring.
I really appreciate it that the authors took the time to explain why a practice is so important, and what the benefits are when the practice is used. Seeing the benefits increase the change that people try the practice, learn it, and keep on using it.
If you consider quality important (who doesn't), and are looking for ways to develop better software, this book might be interesting for you!
This book is a good aggregation of existing agile practices however nothing new or groundbreaking. I liked its pragmatic approach to designing the system and the chapter on encapsulation (in a broader sense of the word) as a concept was especially well written. All in all, this is a good read but it will not rock your world if you've already been doing agile for a while.