January 25, 2009 20:13
Most of us would agree with Christopher Alexander, that the central task of architecture is creation of a single, shared, evolving pattern language. And pattern language does not necessarily mean a suite of general ideas.
It can be anything: a development framework, or a set of APIs, or a pool of reusable artifacts. In either case, clarity and usability is that what matters. Hey, it's a pure darwinism: struggle for existence and natural selection. The more people choose the artifacts you create, the better those artifacts spread, and the longer they stay.
That's why one of the most significant jobs of an architect is to create appealing artifacts. Those that developers will use correctly and will want to reuse. Those that are easy to understand, adapt, evolve, and explain to others.