Book Review: Head First – Software Development

Authors:  Dan Pilone  & Russ Miles

The software development approach  described in this book  is primarily based on Agile development principles and the Scrum framework (though not explicitly mentioned as such).  It also introduces the concepts underlying technical practices like Test Driven Development (TDD) and Continuous Integration (CI) in a very elegant manner using a single case study , code snippets, illustrations and exercises. Pure Agilists may disagree with some of the points made in this book for e.g. definition of velocity , suggestion of  a separate QA team for team for testing.

Though this book did not have much to offer to me in terms of novelty of the content it gave lots of ideas to try out during my consulting/training sessions. This is due to the fact all the Head First series books such as this one, are written based on the research in cognitive science and learning theory . They aim to provide a multi-sensory learning experience using visually rich format. So this is definitely one of the better books in the market to get started on the subject.

This is the first book I have read in the popular Head First series of software development books published by O’Reilley media. One can’t help comparing it to the other similar books I have read  in “for Dummies” series.  Based on this book alone, I can say that the Head First series emerges as a clear winner.

Look forward to reading more books in the Head First series.

Contents:

1. Great Software Development – Pleasing your customer : How to avoid  being a software development casualty by delivering software that is needed, on-time and on-budget.
2. Gathering Requirements - Knowing what the customer wants:  How user stories, brainstorming, and the estimation game help you to get inside your customer’s head.
3. Project Planning – Planning for success: How to work with the customer to prioritize their requirements and create an achievable development plan that you and your team can confidently execute and monitor.
4. User Stories and Tasks - Getting to the real work:  How to break your user stories into tasks, and how your task estimates help you track your project from inception to completion. How to update your board, moving tasks from in-progress, to complete, to finally completing an entire user story.
5. Good Enough Design – Getting it done with great design: How to refactor your design so that you and your team can be more productive.
6. Version Control – Defensive development: Using version control to ensure the safety and integrity of the source code in the repository.
6.5. Building Your Code – Insert tab a into slot b…: How a build tool allows you to write your own instructions for compiling and packaging the source code into deployable unit.
7. Testing and Continuous Integration – Things fall apart: How to put together a safety net to keep the build in working order and you productive.
8. Test-driven Development – Holding your code accountable: Tying together the version control, continuous integration and automated testing practices into an environment where you can feel confident about fixing bugs, refactoring, and even reimplementing parts of your system.
9. Ending an Iteration -  It’s all coming together…: How to effectively fit in user testing, refactoring , redesign, bug fixing activities towards the end of an iteration.
10. The Next Iteration -  If it ain’t broke… you still better fix it: How to prepare for the next iteration by adjusting your stories based on what the customer wants NOW, not a month ago.
11. Bugs - Squashing bugs like a pro: Confidently estimating the work it will take to fix your bugs, and apply refactoring and prefactoring to fix and avoid bugs in the future.
12. The Real World – Having a process in life: How to apply what you’ve learned to your particular project and where to go next for more learning.

Appendix 1: LeftoversThe top 5 things (we didn’t cover) : UML Class Diagrams, Sequence Diagrams, User Stories and Use Cases, System Tests vs Unit Tests, Refactoring

Appendix 2: Techniques and PrinciplesTools for the experienced software developer: Summary of all the Development Techniques and Development Principles covered in this book.

Links:

Book Details: Published:2010; Publisher: O’Reilly;Paperback: 516 pages.

[Please feel free to leave your comments below or bookmark/share this post]

This entry was posted in Book Review and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>