|
| 1 | +# InnerSource Pattern System |
| 2 | + |
| 3 | +## About |
| 4 | + |
| 5 | +This document shall serve to define a system with which we organize our |
| 6 | +patterns using a limited set of classifications. |
| 7 | + |
| 8 | +## Related Work |
| 9 | + |
| 10 | +### Design Patterns (Erich Gamma et. al.) |
| 11 | + |
| 12 | +From the Authors of the classic GoF book "Design Patterns": |
| 13 | + |
| 14 | +> Design patterns vary in their granularity and level of abstraction. Because |
| 15 | +> there are many design patterns, we need a way to organize them. |
| 16 | +
|
| 17 | +They classify patterns so that they "can refer to families of related patterns." |
| 18 | +The authors also suspect that this classification will make "learning the |
| 19 | +catalog" faster. They Classify patterns according to two criteria: Purpose and |
| 20 | +Scope. They introduce the following classes of purpose in their book: |
| 21 | + |
| 22 | +- Creational, |
| 23 | +- Structural and |
| 24 | +- Behavioral. |
| 25 | + |
| 26 | +Orthogonal to this, they distinguish two scope classes, related to object |
| 27 | +oriented SW development: |
| 28 | + |
| 29 | +- Class and |
| 30 | +- Object. |
| 31 | + |
| 32 | +The main ordering criterion in the books catalog is the Purpose and each |
| 33 | +pattern is "tagged" with the scope classification. |
| 34 | + |
| 35 | +### Pattern-Oriented Software Architecture (Fram Buschmann et. al.) |
| 36 | + |
| 37 | +Frank Buschmann also organizes the patterns in his (first) book using, what he |
| 38 | +calls "categories". Similarly to the GoF book he uses one category to organize |
| 39 | +the content of his book, in this case the level of abstraction the pattern |
| 40 | +applies on: |
| 41 | + |
| 42 | +- Architectural Patterns, |
| 43 | +- Design Patterns and |
| 44 | +- Idioms. |
| 45 | + |
| 46 | +The second criterion categorizes the problems solved by the patterns: |
| 47 | + |
| 48 | +- _From Mud to Structure_, |
| 49 | +- _Distributed Systems_, |
| 50 | +- _Interactive Systems_, |
| 51 | +- _Adaptable Systems_, |
| 52 | +- _Structural Decomposition_, |
| 53 | +- ... |
| 54 | + |
| 55 | +you get the point. |
| 56 | + |
| 57 | +In addition to this, he postulates a number of properties, a pattern system |
| 58 | +must exhibit. According to Buschmann, a pattern system |
| 59 | + |
| 60 | +- should be simple and easy to learn, |
| 61 | +- should consist of only a few classification criteria, |
| 62 | +- should use a classification criterion that the reflects _natural properties_ |
| 63 | + of patterns (e. g. kinds of problems, not e. g. what pattern language a |
| 64 | + patterns belongs to), |
| 65 | +- should provide a _roadmap_ that leads users to a set of potentially |
| 66 | + applicable patterns and |
| 67 | +- it should be open to the integration of new patterns. |
| 68 | + |
| 69 | +### Conclusion |
| 70 | + |
| 71 | +I have used both books extensively and found their respective pattern systems |
| 72 | +very helpful in finding patterns for specific problems and for finding related |
| 73 | +patterns. I also think that the criterions for a useful pattern system |
| 74 | +postulated by Frank Buschmanns are sensible and might serve as a role model for |
| 75 | +our InnerSource pattern system. |
| 76 | + |
| 77 | +## Candiate Classifications |
| 78 | + |
| 79 | +This section shall serve to collect individual proposals for systems of ISC |
| 80 | +patterns. Contribute away ;) |
| 81 | + |
| 82 | +### Georg Grütter |
| 83 | + |
| 84 | +I propose we use a classification of the problem, a pattern tries to solve as |
| 85 | +the main criteria for organizing our list of patterns. The following |
| 86 | +classifications come to mind: |
| 87 | + |
| 88 | +- Getting started with InnerSource |
| 89 | +- Getting sustainable middle management buy-in and support |
| 90 | +- Getting buy-in of developers |
| 91 | +- Fostering contributions |
| 92 | +- Interfacing with traditional, non-InnerSource projects |
| 93 | + |
| 94 | +As an additional category, we might classify the solutions provided by the |
| 95 | +patterns into: |
| 96 | + |
| 97 | +- organizational and |
| 98 | +- social. |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | + |
| 104 | + |
| 105 | + |
| 106 | + |
| 107 | + |
| 108 | + |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | + |
| 113 | + |
0 commit comments