Free Book - Essential Skills for Agile Development
The Macau Productivity Center has released a PDF version of their book Essential Skills for Agile Development. It covers the basic development skills necessary for a programmer on an agile (XP specifically) team.
Chapters begin with short descriptions of the topic and then have many exercises focusing on code.For instance chapter 4 (on refactoring) has 5 pages of descriptive text and 34 pages of exercises and solutions. Because of the short chapter length only light coverage is given to each topic. However, the author states up front that he is using the 80/20 rule and that the reader will have to look elsewhere for a more detailed treatment.
Interesting to note that most of the reference are either to Object Mentor or the C2 wiki.
Table of Contents:
Chapter 1. Removing duplicate code
Chapter 2. Turning comments into code
Chapter 3. Removing code smells
Chapter 4. Keeping code fit
Chapter 5. Take care to inherit
Chapter 6. Handling inappropriate references
Chapter 7. Separate database, user interface and domain logic
Chapter 8. Managing software projects with user stories
Chapter 9. OO design with CRC cards
Chapter 10. Acceptance test
Chapter 11. How to acceptance test a user interface
Chapter 12. Unit test
Chapter 13. Test driven development
Chapter 14. Team development with CVS
Chapter 15. Essential skills for communications
Chapter 16. Pair programming
The book layout is a little odd for one concentrating on agile development since it leaves many of the core topics to the end of the book (unit tests are in chapter 12).
This book was written in Macau (a Chinese Special Administrative Region in Guangdong province) and seems to have a assumption that the exercises will be done by the reader. I'm not sure that the Western reader will typically do the exercises. I'd like to see the book broken into the main text and a separate workbook or at least make the exercises shorter by focusing on 2-3 that really drive the point home. This could make the book around 150 pages rather than the daunting 427. Additionally the text is a little stilted probably because English is not the author's primary language.
Overall it is probably a pretty good use of time for the experienced agilist to skim the narrative portions of the book and maybe have new to agile developers read it.