You can download a book for free, called Essentials Skills for Agile Development. I haven't downloaded it yet as I am still reading Refactoring to Patterns, but it is on my list.
The book appears to be a overview of test-driven development, refactoring, iterative development, and creating applications supporting high cohesion and low coupling.
The book is divided into the following chapters:
- 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 sounds promising, so I would download it and check it out. If you want more of a textbook to help you with a lot of these concepts, I can't recommend Applying UML and Patterns by Craig Larman enough.