Following the Instructions

When I was in seventh grade, my art teacher stressed that any student who followed his instructions would get at least a B—no artistic talent required. He was a 220-pound ex-Marine, and considering that he drove that advice home at least once a week, I was amazed at how many 98-pound seventh-graders didn't follow his instructions and didn't get at least a B. Judging from their work, it wasn't because they were tormented by glorious, conflicting artistic visions, either. They just felt like doing something different.

As an adult, I often see software projects that fail merely because the developers and managers who work on them don't follow the instructions—the software-development fundamentals described in this chapter. It's true that you can develop software without mastering the fundamentals—sometimes even rapidly. But judging from most people's results, if you don't master the fundamentals first, you'll lack the project control needed to develop rapidly. You often won't even know whether you're succeeding or failing until late in the project.

Suppose you're starting a painting project, and you read the following instructions on the paint can:

  1. Prepare the surface: strip it down to the wood or metal; sand it smooth; remove residue with a solvent.

  2. Prime the surface using an appropriate primer.

  3. After the surface is completely dry (at least 6 hours), apply one thin coat. The air temperature must be between 55 and 80 degrees Fahrenheit. Let dry for 2 hours.

  4. Apply a second thin coat and let dry for 24 hours before using.

What happens if you don't follow the instructions? If you're painting a doghouse on a hot Tuesday night after work, you might have only 2 hours to do the job, and Fido needs a place to sleep that night. You don't have time to follow the instructions. You might decide that you can skip steps 1 through 3, and apply a thick coat instead of a thin one in step 4. If the weather's right and Fido's house is made of wood and isn't too dirty, your approach will probably work fine.

Over the next few months, the paint might crack from being too thick or it might flake off from the metal surfaces of the nails where you didn't prime them, and you might have to repaint it again next year, but it really doesn't matter.

What if, instead of a doghouse, you're painting a Boeing 747? In that case, you had better follow the instructions to the letter. If you don't strip off the previous coat, you'll incur significant fuel-efficiency and safety penalties: a coat of paint on a 747 weighs 400 to 800 pounds. If you don't prepare the surface adequately, wind and rain attacking the paint at 600 miles per hour will take their toll much quicker than a gentle wind and rain will on Fido's doghouse.

What if you're painting something between a doghouse and a 747, say a house? In that case, the penalty for doing a bad job is less severe than for a 747, but a lot more severe than for a doghouse. You don't want to have to repaint a whole house every 2 years, and therefore you hold the results to a higher standard than you do with a doghouse.

Most of the software projects that have schedule problems are house-sized projects or larger, and those projects are the primary concern of this book. On such projects, the development fundamentals save time. Far from being as rigid as the steps on the paint can, if you know enough about them, they also provide all the flexibility anyone ever needs. Ignore the instructions if you wish, but do so at your peril.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.115.195