I've read and reviewed several of the "Head First" series of books on programming languages and software design, so I thought I would give this one a try too. Unlike so many books on software development, this one doesn't start with a terse and rather useless overview chapter. Instead it clearly tells you who this book is for: Those who have a background in programming, specifically Java, who want to learn techniques for building and delivering software. First the book explains the Head First concept in learning - using puzzles, cartoons, graphics, and anything else that should stick in your head to explain the usually dry topic of software engineering.
The first three chapters - "Great Software Development", "Gathering Requirements", and "Project Planning" - talk about how software development usually goes wrong and talks about some of the methods for organizing your efforts. Chapter 4 puts some of these ideas in motion when the book analyzes the development of a mythical application, iSwoon. The book has the application get into serious trouble and then shows you the way out of the abyss using good software design methodology. Next, the book has you adding features to "BeatBox Pro", which is an application from the "Head First Java" book. This is where your ability to understand Java code comes into play. The book also discusses the use and usefulness of the Ant build tool for Java projects. However, this is a book on how to approach the design of the software, not how to perform the detailed coding, so having somewhat rusty Java skills should be acceptable. Throughout the book are puzzles, Q&A sessions, and "There are no dumb question" sessions that really drive home the points being made. The following is the table of contents for the book:
1. Great Software Development
2. Gathering Requirements
3. Project Planning
4. User Stories and Tasks
5. Good-enough Design
6. Version Control
6.5 Building Your Code
7. Testing and Continuous Integration
8. Test-Driven Development
9. Ending an Iteration
10. The Next Iteration
11. Bugs
12. The Real World
Appendix A. Leftovers
Section A.1. #1. UML class diagrams
Section A.2. #2. Sequence diagrams
Section A.3. #3. User stories and use cases
Section A.4. #4. System tests vs. unit tests
Section A.5. #5. Refactoring
Appendix B. techniques and principles
Section B.1. Development Techniques
Section B.2. Development Principles
In summary I would highly recommend this book for someone looking for an approachable guide to software development. It will probably also help students enrolled in a course in software engineering since it makes clear and accessible a subject that usually gets bogged down in dry academic prose in the textbooks usually assigned for such classes.