In this chapter, I'll introduce some important infrastructure tools and requirements that will contribute to your debugging success over the lifetime of your application. Some of the tools involve the engineering process, and others are software utilities. What they all have in common is that they allow you to see the progress of your project on a daily basis. I believe this daily monitoring is the key to getting your product out the door on timewith quality. Projects don't slip massively in one day; they slip a little each day along the way. All the ideas presented here and in Chapter 3, "Debugging During Coding," come from my experience in shipping real-world software products in addition to my work as a consultant with some of the best development shops in the world. I can't imagine developing without these tools and techniques. I've learned some lessons the hard way and watched others learn the same lessons, and I hope to save you time and pain by sharing with you what these lessons have taught me. You might think that some of these ideas don't apply to you because you're on a two-person or three-person team. Don't worry, they do. Even when I'm working alone, I still approach a project in the same way. I've worked on projects of every size I can think of, so I know that the recommendations I make scale from the tiniest to the largest teams. |