What we've learned in software so far is that you can build things out of junk, but that finding out what to build and how to best design it takes creativity - that is, lots of tries, working with the folks who will use the stuff in the end, and perfecting the best attempt. It's too bad building software isn't like building bridges. It's more like writing novels - maybe like writing science fiction.