Christopher Alexander says that the patterns of built space should make the world a better place to be. I think that the folks who introduced patterns to the software world have this same goal for software patterns. Early in my experience with patterns, I always thought that this meant that patterns made the world better for software developers. After all, they are the folks who "live" in the software most directly: they design, they implement, they test, and they maintain software over time. Besides, the users of software already have their "advocates" in the form of interface design techniques.
My friend Joe Bergin has always said that software patterns should make the world a better place for more than just developers, and that users are one of the groups whose lives patterns can make better. One way that software patterns make a users live better, he said, is by helping developers deliver better software. I'm beginning to understand this perspective better.
But I do most of my work on so-called elementary patterns, which are software patterns at a much lower level of expertise. How do these patterns make the world a better place to be? Here are some of my evolving thoughts. I'd be interested in hearing yours.
Students are interesting, intelligent people.
Elementary patterns can help them to learn better, more completely. They can also help them to learn freer of tension and confusion.
Elementary patterns can help students come to appreciate better the beauty in programs--even their own.
Students graduate.
Knowing elementary patterns explicitly and being able to think in a pattern-directed way can help them to make their workplaces better, for themselves and for their colleagues, by affecting the way developers think about their programs.
Knowing elementary patterns can help professionals think about build software that improves the user's experience.
Teachers are people, too.
Elementary patterns can help faculty present material in a more orderly, complete way. They can also help us to remember to motivate the techniques we teach in a way that students appreciate.
Writing elementary patterns can help faculty to understand their material in a different way, in a more coherent, cohesive, motivated way.
My thoughts on this idea continue to evolve. I'd be interested to hear what you think.