There are lots of resources that will tell you what a design pattern a design pattern is (i.e. a solution to a problem in a context) or what a design pattern should look like when you publish it (for example, the template I’ve published on the protopattern wiki).
Each design pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over without ever doing it the same way twice. -Christopher Alexander A Pattern Language: Towns, Buildings, Construction
Patterns make a great deal of intuitive sense to me as someone who’s worked on a number of different projects over the years and often find myself running into the same problems. One way to approach identifying LODLAM patterns would be to follow Ward Cunningham’s Tips for Writing Pattern Languages and to sit down and write out lessons learned from my experience.
As a research project, however, something more systematic is required. I’ve been taking a qualitative content-analysis approach by examining metadata standards within the LAM domain. Having worked on some of these standards, I know that they often are attempting to solve a particular problem that is balanced among various forces such as, time, cost, application support, opinions about the right solution among committee members, etc. In the final standards document these forces are usually obscured or not made explicit so I’m asking myself the following questions:
- why does the standard use this feature?
- what problem does this feature try to solve?
- what contexts/forces make this feature relevant?
- how does this feature resemble other features I’ve seen so far? (does it constitute a new pattern or is it an exemplar of one that has already been defined?)
Because I think that patterns will become clearer the more standards I look at, the wiki may get a little messy until things start to emerge and gel together. I expect that there will be some work to clean up and reorganize as this process unfolds.
Have you worked with design patterns in the past? What tips/suggestions would you offer to others working on LODLAM Patterns?