Hallucinating Morons
While it is true that you need paperwork to complete a project, at some point you have to realize there are individuals who don't actually want to get anything done. It doesn't matter that you have reasonable specifications and you have a reasonable design that leads to a reasonable solution. They are in whalesong nirvana, and no matter what they aren't leaving it. Projecturbation is all they care about.
In order to have an agile project, you have to have agile minds. Without agile minds, everything gets hung up on a zillion stupid specifications and statistics. When you have people who don't understand the basic problem, don't expect them to come up with a solution.
We've been writing software for about maybe fifty years. What do we have to show for it? Nothing. According to Adm. Grace Hopper, COBOL was supposed to have libraries of code written by industry organizations. That didn't happen. Do we have any real software engineering yet? No.
What we have are a plethora of languages that try to restrict the programmer into using good techniques. Take a look at F# and Haskell. Notice how much similarity they bear to Jackson Structured Programming. Hello! JSP was designed for COBOL. But what do we see? The programmers have to be coerced into using good techniques by the language. Therefore C is bad and F# and its ilk are good. Design and problem-solving techniques have to be put into the fundamental use of the language before the programmer will use them. (Do you know how much supposedly object-oriented C++ code I've seen that still uses goto? Leave 1967 behind!)
We have plenty of good design practices. But does anybody care about putting them to use? No. Why? Perhaps because it takes work. Yes, that horrible thing, work. Now we are trying to put good design practices into use by incorporating them into a language. And the language has to be made inscrutable in order to implement a design technique. The *design* concepts behind OO and functional programming are simple. But they have spawned horrific languages to implement simple techniques.
Now what attrocity will be spawned in the industry's various semantic wars? Obviously there are no lessons learned from our past adventures. The question of "how much hard data should a use case contain" sparks a big debate. Worthless! Leave the whalesong, projecturbation, bongs, goto's, and crack out of the project and the software.