global software development in the freebsd project diomidis spinellis athens university of economics...
TRANSCRIPT
-
Global Software Development in the FreeBSD ProjectDiomidis SpinellisAthens University of Economics and Businessand FreeBSD
-
OutlineFreeBSDMethodologyFindingsGlobal developmentProductivity and qualityHuman interactions
-
RationaleRough side of global software developmentSetting benchmarks in global outsourcingIf it works there, it works everywherePractices that workRepository dataMining incidental dataDrawing conclusions
-
FreeBSDComplete operating systemOpen sourceHigh performance application serversNetworked embedded systemsDerived from BSD UnixFocus on stability and reliabilitysmallbusiness.yahoo.comPart of Apples Mac OS X
-
Family Tree
-
Development~350 developers
DocumentationThird party application ports~15700Operating system utilities~9.8MLoCKernel~3.8MLoCDocumentation
-
Development FacilitiesCVS (12 years of historical data; >938k)Problem reports (>95k)Mailing lists (>100)TinderboxWeb siteDevelopers handbookRelease engineeringBrowsable CVSMailing listsPRs
-
Development ProcessUnpaid volunteersTeamsCoreRelease engineeringSecurityPortsDonationsCommitter etiquetteMentoring
-
Global Development
-
Around the Globe
-
Division of Work
Chart9
37.022
144.397
145.161
1793.869
2527.855
6.373
KLoC
KLoC
Sheet1
MainBranch
Africa2194715075
Asia10130243095
Australia13377811383
Europe1283063510806
North America14144771113378
South America48531520
KLoCMainBranch
Africa372215
Asia14410143
Australia14513411
Europe17941283511
North America252814141113
South America652
Sheet1
Branch
Main
KLoC
Work type per area
Sheet2
KLoC
KLoC
Sheet3
wwwsrcdocports
Africa11237022158525868
Asia2183914439774938786213
Europe10871817938691347701690072
SouthAmerica25363732028145150
NorthAmerica464492527855328491827419
Australia42214516151494514
wwwsrcdocports
Africa037226
Asia2214475786
Europe10917941351690
South America062145
North America462528331827
Australia0145195
Sheet3
src
www
doc
ports
Work type per area
-
Hold and Advance
Chart11
15.07521.947
43.095101.302
11.383133.778
510.8061283.063
1113.3781414.477
1.524.853
Branch
Main
KLoC
Work type per area
Sheet1
MainBranch
Africa2194715075
Asia10130243095
Australia13377811383
Europe1283063510806
North America14144771113378
South America48531520
KLoCMainBranch
Africa372215
Asia14410143
Australia14513411
Europe17941283511
North America252814141113
South America652
Sheet1
Branch
Main
KLoC
Work type per area
Sheet2
KLoC
KLoC
Sheet3
wwwsrcdocports
Africa11237022158525868
Asia2183914439774938786213
Europe10871817938691347701690072
SouthAmerica25363732028145150
NorthAmerica464492527855328491827419
Australia42214516151494514
wwwsrcdocports
Africa037226
Asia2214475786
Europe10917941351690
South America062145
North America462528331827
Australia0145195
Sheet3
src
www
doc
ports
Work type per area
-
and FixClosed GNATS entries per area
Chart7
1.28443
12.6661
40.5642
2.34077
35.9055
7.23898
work
MainBranch
Africa2194715075
Asia10130243095
Australia13377811383
Europe1283063510806
North America14144771113378
South America48531520
KLoCMainBranch
Africa372215
Asia14410143
Australia14513411
Europe17941283511
North America252814141113
South America652
work
Branch
Main
KLoC
Work type per area
distribution
KLoC
KLoC
passing work
wwwsrcdocports
Africa11237022158525868
Asia2183914439774938786213
Europe10871817938691347701690072
SouthAmerica25363732028145150
NorthAmerica464492527855328491827419
Australia42214516151494514
wwwsrcdocports
Africa037226
Asia2214475786
Europe10917941351690
South America062145
North America462528331827
Australia0145195
Africa1.28443901
Asia12.66618885
Europe40.564228455
South America2.340771642
North America35.905525187
Australia7.238985078
passing work
src
www
doc
ports
Work type per area
Commit days>8h by different committers>8h same committersNext day commits
Files11.04290.119160.1966640.374491
Modules117.03414.65036.0069221.0038
All4467428222394367
>8h by different committers>8h by the same committerNext day commits
Files1.08%1.78%3.39%
Modules12.52%5.13%17.95%
All95.86%50.12%97.76%
>8h by different committers
>8h by the same committer
Next day commits
Granule
Days
-
Roads and Buildings
Chart6
37.0220.1121.58525.868
144.39721.83974.938786.213
1793.869108.718134.771690.072
6.3730.2532.028145.15
2527.85546.44932.8491827.419
145.1610.4220.51494.514
src
www
doc
ports
Work type per area
Sheet1
MainBranch
Africa2194715075
Asia10130243095
Australia13377811383
Europe1283063510806
North America14144771113378
South America48531520
MainBranch
Africa2215
Asia10143
Australia13411
Europe1283511
North America14141113
South America52
Sheet1
Branch
Main
KLoC
Development per area
Sheet2
wwwsrcdocports
Africa11237022158525868
Asia2183914439774938786213
Europe10871817938691347701690072
SouthAmerica25363732028145150
NorthAmerica464492527855328491827419
Australia42214516151494514
wwwsrcdocports
Africa037226
Asia2214475786
Europe10917941351690
South America062145
North America462528331827
Australia0145195
Sheet2
src
www
doc
ports
Work type per area
Sheet3
-
Round the Clock
-
Passing Work Around
Chart6
0.01079064380.017809090.0339123781
0.12517986230.05132628130.1794675052
0.95858518020.50123125140.9776136109
>8h by different committers
>8h by the same committer
Next day commits
Granule
Days
work
MainBranch
Africa2194715075
Asia10130243095
Australia13377811383
Europe1283063510806
North America14144771113378
South America48531520
KLoCMainBranch
Africa372215
Asia14410143
Australia14513411
Europe17941283511
North America252814141113
South America652
work
Branch
Main
KLoC
Work type per area
distribution
KLoC
KLoC
passing work
wwwsrcdocports
Africa11237022158525868
Asia2183914439774938786213
Europe10871817938691347701690072
SouthAmerica25363732028145150
NorthAmerica464492527855328491827419
Australia42214516151494514
wwwsrcdocports
Africa037226
Asia2214475786
Europe10917941351690
South America062145
North America462528331827
Australia0145195
Africa1.28443901
Asia12.66618885
Europe40.564228455
South America2.340771642
North America35.905525187
Australia7.238985078
passing work
src
www
doc
ports
Work type per area
Commit days>8h by different committers>8h same committersNext day commits
Files11.04290.119160.1966640.374491
Modules117.03414.65036.0069221.0038
All4467428222394367
>8h by different committers>8h by the same committerNext day commits
Files1.08%1.78%3.39%
Modules12.52%5.13%17.95%
All95.86%50.12%97.76%
>8h by different committers
>8h by the same committer
Next day commits
Granule
Days
-
Productivity and QualityRound the clock developmentSoftware and hardware diversityLack of face-to-face communicationAsynchronous communicationA more rigorous process is requiredCultural diversity
-
ProductivityMore developers produce more software (base case) r=0.67 (95% CI)
-
Productivity but developer distance doesnt affect productivity. r=-0.14 (95% CI)
-
Code Style r=0.05 (95% CI)
-
Defect Density r=0.07 (95% CI)
-
Human InteractionsLook for neighborsCooperating developersMentors and menteesJan Van Haasteren: Neighbours
-
Cooperating developersMean distance betweenany two FreeBSD developers: 6,701km4010 instances of commitsSame fileSame dayDifferent developersMean distance: 6,489km
-
Mentors and mentees
MinMedianMeanMaxAny02.27.86.79.319M/M00.73.85.08.818
-
FreeBSD is GlobalRound the clock developmentNo ill effects onProductivityCode qualityBug densityDistanceDoesnt show up in ad hoc cooperationAppears to matter in mentoring
-
Tesekur Ederim!
http://www.freebsd.orghttp:/www.dmst.aueb.gr/dds