Dan Pilone is a Senior Software Architect with Blueprint Technologies, Inc. He has designed and implemented systems for Hughes, ARINC, UPS, and the Naval Research Laboratory. He also teaches project management, software design, and software engineering at The Catholic University in Washington D.C. Dan has written several books on software development, including UML 2.0 in a Nutshell (0-596-00795-7) and UML 2.0 Pocket Reference (0-596-10208-9), both O'Reilly.
Russell Miles is a senior consultant for SpringSource in the UK where he works with various companies to help them take full advantage of the Spring Framework. To ensure that he has as little spare time as possible, Russ contributes to various open source projects while working on books for O'Reilly.
Dan Pilone is the founder of Element 84, a consulting and custom software development company. He has designed and implemented systems for NASA, Hughes, ARINC, UPS, and the Naval Research Laboratory. He has taught project management, software design, and software engineering at The Catholic University in Washington D.C. Dan has written several books on software development, including Head First iPhone Development, Head First Software Development, UML 2.0 in a Nutshell (0-596-00795-7) and UML 2.0 Pocket Reference (0-596-10208-9).
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:
Since becoming a Development Manager, this is the first book I've made required reading for the team. Good software development is NOT common sense. When confronted with something as complex as a software project, people tend to respond with panic (which the book calls the Big Bang) or massive attempts at control (the Waterfall method).
HFSD preaches Iterative Development without all the dogma of Scrum or XP. It leaves the controversial stuff to other books, focusing on what good developers pretty much agree on. The practices are easily adopted and flexible, although like all worthwhile things in the world, they take a lifetime to master.
There's a lot to like about this book. The other Head First guides are good, but the style really, really fits the material here ... maybe because development is really less about technology than it is about working with others.
Was this review helpful to you?
When I first looked at Head First Software Development by Dan Pilone and Russ Miles, I was thinking that it would be best targeted at people who had never formally written software before. It definitely fits that bill. But I can see a use for experienced developers who have never been exposed to agile development techniques. Either way, it's a very good book.
Contents: Intro Great Software Development: Pleasing Your Customer Gathering Requirements: Knowing What The Customer Wants Project Planning: Planning For Success User Stories and Tasks: Getting To The Real Work Good-Enough Design: Getting It Done With Great Design Version Control: Defensive Development Building Your Code: Insert Tab A Into Slot B... Testing and Continuous Integration: Things Fall Apart Test-Driven Development: Holding Your Code Accountable Ending An Iteration: It's All Coming Together... The Next Iteration: If It Ain't Broke... You Still Better Fix It Bugs: Squashing Bugs Like A Pro The Real World: Having A Process In Life Appendix 1 - Leftovers: The Top 5 Things (We Didn't Cover) Appendix 2 - Techniques and Principles: Tools For The Experienced Software Developer
The authors do a great job of covering the entire software development process, from getting requirements to debugging code. But instead of going back to the older and more traditional waterfall method of software development, they chose to expose the reader to the agile methodology. Personally, I think that's a great decision, as it gets across important techniques such as story cards, iterations, and test-driven development. Learning those skills as the primary way to build software goes a long way towards prepping the new developer for the marketplace.Read more ›
Was this review helpful to you?
I looked through this book online using Amazon and some of the pages looked of interest to me as I am working with some new teams who have not used Agile before and there were parts of this books (mainly around user stories) which got my attention.
I have been developing for 25 years and have been managing Agile teams over the last 4 years, recently using Scrum as the framework of choice. I was looking for some further material to expand my knowledge base and having read Head First Design Patterns (highly recommended) I thought this book would fit my needs.
For me, I was dissapointed. I read this book basically cover-to-cover in about 3 hours and there were aspects which made me think, on the whole there was nothing new in this book and the topics it did cover it did not go into any real depth. For me, not a good use of my money.
However, as a book to get my team and future teams who are new to Agile, Test First, Continuous Integration, Version Control, Unit Testing, User Stories, etc, this book is great and I do recommend it.
The Head First series of books take the reader on a simple journey. Nothing complex or where there is something complex they de-complex it and in some ways dumb it down to a reasonably low common-denominator. This means just about anyone can read this book and should understand the concepts and principles in it. I plan to provide this to some non-technical BA's who I work with and other than the section on Unit Testing know that they will be able to read this, digest it, and understand the principles and then hopefully use them within our organisation.