Patterns and pattern languages are tools that you can use to help your team be more effective and more agile. Patterns can lead to robust, effective solutions because the solutions that patterns lead you to take the environment into account, and solve problems in a way that makes the system work better. This article will show you how you can use existing patterns to improve your SCM process. It will also help you to understand where existing patterns and pattern languages have gaps.
This month we will provide a quick overview of what Patterns and SCM Patterns are with enough information to get you oriented. We'll also provide a list of resources to find to learn more about patterns and pattern languages.
If you already know what SCM Patterns are about, this article will provide you with some ideas about how to get your organization to adopt them. If you are new to SCM Patterns (or patterns of any sort), this article will get you started. This column may start off a bit more theoretical than many of our other columns; if that is not what you prefer, hang on for a bit. There will be practical advice. When we wrote SCM Patterns we wanted to encourage people to understand what they were trying to accomplish first, and apply practices and tools later.
Introducing Patterns and Adding Value
For "Patterns" to be useful, you need to think of them as more than just a magic phrase, or silver bullet that everyone will understand and appreciate. By using patterns and pattern languages you can add value to your organization by improving the development process as a whole, rather than simply fixing immediate problems. Patterns also provide for a common vocabulary for SCM concepts, which will facilitate communication in your organization.
To use "patterns" in your organization, your audience need not be versed in what patterns are, or in the specific patterns that you wish to use for you to leverage their power. In some organizations the people in a team will be aware of what patterns are, and they may be familiar with a certain class of patterns. This is not the case in most organizations. As with any attempt on process improvement how, much value you get from patterns depends on how you introduce the concepts as much as the values of the concepts alone. Often the various aspects of software development such as "coding," "configuration management," "testing" - to name just a few - are treated as separate steps which concern different people. This leads a sense of competition rather than cooperation. A pattern approach will help you and your team to understand how SCM practices fit within the development process, thus encouraging everyone to move towards a common goal: higher quality software delivered more effectively.
To benefit from SCM patterns you need to introduce them into your organization in a way that will have an impact. Walking into in a room and speaking of "Patterns" will not get you very far unless the people in the group understand what patterns are and have some clue about the particular patterns that you are discussing. They may hear the word "pattern" and have some reaction to it (positive or negative) and leave without understanding the real goal: working more effectively, much like the dog in the favorite Gary Larsen Far Side which has a dog hearing "Ginger blah blah blah Ginger" rather than the complete message. This can be frustrating, especially if you understand how to implement an effective SCM process, and if you have thought a bit about