71
Who is going to Mentor Newcomers in Open Source Projects? Gerardo Massimiliano Rocco Sebastiano Canfora Di Penta Oliveto Panichella

130719 sebastiano panichella - who is going to mentor newcomers in open source projects

Embed Size (px)

DESCRIPTION

Software developers, empirical studies, social studies, mentoring

Citation preview

Page 1: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Who is going to Mentor Newcomers in Open Source Projects?

Gerardo Massimiliano Rocco Sebastiano Canfora Di Penta Oliveto Panichella

Page 2: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Context and Motivations • Software Development

How? • Training via Mentoring

Case Study •Explorative analysis

•Recommendation system evaluation

Page 3: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Training Project Newcomers

With a GOOD TRAINING

Can immediately start to work

ACTIVELY

Newcomer

Page 4: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Zhou and Mockus

Better training from

Senior Developers

Newcomer

Previous Work...

Low Sociability

Page 5: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Previous Work...

Dagenais et al.

MENTOR

Newcomer

Mentoring of project newcomers is highly desirable

Page 6: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Characteristics of a good Mentor

Page 7: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Sources of Information

SVN GIT CVS

Page 8: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Small Projects: find Mentors

is a trivial problem

Large Projects: : find Mentors

is not a trivial problem

Mentoring Small/large Projects

.........

Page 9: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

YODA (Young and newcOmer Developer Assistant)

Approach for Mentors Identification

in Open Source Projects

Page 10: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

SVN GIT CVS

YODA: two pashes

?

What factor can be used to identify

mentors?

Page 11: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

What factor can be used to identify mentors?

RQ1: Identify past mentors

Page 12: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

How does Arnetminer works?

f1: they published Many papers Together f2: advisor published More than the Student f3: advisor older than the student f4: student published her first paper(s) with the advisor

Ranks pairs of researchers according to four factors:

Page 13: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Time

F1: Exchanged emails

Heuristics to identify Mentors

Page 14: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

When Alice joins the project

F1: Exchanged emails

Heuristics to identify Mentors

Time

Page 15: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

F2: overall amount of emails

Heuristics to identify Mentors

Page 16: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

F2: overall amount of emails

Heuristics to identify Mentors

Page 17: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

F2: overall amount of emails

Heuristics to identify Mentors

Page 18: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

F3: project age Heuristics to identify Mentors

Page 19: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Time

F3: project age Heuristics to identify Mentors

Page 20: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

F4: newcomer early emails

Heuristics to identify Mentors

Page 21: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Time

First emails by Alice in the project

F4: newcomer early emails

Heuristics to identify Mentors

Page 22: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

F5: Commits

Heuristics to identify Mentors

Page 23: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

When Alice joins the project

Time

F5: Commits

Heuristics to identify Mentors

Page 24: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

What factors can be used to identify mentors?

Aggregating the factors

5

1i

ii fw

Page 25: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Recommend Mentors

Time

Page 26: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Recommend Mentors

Time

Page 27: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Recommend Mentors

Time t

Page 28: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Recommend Mentors

Time t

Mentor with adequate skills

Page 29: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Recommend Mentors

Time

Inspired to the work On Bug Triaging by J. Anvik et al.

2011

Page 30: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Recommend Mentors

Time

Inspired to the work On Bug Triaging by J. Anvik et al.

2011

t

Page 31: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Recommend Mentors

Time

Inspired to the work On Bug Triaging by J. Anvik et al.

2011

t

Page 32: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Recommend Mentors

Time

Inspired to the work On Bug Triaging by J. Anvik et al.

2011

t

Page 33: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Recommend Mentors

Time

Inspired to the work On Bug Triaging by J. Anvik et al.

2011

t

Page 34: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Recommend Mentors

Time

Inspired to the work On Bug Triaging by J. Anvik et al.

2011

t

DICE SIMILARITY

Page 35: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Empirical Study

• Goal: analyze data from mailing lists and versioning

systems

• Purpose: investigating which factors can be used to

identify mentors

• Quality focus: recommend mentors in software

projects

• Context: mailing lists and versioning systems of five software

Apache, FreeBSD, PostgreSQL, Python and Samba

Page 36: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Apache FreeBSD PostgreSQL Python Samba

Period

(Training set) 08/2001-03/2002 11/1998-02/2000 10/1998-05/2001 05/2000-05/2001 04/1998-09/2000

Period

(Test set) 04/2002-12/2008 03/2000-10/2008 06/2001-03/2008 06/2001-12/2008 10/2000-12/2008

# of Mentors

(Training set) 19 65 10 28 17

# of

Newcomers

(Training set) 13 33 8 32 33

# of

Newcomers

(Test set) 13 33 7 31 33

Context

Training and Test sets for evaluating Yoda.

Page 37: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Research Questions

?

Page 38: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ1: How can we identify mentors from the past history of a software project? SCORE

2.5

1.5

1.5

1.5

1.5

1.5

……….

COUPLES

……….

5

1i

ii fw

Page 39: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ1: How can we identify mentors from the past history of a software project? SCORE

2.5

1.5

1.5

1.5

1.5

1.5

……….

COUPLES

……….

5

1i

ii fw

Manual Validation

Page 40: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ1: How can we identify mentors from the past history of a software project?

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

18 19 20 21 22 23 24

Pre

cisi

on

Number of newcomer‐mentor pairs

Possible Configurations

f1

Page 41: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ1: How can we identify mentors from the past history of a software project?

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

18 19 20 21 22 23 24

Pre

cisi

on

Number of newcomer‐mentor pairs

Possible Configurations

f1 +f2+ f3

Page 42: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ1: How can we identify mentors from the past history of a software project?

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

18 19 20 21 22 23 24

Pre

cisi

on

