Skip to content

Commit 89b33b4

Browse files
committed
added document to collect proposals for pattern systems
1 parent 447a586 commit 89b33b4

File tree

1 file changed

+113
-0
lines changed

1 file changed

+113
-0
lines changed

pattern-system.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
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

Comments
 (0)