"There is a gap between vision and execution we can dream up many things that have a software element to them, but to turn that into running systems is a challenge," he said. "Pure computer science can limit us, so can social, legal and moral things. But where most organisations stumble is at the cusp of design and organisation."
Booch said one of the greatest advances in software design in the past 10 years is the observation of design patterns - the ability to look at things at a higher level of abstraction that transcends the original programming language.
"To express patterns, we needed to catalogue in the physical networking domain and the abstract logical domain. What we lack is an ability to describe significant or architectural patterns," he said.
"In civil engineering there is a history of architects learning by studying the works of their masters - Frank Lloyd-Wright, Christopher Wren, Frank Gehry. There are books that catalogue the different genres of buildings and observe the common kinds of architectures. No such reference exists for software engineering."
Booch said another problem is that software is often written by many programmers working with other stakeholders, who can be geographically and temporally dispersed.
"We know that code is the ultimate truth, but not all the truth. There is entropy, a loss of information, from vision to construction, so even though I may stare at some code, I do not have access to the rationale or the patterns that sweep across the individual lines of code," he said.
"So we have information loss, therefore I have tried to define what we can do to improve the developer experience using a thing called collaborative developing environments. It is not a killer app, but a weaving together of 100 small things from social networking sites. We want to produce technology to help us deal with the geographical and temporal distribution."