Number of newcomer‐mentor pairs

Possible Configurations

f1 +f2+ f4

Page 43: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ1: How can we identify mentors from the past history of a software project?

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

18 19 20 21 22 23 24

Pre

cisi

on

Number of newcomer‐mentor pairs

Possible Configurations

f5

(Baseline)

Page 44: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ1: How can we identify mentors from the past history of a software project?

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

18 19 20 21 22 23 24

Pre

cisi

on

Number of newcomer‐mentor pairs

Apache

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

12 14 16 18 20 22

Pre

cisi

on

Number of newcomer‐mentor pairs

PostgreSQL

f1 f1 +f2+ f3 f1 +f2+ f4 f5 (Baseline)

Page 45: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ1: How can we identify mentors from the past history of a software project?

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

18 19 20 21 22 23 24

Pre

cisi

on

Number of newcomer‐mentor pairs

Apache

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

12 14 16 18 20 22

Pre

cisi

on

Number of newcomer‐mentor pairs

PostgreSQL

f1 f1 +f2+ f3 f1 +f2+ f4 f5 (Baseline)

Page 46: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ1: How can we identify mentors from the past history of a software project?

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

23 25 27 29 31 33 35 37 39 41

Pre

cisi

on

Number of newcomer‐mentor pairs

FreeBSD

0% 10% 20% 30% 40% 50% 60% 70% 80% 90%

100%

24 26 28 30 32 34 36 38 40 42 44 46 48

Pre

cisi

on

Number of newcomer‐mentor pairs

Python

0% 10% 20% 30% 40% 50% 60% 70% 80% 90%

100%

30 32 34 36 38 40 42

Pre

cisi

on

Number of newcomer‐mentor pairs

Samba

Page 47: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ1: How can we identify mentors from the past history of a software project?

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

23 25 27 29 31 33 35 37 39 41

Pre

cisi

on

Number of newcomer‐mentor pairs

FreeBSD

0% 10% 20% 30% 40% 50% 60% 70% 80% 90%

100%

24 26 28 30 32 34 36 38 40 42 44 46 48

Pre

cisi

on

Number of newcomer‐mentor pairs

Python

0% 10% 20% 30% 40% 50% 60% 70% 80% 90%

100%

30 32 34 36 38 40 42

Pre

cisi

on

Number of newcomer‐mentor pairs

Samba

USEFUL FACTORS FOR MENTORS IDENTIFICATION

0.5*f1 + 0.25*f2 + 0.25*f4

0.5*f1 + 0.25*f2 + 0.25*f3

f1

Page 48: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ2: To what extent would it be possible to recommend mentors to newcomers joining a software project?

Page 49: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ2: To what extent would it be possible to recommend mentors to newcomers joining a software project?

Page 50: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

RQ2: To what extent would it be possible to recommend mentors to newcomers joining a software project?

YODA make it is possible possible to recommend

Mentors

Page 51: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Why don’t just using Top Committers?

Page 52: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Why don’t just using Top Committers?

Page 53: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Why don’t just using Top Committers?

Not all Committers Are Good Mentors

Page 54: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Questions Asked: - Done/received mentoring

- Perceived importance of mentoring

- What makes a good Mentor

Surveying Projects Developers

Page 55: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Sent to 114 Subjects…

FreeBSD

Postgre- SQL

Python

Apache

Samba .....

37

..... 37

..... 15

..... 23

..... 23

Page 56: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Obtained Answare…

FreeBSD

Postgre- SQL

Python

Apache

Samba

-

Page 57: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

92%

58%

8%

42%

0% 20% 40% 60% 80% 100%

Did mentoring?

Had a mentor?

YES NO

Done/received mentoring?

Page 58: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

92%

58%

8%

42%

0% 20% 40% 60% 80% 100%

Did mentoring?

Had a mentor?

YES NO

Done/received mentoring?

Yes, I received Mentoring. My mentor was…

Yes, I did mentoring…

>

Page 59: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

18%

36%

45%

0%

0%

33%

56%

11%

0%

0%

0% 20% 40% 60%

Very important

Important

Neutral

Not important

Useless at all

Effect of mentor Effect on newcomer

Perceived importance of mentoring

Page 60: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

18%

36%

45%

0%

0%

33%

56%

11%

0%

0%

0% 20% 40% 60%

Very important

Important

Neutral

Not important

Useless at all

Effect of mentor Effect on newcomer

Perceived importance of mentoring

Page 61: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

18%

36%

45%

0%

0%

33%

56%

11%

0%

0%

0% 20% 40% 60%

Very important

Important

Neutral

Not important

Useless at all

Effect of mentor Effect on newcomer

Perceived importance of mentoring

Page 62: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

18%

36%

45%

0%

0%

33%

56%

11%

0%

0%

0% 20% 40% 60%

Very important

Important

Neutral

Not important

Useless at all

Effect of mentor Effect on newcomer

Perceived importance of mentoring

Is very important that mentor share knowledge with a mentee…

Page 63: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

19%

42%

38%

0%

0% 10% 20% 30% 40% 50%

Experience

Communication skills

Project knowledge

Others

What makes a good Mentor

Page 64: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

19%

42%

38%

0%

0% 10% 20% 30% 40% 50%

Experience

Communication skills

Project knowledge

Others

What makes a good Mentor

Page 65: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

19%

42%

38%

0%

0% 10% 20% 30% 40% 50%

Experience

Communication skills

Project knowledge

Others

What makes a good Mentor

My first Mentor had a very strong and technical background

Page 66: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Conclusion

Page 67: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Conclusion

Page 68: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Conclusion

Page 69: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Conclusion

Page 70: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Conclusion

Page 71: 130719   sebastiano panichella - who is going to mentor newcomers in open source projects

Future Work