by Grady Booch
There are many systems that we know how to architect (usually because we’ve built them many times before). There also many systems for which we know a process that will lead us to a reasonable architecture (usually because the forces on our project permit incremental and iterative development). There are even some things we know how not to architect (because we’ve tried before). However, there are some systems for which we hardly know where to begin (because not only are they wickedly hard, they are also far beyond our current art and science). These are the classes of systems that most interest me: how do we architect the unknown? In this presentation, we’ll start by laying a foundation of what we know we know about software architecture, and then we’ll consider what we know we don’t know. Following that, we’ll take a leap into the unknown and look at the kinds of systems that will stretch us both technically, socially, and ethically.