At last week's WJUG (Wellington Java User Group) meeting Errol Thompson presented about his recent PhD at Victoria University. Advance apologies to Drs. Thompson and Maslow if my spin misconstrues their work.
The basic need of the geek is the ability to express and realize ideas in code. Knowledge of the lingo and good coding style is the entry level ticket.
A way to express recurring patterns in OO software succinctly by labeling and cataloging for example pioneered by the
GOF (Gang of Four).
Taking separate viewpoints, such as
4+1, as a means to highlight an area of interest in the design without overwhelming the audience with the complexity of the system as a whole.
Qualities of Architecture
Accounting for the needs of different stakeholders (customers, company owners, IT people, the rest of the community) to direct the design effort, or to rate an architectural design as to how suitable or helpful it is in shaping a solution to the problem at hand. Read
Software architecture in Practice.
There is yet something beyond structure, model, and quality: However sophisticated or complex, these still can be likened to designing by numbers. The guru, not entirely unlike the ancient teachings of the Zen master, has an at times annoying yet no-nonsense practical directness. Always ready to throw in an idea seemingly from left-field, but argued with relevant detail, equally enthusiastically using and discarding tools from any of the lower levels.
Complexity: Love it and hate it
An interesting question according to Errol: What motivates the progression to higher levels?
Booch argues the challenge of ever increasing complexity. Indeed each level entails an increase in complexity, yet a reduction of design elements visible at any one time. I personally have a love-hate relationship with complexity. Let me explain using the analogy of taking a road trip. There is the complexity of navigation vs. the complexity of the route traveled. Or in other words the question how much effort you put into maps and stopping to ask directions, compared to how much petrol you have to put in the tank to get to the destination.