agile2014: network analysis for software patterns including organizational patterns in portland...

11
Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository Hironori Washizaki Masashi Kadoya† Yoshiaki Fukazawa† Takeshi Kawamura‡ †Waseda University ‡USOL Tokyo Agile 2014 Conference

Upload: hironori-washizaki

Post on 10-May-2015

748 views

Category:

Software


0 download

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

Page 1: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

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

Page 2: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

Process and Organizational Patterns

• “EPISODE” (Cunningham)• "A Generative Development-Process Pattern

Language” (Coplien)• "Organizational Patterns of Agile Software

Development“ (Coplien and Harrison)

2

Page 3: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

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

Page 4: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

Portland Pattern Repository (PPR)• http://c2.com/ppr/• Ward Cunningham, Since ’95, Wiki

4

Page 5: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

Network Analysis• Centrality: degree, closeness, betweeness• 285 patterns, 20 groups in PPR

5

Closenesscentral

Betweenesscentral

Degreecentral

Page 6: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

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

Page 7: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

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

Page 8: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

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

Page 9: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

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

Page 10: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

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

Page 11: Agile2014: Network Analysis for Software Patterns including Organizational Patterns in Portland Pattern Repository

Thank you for your attention.

11