Global Software Development in Global Software Development in - - PowerPoint PPT Presentation

global software development in global software
SMART_READER_LITE
LIVE PREVIEW

Global Software Development in Global Software Development in - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Global Software Development in the FreeBSD Project Global Software Development in Global Software Development in the FreeBSD Project the FreeBSD Project

Diomidis Spinellis Diomidis Spinellis Athens University of Economics and Business Athens University of Economics and Business

slide-2
SLIDE 2

Outline

FreeBSD Methodology Findings

– Global development – Productivity and quality – Human interactions

slide-3
SLIDE 3

FreeBSD

Complete operating system Derived from BSD Unix Focus on stability and reliability

– Yahoo’s s servers – Part of Apple’s Max OS X

slide-4
SLIDE 4

Development

~350 developers

– Documentation

Third party application ports ~12000 Operating system utilities ~9.8MLoC Kernel ~2.8MLoC

Documentation

slide-5
SLIDE 5

Development Facilities

CVS (10 years of historical data; >938k) Problem reports (>95k) Mailing lists (>100) Tinderbox Web site

– Developer’s handbook – Release engineering – Browsable CVS – Mailing lists – PRs

slide-6
SLIDE 6

Development Process

Unpaid volunteers Teams

– Core – Release engineering – Security – Ports – Donations

Committer etiquette Mentoring

slide-7
SLIDE 7

Global Development

slide-8
SLIDE 8

Around the Globe

slide-9
SLIDE 9

Division of Work

500 1000 1500 2000 2500 3000 Africa Asia Australia Europe North America South America KLoC

slide-10
SLIDE 10

Hold and Advance

Work type per area

0% 20% 40% 60% 80% 100% Africa Asia Australia Europe North America South America KLoC Main Branch

slide-11
SLIDE 11

… and Fix

Africa 1% Asia 13% Europe 41% South America 2% North America 36% Australia 7%

Closed GNATS entries per area

slide-12
SLIDE 12

Roads and Buildings

Work type per area

0% 20% 40% 60% 80% 100% Africa Asia Europe South America North America Australia ports doc www src

slide-13
SLIDE 13

Round the Clock

50 100 150 200 250 300 4 8 12 16 20 Average LOC per day Time (UTC)

slide-14
SLIDE 14

Passing Work Around

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Files Modules All Granule Days >8h by different committers >8h by the same committer Next day commits

slide-15
SLIDE 15

Productivity and Quality

+Round the clock development +Software and hardware diversity

  • Lack of face-to-face communication
  • Asynchronous communication

?A more rigorous process is required ?Cultural diversity

slide-16
SLIDE 16

Productivity

More developers produce more software (base case)

200 400 600 800 1000 10 20 30 40 50 KLoC Number of developers

r=0.67 (95% CI)

slide-17
SLIDE 17

Productivity

… but developer distance doesn’t affect productivity.

r=-0.14 (95% CI)

200 400 600 800 1000 2000 4000 6000 8000 10000 12000 14000 16000 18000 KLoC Developer distance

slide-18
SLIDE 18

Code Style

20 40 60 80 100 10 20 30 40 50 60 70 80 90 % of non-adhering lines Number of developers in the annotated file

r=0.05 (95% CI)

slide-19
SLIDE 19

Defect Density

0.2 0.4 0.6 0.8 1 20 40 60 80 100 120 140 160 180 200 PRs per commit Number of developers

r=0.07 (95% CI)

slide-20
SLIDE 20

Human Interactions

Look for neighbors

– Cooperating developers – Mentors and mentees

Jan Van Haasteren: Neighbours

slide-21
SLIDE 21

Cooperating developers

Mean distance between

– any two FreeBSD developers: 6,701km

4010 instances of commits

– Same file – Same day – Different developers – Mean distance: 6,489km

slide-22
SLIDE 22

Mentors and mentees

18 8.8 5.0 3.8 0.7 M/M 19 9.3 6.7 7.8 2.2 Any Max ¾ Mean Media ¼ Min

slide-23
SLIDE 23

GSD Works

Round the clock development No ill effects on

– Productivity – Code quality – Bug density

Distance

– Doesn’t show up in ad hoc cooperation – Appears to matter in mentoring