Pet peeve time. I was talking to an unnamed source today (that's what he said he wanted to be called) about a project where they're bringing in a big, heavy process with lots of documents because... wait for it... "we need to introduce some rigor."
Come on, folks! Let's be clear: formality is not rigor.
- rigor: the quality of being logically valid
- formality: following or being in accord with accepted forms, conventions, or regulations
Rigor is what we want. We want our software to be "logically valid." We want it to work, to be maintainable, and to be valuable.
Rigor doesn't require formality. XP teams, for example, are known for their informality. But an XP team writes tests before code, has every line of code peer reviewed, constantly reviews and improves the design, and completes new business-valued functionality every few weeks. That's a very rigorous approach to software development.
I would say more, but Steve McConnell already said it better in his article, "Cargo Cult Software Engineering." The introductory quote from Richard Feynmann summarizes my point best:
In the South Seas there is a cargo cult of people. During the war they saw airplanes with lots of good materials, and they want the same thing to happen now. So they've arranged to make things like runways, to put fires along the sides of the runways, to make a wooden hut for a man to sit in, with two wooden pieces on his head for headphones and bars of bamboo sticking out like antennas--he's the controller--and they wait for the airplanes to land. They're doing everything right. The form is perfect. It looks exactly the way it looked before. But it doesn't work. No airplanes land. So I call these things cargo cult science, because they follow all the apparent precepts and forms of scientific investigation, but they're missing something essential, because the planes don't land.
Let's not mistake formality for rigor. If we do, we could end up sitting on a bamboo runway, waving our formal documents, and wondering why a rigorous process hasn't landed.