'''Context:''' You are introduced to patterns and have made good use of them in an instrumental way. You've had your "Aha!" reaction ('Hey, I can use Bridge here and the problem goes away!'), and you've probably even found yourself sticking in patterns you might not have needed just because they were cool. Now, you're trying to make your own patterns, hoping to discover one to solve a particular problem, or maybe trying to figure out just what a pattern is below the surface, and why it is important. '''Problem:''' Reading patterns and writing them are worlds different. Writing a good pattern is difficult, there are many, many different methods for writing them, and there's some debate about what makes a good one. How does the novice pattern writer get going? '''Forces:''' You like patterns and use them as tools. You have a wide variety of examples available to you of varying quality. You don't know quite where to start, or what to do, but everyone's gotta start somewhere. You have a sense there's a better way to solve something, but you can't find a pattern and wonder if there's one out there waiting to be found. '''Solution:''' Imagine what the pattern you want to write might look like, and write that speculative pattern. If you distribute it publicly, make sure you label it as speculative, lest the patterns community jump all over it (with good reason) for violating the RuleOfThree. Writing it "as if it were true" forces you to think about what makes a pattern. Finding something to say that fits the model forces you to think and examine your models. If you come up with something that feels truly pattern like, go ahead and start using it (a PrivatePattern ?); if you can use it three times, you've found a pattern, just backwards. This is related to FuturePerfectThinking, though I like to think of it as a JumpIntoTheAbyss. -- BrianSchuth ----- So, Brian ... is this a speculative pattern? ----- Shucks, I'll ruin all the dramatic tension in the pattern if I tell! --BrianSchuth