Techniques to "Catch Up"

 

I'm reviewing my students' updated plans for their projects. One team originally wanted full unit testing on the code as it was created, but added (my paraphrase) “if the project is late, some unit testing will be acceptable.” I responded that the farther behind the project was, the more review and testing is required.

Here's why. Projects get behind because the people don't understand something. The more they don't understand, the harder it is to create the product, and the more defects they introduce. This is not because the people are bad — good or bad development skills have nothing to do with it. This is a function of not clearly seeing what the system is supposed to be. If you find your project is behind, consider these options to help people see the system clearly:

  • Hold peer reviews on every work artifact. I prefer reviews, not walkthroughs, but anything to put at least one more pair of eyes on the product is good.
  • Inspect every defect fix. Yes, I do mean formal inspection, where someone reads the fix out loud.
  • Full unit testing on every piece of code. The developer will understand his or her code when trying to test it
  • NIghtly builds (more often if it makes sense). The faster the feedback to the developers about potential problems in their code, the faster you can decide what to do about the problem.
  • Implement by slice. Instead of implementing the components of a system, implement just enough of a component to complete a given feature or use case. In my opinion, Big-Design-Up-Front doesnt' work very well because the developers and architects don't actually understand what they're doing. This is not a competence thing :-); it's an artifact of us as an industry not being able to fully articulate the requirements.

Some of you may be shaking your heads, thinking, “No, this will put the project farther behind.” Nope, it won't. Instead of the illusion of progress, you'll see the real progress. Reviews of healthy code speeds up the project in my experience. Reviews of sick and tired code reveals the work still remaining.

The problem is you won't catch up. But you won't lose any more time — not without knowing you're losing time.

Leave a Reply

Scroll to Top