global software development in the freebsd project diomidis spinellis athens university of economics...

26
Global Software Global Software Development in the Development in the FreeBSD Project FreeBSD Project Diomidis Spinellis Diomidis Spinellis Athens University of Economics and Athens University of Economics and Business Business and FreeBSD and FreeBSD

Upload: oswald-garrison

Post on 11-Jan-2016

220 views

Category:

Documents


1 download

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