I used to think of patterns as a cool, but generally not a very useful thing. After all I worked alone and I knew what I knew. They where either to general (up in the Duh range) or weirdly high level, in a way I cannot accurately describe. It seemed like a lot of trouble to go through. Then I became a development manager?..
I find that there are two things about accomplishing work. First are those people who have no idea how to solve a problem, they have an idea what they need to be doing, but no idea how to get started. Our pattern book allows me to give that direction to junior people, without doing it for them. Our patterns have two goals, a high level abstract, and some practical notes and a list off applications where we implemented the best examples. Second there are a dozen ways to do something, depending on the vendor of the technology, but frequently only 2 are acceptable implementations in our environment. The patterns in this case point you at the way to do things, here, not out in academia, or this other company.
Finally it gives us a way to document our coding standards without going down into the minutia of every possible outcome. The programmers are professionals, they get the idea from the abstract (one paragraph) and they understand the justification (again one paragraph) and they really like the fact that examples and projects using the pattern steer them to their solutions (old and new developers) It allows me to given them a self-empowering direction.
One side effect we have noticed in documenting this way is that when new technology implementations come around, ASP to ASP.Net for example, it?s these pattern sheets the R&D people work from to decide what to research, what examples to flesh out and what priority each technique has for research, the result is we rework the how to (the patterns are the same) and the justification and we are sure we have not missed or failed to address some aspect of the programmers reality on how to do things. Before the R&D group would get mixed reviews like ?that?s great but you should have? first? or ?Ok but you missed this and that?. Also our ISO reviews our techniques so that they understand possible security trade offs we have made as an enterprise.
From the purist standpoint this might not be what they had in mind as patterns go, and from the lone programmers standpoint, this level of documentation is not really necessary, and purely from a ?technique? point of view, very experienced programmers would not need them either. But get 50 programmers (all of them know the best way) of all sorts, 10 ISO and 3 managers in the mix looking for an organized solution and pattern documents sound pretty good.