, in particular, eXtreme Programming
(XP), was born out of the need for effectively addressing the problems plaguing software development such as misunderstanding customers' requirements, missing deadlines, over-budget, conflicts between customers and developers and poor maintainability of legacy systems.
In 2002, the Macau Productivity and Technology Transfer Center
(CPTTM), started to hold courses on XP and Object Oriented design to teach the skills by hiring a well known software training and consulting company to do the teaching. However, because software design principles are abstract by nature, the students did not learn very well and never really acquired the expected skills on completion of the courses.
The author, as the manager of the IT department of CPTTM, decided to develop a new set of training materials, by selecting only the essential skills in Agile Development, while ignoring those useful but non-essential skills. He explained these skills and principles in terms of examples and added a lot of real world examples as exercises. After adopting this set of materials, with exactly the same instructor, the new students learned better and more easily and really acquired the skills on completion. The training materials was later organized into this book.
More specifically, "Essential Skills for Agile Development" employs a lot of easy-to-understand examples to demonstrate some essential skills in software development (including how to handle duplicate code, comments, bloated code), how to develop to the requirements of the customer, how to perform TDD (including functional testing, user interface testing and unit testing), how to effectively use a database in Agile Development and more. The book is heavily based on examples and does not contain much abstract description. By following the examples, readers will be able to learn the skills and take them to practice.
This book should serve as a good introduction to software developers who would like to learn more about Agile Development.
Required prior knowledge includes the abilities to read Java code, read and write SQL and read simple HTML code. Some basic concepts on Swing (e.g., JDialog, JButton, ActionListener), JDBC (e.g., Connection, ResultSet) and Servlet are desirable but not required.
:) "... I'd occasionally like a little more commentary than he delivers, and I'd sure like a good editor to work it over and clean up the prose, but the examples are first-rate, non-toy examples, and the chapter exercises are making me think in whole new ways about writing my own code."
:) "Kent is really doing a good job on writing this book that focus on OO problems and solutions by using examples without using too much boring theory words."