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

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

description

Software developers, empirical studies, social studies, mentoring

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

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