Karsten on the Business of Software et al.

Everybody who's a little bit interested in software development has heard the term "software pattern" and most likely something about the pattern book of the "Gang of Four" (normally cited as "GoF").

For those who are not yet in object-oriented software development: Software patterns give a high-level solution to a development problem, described in a well-defined, commonly known structure.

Gamma et al. e.g. describe patterns using the following "consistent format"/"uniform structure" as desribed under A Maximum Pattern Skeleton.

Patterns are heavily used to discuss the architecture of software applications, i.e. in which relation subparts of it stand to each other and which solutions are used to solve common problems.

It therefore doesn't surprise that a major origin of software design patterns lies in pattern-based approaches for architectonics.

The fascinating and infuential architect Christopher Alexander used a catalogue of patterns for architectural building. These patterns could be used by architects to reflect decisions in the design stage. 

Patterns vers. Best Practices
Patterns need to be distinguished from what we call "best practices". Whereas a best practice describes some sort of doing, action, the pattern describes rather a defined state.


Normally a pattern will be derived from a best practice. But the very formal way of describing patterns shifts them to another, more abstract level. Nevertheless the distinction can become complicated as e.g. in the GoF pattern structure also the very practical explanation of how to use a pattern is described in a "best practice" way.

Also, it could be a best practice to use software patterns. But the core of the software pattern is its formal description which lacks the best practice.

In my opinion, the "uniform structure" of the GoF is quite abundant.

/* Sthg. about pattern's history also Baxandall, GotA etc. Which topics pattern could be applied to.

BPM, Design, User-Interaction, Project

Work, Organisation, Algorithms (sic), GoF Workflow Patterns (http://tmitwww.tm.tue.nl/research/patterns/) Antipatterns Baxandall Alexander E. Berne Patterns as... General way to describe a pattern (e.g. environment, problem/solution etc.) */