Often when I suggest a better way to do things, some kind of process improvement, people say, “I think that’s an excellent idea. Unfortunately, we’re on a very aggressive schedule. In a perfect world, I think your idea would be a wonderful way to do things, but we just don’t have the time now.” This is said about all kinds of reviews (requirements, design, and code), prototyping, usability testing, building strategically, unit testing…

I think the crux of this misunderstanding is this: “doing it right” is harder than “doing it easy”, and “doing it right” is something people made up because they’re nit-picks. It’s almost like etiquette – “In a perfect world, I would set the table properly, but I just don’t have the time. Tonight, to save time, we’ll eat off paper plates with paper towels.”

The problem with this is that these practices are meant to save time, effort, and money. Skipping them hurts, not helps. Skipping them actually creates the problem you’re trying to solve when you skip them! I say these practices are as superfluous as a doctor sanitizing his hands before he operates on me.