||Here are four different levels that we feel the pattern language needs to address:
Traditionally, software patterns have focused only on the lowest level, if not one level lower with how to implement the design. Even at our lowest level, we do not expect that this pattern language will address issues of email protocols (POP3, MIME, IRC), performance, or other implementation concerns. Once software developers know what to build, they can worry about the implementation issues of how to build it. The reason most software is so awful to use is because the design did not adequately address what to build.
- Human-human communication - what and why do we communicate
- Human work habits - how does that communication fit into our lives
- Human-machine interaction - how do we achieve this communication using computers
- Machine-level concerns - design issues for the software architecture