coordination and productivity issues in free software: the role of brooks' law

41
13/11/2013 BCS Open Source Specialist Group Measuring Open Source Communities Dr. Paul J. Adams & Dr Andrea Capiluppi

Upload: andrea-capiluppi

Post on 08-Jul-2015

49 views

Category:

Technology


1 download

DESCRIPTION

BCS Open Source Specialist Group

TRANSCRIPT

Page 1: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

13/11/2013 BCS Open Source Specialist Group

Measuring Open Source CommunitiesDr. Paul J. Adams & Dr Andrea Capiluppi

Page 2: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

What’s This All About?

✤ How to measure?

✤ When to measure?

✤ When not to measure?

✤ Why measure?

Process is at the heart of all software engineering; Free Software is no different. This first part shows how we can measure process and establish how important it really is.

Hint: Very.

Page 3: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Preamble

Page 4: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Who is this dude?

✤ How do we identify him?

✤ What does he do?

✤ Who does he do it with?

✤ Is he productive?

✤ Is he any good?

Page 5: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

What Does Open Source Look Like?

Page 6: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

How To Measure

Page 7: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Err... What Can We Measure?

✤ VCS Metadata

✤ Code

✤ Communication

✤ Bug Tracking

✤ Documentation

✤ ...

Page 8: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Qt for Android - The Crocodile

Page 9: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Qt Webkit - The Ski Slope

Page 10: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

VCS Meta-Data

✤ Developers check code into repository and associated meta-data in stored:

✤ Committer identity

✤ Date/Time

✤ Message

✤ Resources touched

Page 11: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

A Commit: Good

commit 5567d08d87e0bd83acd677fb1577a4db76172c0aAuthor: Paul Adams <[email protected]>Date: Tue May 27 08:47:47 2008 +0000 * No hard-coded absolute URLs please, relatives work There's no need to use "localhost:8080..." type urls in the system. We can simply put "updater?...." or whatever. This fixed a problem in which I couldn't poke the updater from my laptop whilst Alitheia core was running on a different machine.

Page 12: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

A Commit: Bad

commit b0748c6ddd294ec8e6bbf39fb5ef5dd8128d0dbfAuthor: Paul Adams <[email protected]>Date: Mon Dec 3 13:37:47 2007 +0000 * So this is what I consider a decent ascii-art sheep (~)o " " * The other day, however, I was entertained to: (^^)'> " " I still prefer my own. Cast your votes now. Feel free to produce further alternatives.

Page 13: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Who? & When?

Page 14: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Amarok: Before

Page 15: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Amarok: After

Page 16: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Rekonq

Page 17: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

What Have We Exposed?

✤ Who is the core team?

✤ Where are the granular tasks?

✤ What is developer turnover like?

✤ What is developer uptake like?

✤ But what do we not see?

✤ Isolation? Structure?

Page 18: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Who & Who? Loose.

Page 19: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Who & Who? Tight.

Page 20: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Cohesion: How Tight Is Tight?

✤ Create cohesion graph (for some time period).

✤ Find shortest paths between all nodes.

✤ Take average.

✤ Err...

✤ That’s it!

Page 21: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Who? & What?

Page 22: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Coordination and ProductivityIssues in Free Software:The Role of Brooks' LawThe Role of Brooks' LawThe Role of Brooks' Law

Page 23: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Rationale for the study✤ “Adding manpower to a late project makes it later.”

✤ Fred Brooks, Jnr.

Page 24: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Context of the study✤ Open Source processes are

fundamentally different from traditional counterparts

✤ Does the Brooks law still hold for Open Source systems?

Page 25: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Brooks: two primary premises

1) Developer’s ability to become productive when joining a new team;

✤ 2) Quality of coordination as the team grows

Page 26: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Testing Brooks laws

✤ Brooks’ Law can be hardly transcended

✤ Does it apply to

✤ * the core team?

✤ * the larger cohort of contributors?

Page 27: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Measuring Brooks' Law

✤ Issue of communication: does communication and coordination quality deteriorate as a Free Software project grows?

✤ Issue of early productivity: how long does it take to fully

train a new contributor?

✤ Measured on KDE, Plone, Evince

Page 28: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Communication paths+graphs

✤ Given a number n of developers, there are n2 − n communication paths

✤ Comm. path: did they work on the same artefact?

✤ Weight: number of artifacts that a pair has jointly worked on

Page 29: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Graph processing

✤ 1) pairwise cohesion (PwC): edge weight between 2 nodes (ex: PwC4→5 = 4)

✤ 2) path cohesion (PaC) = weight of the shortest path between 2 nodes (ex: PaCo1→5 = 5)

✤ 3) coordination cohesion (CCo): average weight of all the shortest paths between the nodes (ex: CCo = 2.67)

Page 30: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Coordination paths: Plone and Evince

Page 31: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Coordination paths in KDE

✤ 1) Few active developers, high cohesion

✤ 2) increasing number of developers, quasi-constant cohesion

✤ 3) Very large number of developers, increasing cohesion

Page 32: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Issues of productivity

✤ Hypothesis: a contributor requires a “ramp up” period before they are fully effective.

✤ first three weeks of contribution indicative of their future effort

Partially engaged: < 1 commit per week in first three weeks

Fully engaged: committing in each

of their first three weeks

Page 33: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Early developers

✤ KDE better at engaging their new contributors (39% fully engaged)

✤ Plone 14%

✤ Evince 9%

Page 34: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Contributors becoming developers

high commit rates both before and after the ramp-up (engaged developers)

high commit rate before butlow commit rate after the

ramp-up (unsuccessful engagement

of developers)

low commit rate before and high commit rate after

the ramp-up (successful engagement

of developers)

low commit rates both beforeand after the ramp-up (sporadic developers)

Page 35: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

KDE productivity

✤ KDE effective at obtaining new contributors

✤ Not as effective at keeping those contributors productive over time

Page 36: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Plone productivity

✤ Only 32 of the 131 contributors show improved productivity

✤ Not as capable of bringing new developers as KDE

✤ Less effective at converting new contributors into productive members

Page 37: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Evince productivity

✤ Evince not effective at bringing in new developers

✤ Even less effective at converting contributors into productive team members.

Page 38: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Conclusion/Summary

✤ Two aspects considered:

✤ Communication/Coordination: are OSS projects facing issues as they grow larger?

✤ Productivity: how effective are OSS projects in converting “contributors” to “developers”

Page 39: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Conclusion/Summary

Communication/Coordination:

✤ Phase 1: large coordination effort required to manage few developers (Brooks’ Law applies to Free Software)

✤ Phase 2: coordination effort is diluted as new developers join in

✤ Phase 3 (for KDE): coordination effort ramps up again (due to the KDE internal characteristics)

Page 40: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Conclusion/Summary

✤ Productivity:

✤ Issue of attracting and retaining new developers:

✤ 1) KDE can attract and successfully retain new developers

✤ 2) Evince is successful at attracting new developers, but not as good in keeping them attached

✤ 3) for both KDE and Plone, developers become effective committers within a 30 weeks’ ramp up

Page 41: Coordination and Productivity Issues in Free Software: The Role of Brooks' Law

Questions?