Consider the role of the elite cultivar in plant breeding. Consider
the open source model of finding fit mating candidates in the wild.
Consider the challenges of mating tools and requirements?
Invention and innovation are not the same thing. Inventions are
birthed. Innovations are bred. Not all mating is breeding (targeted
characteristics).
Some breeding is discovery. Back to the submarine analogy: at the
end of WWII, the US Navy captured the Japanese super-submarines that
were to have launched bombers off the US coasts. They were amazed at
the size and technologies. For the first time, they realized a
submarine was not just a ship hunter but could be a weapons platform.
They needed better power and the right weapons. They realized they
had nuclear expertise and they had captured the German rocket team.
From their nuclear expertise, the German's rocket expertise, and the
Japanese submarine, the modern submarine fleet was bred.
So whether we like it or not, we need requirements. A problem is not
that we need these but how these are translated into multiple
products: the costed deliverable descriptions (CDRLs), the Statements
of Work (CDRLs plus specifications and projected means), the
verification tests (look up Objective Quality Evidence (QBE)) and so
on. Note that NONE of these tell you how to code the thing. Oh,
wait a minute, those rotten XML people have these things called DTDs
and Schemas!! Can we ignore those? Of course we can. We're A
Microsoft Shop. We have... SharePoint.
Sometime a technology isn't wrong. It's a hostage. And the natives
don't want to screw with it.
People don't like waterfall but it has its place. Try to take the
S1000D standard and work out how you can derive the information it
needs without the Level of Repair Analysis. You can but it brings out
the point that software believes it can breed in isolation and nothing
is more deadly than that assumption. S1000D is one of a series of
specs for creating and controlling technical systems but in most
logistics groups today, it is the ONLY one being applied. It is
force-fit into the traditional logistics. Used with its family of
specs, it enables a smooth and easy to execute process. Used as a
hostage taken and stuffed into the herd, it's a bitch.
I'd say most of the time we are breeding software and if the code
can't get laid, it can't reproduce.