agile2014: network analysis for software patterns including organizational patterns in portland...
DESCRIPTION
Organizational patterns are known as the basis for Agile software development movement. Patterns usually form a network having relationships among them to support users understand and utilize patterns efficiently and effectively. However little is known about the nature of pattern networks, such as how are organizational patterns different from other patterns from the viewpoint of centrality. To clarify such characteristics, we mine a network consisting 285 patterns including 15 organizational patterns from an existing online pattern repository called Portland Pattern Repository. By applying network analysis techniques to the mined network, we revealed several interesting characteristics of the pattern network and organizational patterns such as that the degree centrality seems to somewhat reflect the commonness and generality of the corresponding pattern.TRANSCRIPT
Network Analysis for Software Patterns including Organizational Patterns in
Portland Pattern Repository
Hironori Washizaki† Masashi Kadoya†Yoshiaki Fukazawa† Takeshi Kawamura‡
†Waseda University ‡USOL TokyoTwitter: @Hiro_Washi [email protected]
http://www.washi.cs.waseda.ac.jp/
Agile 2014 Conference
Process and Organizational Patterns
• “EPISODE” (Cunningham)• "A Generative Development-Process Pattern
Language” (Coplien)• "Organizational Patterns of Agile Software
Development“ (Coplien and Harrison)
2
Questions
• Q1. What is the most important software pattern?
• Q2. What is the most important organizational pattern?
• Q3. What pattern connects organizational patterns and non-organizational patterns?
• Q4. How to start learning (organizational) patterns?
3
Portland Pattern Repository (PPR)• http://c2.com/ppr/• Ward Cunningham, Since ’95, Wiki
4
Network Analysis• Centrality: degree, closeness, betweeness• 285 patterns, 20 groups in PPR
5
Closenesscentral
Betweenesscentral
Degreecentral
Top-10 Patterns for Degree Centrality
Pattern name
N. patterns referred by the pattern
N. patterns referring
to the pattern
ModelViewController 11 12
AdapterPattern 6 15
HandleBodyPattern 9 10SynchronizationStrategies 9 9
VisitorPattern 7 11
SceneGraph 6 11
ValueObject 3 14
ScapeGoat 6 10
CompositePattern 4 12
StrategyPattern 5 11
6
15 Organizational Patterns
7
Pattern nameN. patternsreferred bythe pattern
N. patternsreferring tothe pattern
Degreecentrality
Closenesscentrality
Betweenesscentrality
Scape Goat 6 10 0.031128 0.176875 0.013398Peace Maker 4 4 0.015564 0.15091 0.000084
Train Hard Fight Easy 6 2 0.015564 0.151088 0.000334Cargo Cult 3 4 0.013619 0.210311 0.027906
Crypto Cracy 5 2 0.013619 0.175787 0.00646Cult Of Personality 3 4 0.013619 0.150999 0.000258
Door Mat 2 4 0.011673 0.150733 0Guru Does All 2 4 0.011673 0.150999 0.003344
Containment Building 2 2 0.007782 0.175307 0Lets Play Team 1 2 0.005837 0.131458 0
Brownian Motion 1 1 0.003891 0.149593 0Train The Trainer 1 1 0.003891 0.131323 0
Trial Project 1 1 0.003891 0.131323 0Change Of Setting 1 0 0.001946 0.205272 0
Slow Poison 1 0 0.001946 0.15038 0
pkg
Organizational Patterns
Process Anti Patterns
Cult Of Personality
Scape Goat
Patterns For Effective Meetings
Discordant Reward MechanismSix Thinking Hats
Containment Building
Cargo Cult
Slow Poison
Brownian Motiion
Change Of Setting
Guru Does All
Peace Maker
Doormat
Crypto Crazy
Train Hard Fight Easy
Lets Play Team
Trial Project Train The Trainer8
High degreecentrality
High closenesscentrality
High betweenesscentrality
9
ScapeGoat (anti-pattern)Problem: A project is visibly in trouble.Solution: Someone must be punished.
Peace MakerP: A leader is not found or a reorganization is incomplete. S: Assign someone who is well-liked for holding things together.
Train Hard Fight EasyP: Projects are stumble … teams fail to organize themselves …S: Train team … Give everyone same tools and language.
Cargo CultP: A project is in trouble and is far too visible.S: Redraw the organization charts …
High betweeness centralityHigh degree centrality
High degree centrality
High degree centrality
High closeness centrality
Answers• A1. “Model-View-Controller” is the most important
software pattern from the viewpoint of degree centrality.
• A2. “ScapeGoat” is the most important org pattern. (“Peace Maker” and “Train Hard Fight Easy” are
next.)• A3. “ScapeGoat” connects organizational patterns to
other groups.• A4. Start with patterns having high degree centrality
(or high betweeness centrality if familiar with other groups). 10
Thank you for your attention.
11