Meera has posted 70 posts at DZone. You can read more from them at their website. View Full User Profile

Head First Software Development

  • submit to reddit
Published by: O'Reilly
ISBN: 0596527357

Reviewer Ratings




Buy it now

One Minute Bottom Line

This book well justifies its addition to the prestigious ranks of the Head First series of O'Reilly. The bullet points, there-are-no-dumb-questions sections, and sharpen-your-pencil sections in each chapter are a real wonder. These alone guarantee the book will be a useful guide.


1.Great Software Development : Pleasing your customer
"If the customer's unhappy, everyone's unhappy." No doubt at all. The authors in this chapter show us 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
There is no easy way or a simple solution to complete the task of requirements gathering in any software project. It should have no language barrier: the language you need to use is that of your client.

This chapter is all about talking to the customer to figure out their requirements for the software. You will learn how user stories, brainstorming, and the "estimation game" help you get inside your customer's head.

3.Project Planning : Planning for success
In order to deliver a successful project we all know how crucial it is to plan it properly. In this chapter you will see how to work closely with the customer and to prioritize their requirements, define iterations, and create a project plan that can be successfully executed and well monitored.

4.User Stories and Tasks : Getting to the real work
Breaking down user stories into tasks is one of the major development artifacts of agile development. This chapter covers breaking user stories into tasks, how to estimate these tasks and track them in your project from start to finish.

5.Good-enough Design : Getting it done with great design
In this chapter you will learn how to refactor to be more productive, and how to obey the SRP, but also be DRY.

6.Version Control : Defensive development
Can you imagine how our life as developers would have been if not for version control tools? In this chapter, you will get to know everything you need to know about version control, and especially about Subversion, which the authors cover in detail. Check in and out, merging, tagging versions, what is a trunk, when not to branch, and many more points related to version control.

6.1. Building Your Code: Insert tab a into slot b...
Thank heavens, the authors have covered Ant. I definitely would have completely skipped the chapter if Maven was covered. Sorry Maven users, I really am sorry. You will learn why you need a build tool, as well as some of the common terms used in Ant like projects, properties, targets, and tasks in a simple build script.

To learn more about Ant check out the book "Ant in Action" by Manning.

7.Testing and Continuous Integration : Things fall apart
How many times have we not heard the famous plaint, "But it works on my machine!"? When you are done reading this chapter, these famous words will become something you heard in the past.

This is a very important chapter and the authors here cover my favorite tool, Cruise Control. If you have followed this chapter, your build should be in working order and you and your team should be becoming steadily more productive.

If you are planning to use CI in your project, read the book "Continuous Integration: Improving Software Quality and Reducing Risk" by Addison-Wesley.

8.Test-Driven Development : Holding your code accountable
This chapter will assist you in bringing together all the concepts you learned earlier: version control, CI, testing, and applying the TDD technique. The authors use TDD with simple techniques like red, green, and refactor. Red is used when your test fails; green indicates your test passes; refactoring cleans up any duplication, ugliness, old code, etc.

If you are a huge fan of TDD, read the book "Test Driven" from Manning.

9.Ending an Iteration: It's all coming together...
This chapter shows you how best to utilize your extra day on a project if you ever had one; how to fit in system testing, refactoring, redesign; and when to fix bugs. Don't miss reading the top 10 traits of effective system testing in this chapter.

10.The Next Iteration: If it ain't broke... you still better fix it
Planning for the next iteration, recalculating your estimates and velocity at each iteration, and applying what you learned in previous iterations are the main topics of this chapter.

11.Bugs: Squashing bugs like a pro
In spite of following the very best software development practices, we all find bugs in all the products we use, don't we? This chapter shows you how to handle bugs, to estimate time for fixing them, and to apply refactoring and prefactoring to fix and avoid bugs in the future.

12.The Real World: Having a process in life
Very funny, I read almost 417 pages and didn't even bother to see if the authors had explained the term "software development process". Having known the same, I never even thought about it until in this chapter, in which they tell us exactly what the term really means. If you have no clue what it means, start from page 418 in this book.

Published at DZone with permission of its author, Meera Subbarao.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Mikael Grev replied on Thu, 2008/03/06 - 12:36pm

Wow, they seem to make such good books nowadays... At least the last two get five stars in all three categories...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.