Pattern Component

Sometimes when we look for patterns we actually find PatternComponent(s).These traditionally include the context, the forces that recur within that context, conflicts between the forces, as well as the pattern that keeps the forces in balance. Don't knock them. Recognizing these things, and naming them, can help you to think more clearly.

For example, http:wikibase?BleedingObvious is a force. It pushes in the direction of greater simplicity. It occurs at its strongest when you are dealing with CasualUser?s. CasualUser?s would be an example of a context. Sometimes you have both CasualUser?s and ExpertUsers, and ExpertUsers demand PowerFeature?s. The need for PowerFeature?s is another force which pushes in the direction of greater complexity. Thus the two forces are in conflict, and the stage is set for a pattern which can resolve them..

Sometimes knowing you have a problem is halfway towards getting a solution. If you are finding something difficult, step back and make sure you understand the context and the forces operating within it.


When you describe a pattern, it can really help to be upfront about the context and recurring forces. Quite often often when I read a page here my initial reaction is to rebel, because I think the claims are too sweeping.

A good pattern description will convey a sense of forces in balance. It will not just tell you what to do, but when - that is, how to recognise whether the pattern is appropriate. If the forces in your own context are different from those of the pattern - stronger or weaker or absent - then the pattern may need to be discarded or adapted. Thus, a good pattern will contain its own criticism.

(I've been ruminating along these lines for a while; actually wrote it down after reading NoSecondChance.) -- DaveHarris


CategoryForces


EditText of this page (last edited May 31, 2003) or FindPage with title or text search