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.