97
Supporting Newcomers in Software Development Projects Post-doctoral Dissertation by Sebastiano Panichella

Supporting Newcomers in Software Development Projects

Embed Size (px)

Citation preview

Page 1: Supporting Newcomers in Software Development Projects

Supporting Newcomers in SoftwareDevelopment Projects

Post-doctoral Dissertationby

Sebastiano Panichella

Page 2: Supporting Newcomers in Software Development Projects

2

Open Source Projects (OSS)

Page 3: Supporting Newcomers in Software Development Projects

Team  1 Team  2 Team  n

...

Open Source Projects (OSS)

3

Page 4: Supporting Newcomers in Software Development Projects

Team  1 Team  2 Team  n

...

New  FeaturesBugs  fixing    ...................

   ...................

   ...................

Open Source Projects (OSS)

New  FeaturesBugs  fixing    ...................

   ...................

   ...................

New  FeaturesBugs  fixing    ...................

   ...................

   ...................

4

Page 5: Supporting Newcomers in Software Development Projects

Newcomers in Open Source Projects

5

Team  1 Team  2 Team  n

...

Page 6: Supporting Newcomers in Software Development Projects

Newcomers in Open Source Projects

6

Team  1 Team  2 Team  n

...

Page 7: Supporting Newcomers in Software Development Projects

Dealing with Newcomers in Open Source Projects

7Kraut  et  al.  

Page 8: Supporting Newcomers in Software Development Projects

Dealing with Newcomers in Open Source Projects

8

1)    Recruitment

Kraut  et  al.  

Page 9: Supporting Newcomers in Software Development Projects

Dealing with Newcomers in Open Source Projects

9

1)    Recruitment

2)  Selection

Kraut  et  al.  

Page 10: Supporting Newcomers in Software Development Projects

Dealing with Newcomers in Open Source Projects

10

1)    Recruitment

2)  Selection

3)  Retention

Kraut  et  al.  

Page 11: Supporting Newcomers in Software Development Projects

Dealing with Newcomers in Open Source Projects

11

4)  Socialization

1)    Recruitment

2)  Selection

3)  Retention

Kraut  et  al.  

Page 12: Supporting Newcomers in Software Development Projects

Dealing with Newcomers in Open Source Projects

12Kraut  et  al.  

[1]  Steinmacher  et  al.  “Why  do  newcomers  abandon  open  source  software  projects?”  CHASE  2013  

[2]  Zhou  et  al.  “Does  the  initial  environment  impact  the  future  of  developers?”  ICSE  2011  

[3]  Dagenais  et  al.  “Moving  into  a  new  software  project  landscape”  ICSE  2010  

[4]  Steinmacher  et  al.  “How  to  support  newcomers  on  boarding  to  open  source  software  projects”

Page 13: Supporting Newcomers in Software Development Projects

13

Newcomer Learning Path…

Page 14: Supporting Newcomers in Software Development Projects

   Perform  Development  Tasks    Mentoring      Team  Collaborations

14

Newcomer Training Process

Steinmacher et al. “The hard life of open source software project newcomers” (CHASE 2014)

Dagenais et al. “Moving in a New Project Landscape” (ICSE 2011)

Page 15: Supporting Newcomers in Software Development Projects

   Perform  Development  Tasks    Mentoring

Recommenders

     Team  Collaborations

15

Newcomer Training Process

Steinmacher et al. “The hard life of open source software project newcomers” (CHASE 2014)

Dagenais et al. “Moving in a New Project Landscape” (ICSE 2011)

Page 16: Supporting Newcomers in Software Development Projects

1)  Recommend  Mentors

   Perform  Development  Tasks    Mentoring

Recommenders

     Team  Collaborations

16

Newcomer Training Process

Steinmacher et al. “The hard life of open source software project newcomers” (CHASE 2014)

Dagenais et al. “Moving in a New Project Landscape” (ICSE 2011)

Page 17: Supporting Newcomers in Software Development Projects

1)  Recommend  Mentors

2)  Supporting  Source  Code            Comprehension  and          Re-­‐documentation

   Perform  Development  Tasks    Mentoring

Recommenders

     Team  Collaborations

17

Newcomer Training Process

     3)  Detecting  Emerging  TeamsSteinmacher et al. “The hard life of open source software project newcomers” (CHASE 2014)

Dagenais et al. “Moving in a New Project Landscape” (ICSE 2011)

Page 18: Supporting Newcomers in Software Development Projects

18

Newcomer Learning Path…

Page 19: Supporting Newcomers in Software Development Projects

Data  Extraction

• Versioning  Systems  • Mailing  Lists  • Issue  trackers  • Q&A  site  (e.g.  StackOverflow)

19

Newcomer Learning Path…

Page 20: Supporting Newcomers in Software Development Projects

Data  Extraction

Empirical  Studies

• Versioning  Systems  • Mailing  Lists  • Issue  trackers  • Q&A  site  (e.g.  StackOverflow)

20

Newcomer Learning Path…

Page 21: Supporting Newcomers in Software Development Projects

Data  Extraction

Recommenders

• Versioning  Systems  • Mailing  Lists  • Issue  trackers  • Q&A  site  (e.g.  StackOverflow)

Empirical  Studies

21

Newcomer Learning Path…

Page 22: Supporting Newcomers in Software Development Projects

Thesis Structure

• PART I : analyzing data from software repositories to support team work.

• rs developers and support the team work.• PART II : analyzing how developers use software artifacts to

help newcomers in program comprehension task. Si• on ta• sk.• PART III : developing recommenders to support concretely

project newcomers

22

Page 23: Supporting Newcomers in Software Development Projects

• PART I: analyzing data from software repositories to support team work.

• rs developers and support the team work.• PART II : analyzing how developers use software artifacts to

help newcomers in program comprehension task. Si• on ta• sk.• PART III : developing recommenders to support concretely

project newcomers

23

Thesis Structure

Page 24: Supporting Newcomers in Software Development Projects

• PART I: analyzing data from software repositories to support team work.

• rs developers and support the team work.• PART II: analyzing how developers use software artifacts to

help newcomers in program comprehension task. Si• on ta• sk.• PART III : presents recommenders to support concretely

project newcomers

24

Thesis Structure

Page 25: Supporting Newcomers in Software Development Projects

• PART I: analyzing data from software repositories to support team work.

• rs developers and support the team work.• PART II: analyzing how developers use software artifacts to

help newcomers in program comprehension task. Si• on ta• sk.• PART III: developing recommenders to support concretely

project newcomers.

25

Thesis Structure

Page 26: Supporting Newcomers in Software Development Projects

PART I

Analysis of Developers’Communication

26

Page 27: Supporting Newcomers in Software Development Projects

How Developers’ Collaborations Networks Identified from Different Sources Differ?

IRC  CHAT  LOG

VERSIONING  SYSTEM

ISSUE  TRACKERMAILING  LIST

Sebastiano Panichella, Gabriele Bavota, Massimiliano Di Penta, Gerardo Canfora, Giuliano AntoniolHow  Developers’  Collaborations  Identified  from  Different  Sources  Tell  us  About  Code  Changes.  The 30th International Conference on Software Maintenance and Evolution (IEEE ICSME 2014)

27

Page 28: Supporting Newcomers in Software Development Projects

Example: Hibernate OSS Project

28

How Developers’ Collaborations Networks Identified from Different Sources Differ?

Page 29: Supporting Newcomers in Software Development Projects

Example: Hibernate OSS Project

29

How Developers’ Collaborations Networks Identified from Different Sources Differ?

Page 30: Supporting Newcomers in Software Development Projects

Example: Hibernate OSS Project

30

How Developers’ Collaborations Networks Identified from Different Sources Differ?

Page 31: Supporting Newcomers in Software Development Projects

Example: Hibernate OSS Project

31

How Developers’ Collaborations Networks Identified from Different Sources Differ?

Page 32: Supporting Newcomers in Software Development Projects

Example: Hibernate OSS Project

32

How Developers’ Collaborations Networks Identified from Different Sources Differ?

Page 33: Supporting Newcomers in Software Development Projects

Developers Overlap between  Different Sources

Apache Httpd

Apache Lucene

Samba

Hibernate

ISSUE and CHAT ISSUE and MAIL

<35% 56%

MAIL and CHAT MAIL and ISSUE

<50%

86%

33

Page 34: Supporting Newcomers in Software Development Projects

Overlap of Developers Social Links

ISSUE and CHAT ISSUE and MAIL

<26% 38%

MAIL and CHAT MAIL and ISSUE

<20%

30%

34

Apache Httpd

Apache Lucene

Samba

Hibernate

Page 35: Supporting Newcomers in Software Development Projects

During an IRC Chat MeetingPROJECT: Hibernate

“is there a better way? dunno like I said this is brainstorming and I have not given lots of thought to these cases”

“but we also need to create the attributes and values in the entity binding..”

35

Page 36: Supporting Newcomers in Software Development Projects

PROJECT: Hibernate

“is there a better way? dunno like I said this is brainstorming and I have not given lots of thought to these cases”

1) Brainstorming

36

“however planning a pure standalone test suite would make things easier...”

During an IRC Chat Meeting

Page 37: Supporting Newcomers in Software Development Projects

PROJECT: Hibernate

“is there a better way? dunno like I said this is brainstorming and I have not given lots of thought to these cases”

“however planning a pure standalone test suite would make things easier...”

1) Brainstorming2) Planning (e.g. Testing activities)

37

During an IRC Chat Meeting

Page 38: Supporting Newcomers in Software Development Projects

PROJECT: Hibernate

“okay I think it is a bug and I’m going to create a jira first”

“however planning a pure standalone test suite would make things easier...”

1) Brainstorming2) Planning (e.g. Testing activities)3) Open an Issue

38

During an IRC Chat Meeting

Page 39: Supporting Newcomers in Software Development Projects

Apache  HTTPD

Apache  Lucene

Hibernate

Samba

Precision  in  Recommending  Leaders0% 20% 40% 60% 80%

0.8

0.6

0.6

0.6

0.6

0.6

0.4

0.2

0.2

0.4

0.2

0

CHAT ISSUE MAIL

Use Issue, Chat and Mail to  Identify Leaders

39

Page 40: Supporting Newcomers in Software Development Projects

By  use  FUZZY  CLUSTER  ALGORITHMS

Teams  Identification  from  Emergent  Collaborations  

40

Analysis of the Evolution of Teams: How?

Sebastiano Panichella, Gerardo Canfora, Massimiliano Di Penta, Rocco Oliveto:  How the evolution of emerging collaborations relates to code changes: an empirical study.  The 22nd International Conference on Program Comprehension (IEEE ICPC 2014)

Page 41: Supporting Newcomers in Software Development Projects

Teams  Merge  in  a  New  Release:    

 -­‐  in  20%-­‐35%  of  the  cases

Teams  Split  in  a  New  Release:    

-­‐  In  15%-­‐35%  of  the  cases

How do Emerging Collaborations Change across Software Releases?

Teams  Disappeared:    

 22%-­‐45%

Teams  Survived:    

 50%-­‐70%

41

Page 42: Supporting Newcomers in Software Development Projects

Analysis of Developers’Communication

1)  Analyzing  developers  collaboration/communication  through    specific  channels  would  only  provide  a  partial  view  of  the  reality.  

2)  Social  network  recommenders  should  not  limit  their  information  mining              a  single  source.

3)  Issue  and  mail  can  be  used  to  identify  leaders  with  high  accuracy.

PART I

Summary

42

Page 43: Supporting Newcomers in Software Development Projects

Analysis of Developers’Communication

1)  Analysing  developers  collaboration/communication  from  mailing  list  and  issue  tracker  to  profile    developers  roles.  

PART I

Possible  Future  Directions:

43

2)  Analysing  developers  collabora]on/communica]on  from                                    mailing  list  and  issue  tracker  to  profile    teams  of  developers                                      specialized  in  the  topics  of  interest  of  newcomers.

Page 44: Supporting Newcomers in Software Development Projects

PART IIHow Developers Browse

and Understand Software Artifacts

44

Page 45: Supporting Newcomers in Software Development Projects

45

PART II – Experiment A

PART II – Experiment B

Two Empirical Studies Aimed at Understanding

Page 46: Supporting Newcomers in Software Development Projects

46

PART II – Experiment AHow such documentation is browsed b y d e v e l o p e r s t o p e r f o r m maintenance activities?

PART II – Experiment B

Two Empirical Studies Aimed at Understanding

Page 47: Supporting Newcomers in Software Development Projects

PART II – Experiment AHow such documentation is browsed b y d e v e l o p e r s t o p e r f o r m maintenance activities?

PART II – Experiment BWhat code elements are often used by humans when labeling a source code artifacts?

word1word2

word3word4

word5word6

47

Two Empirical Studies Aimed at Understanding

Page 48: Supporting Newcomers in Software Development Projects

Maintenance TasksBug  Fixing:  

Add  a  new  feature:  

Improve  existing  features:  

48G. Bavota, G. Canfora, M. Di Penta, R.Oliveto, Sebastiano Panichella  

An  Empirical  Investigation  on  Documentation  Usage  Patterns  in  Maintenance  Tasks.    The 29th International Conference on Software Maintenance (ICSM 2013)

• 33  participants

Page 49: Supporting Newcomers in Software Development Projects

How Much Time did Participants Spend on Different Kinds of Artifacts?

72%

13%10%3%2%

49

Page 50: Supporting Newcomers in Software Development Projects

72%

13%10%3%2%

Undergraduates  students  used    Source  Code  and  Javadoc  significantly    

more  than  Graduate  students

Undergraduate  Students

50

How Much Time did Participants Spend on Different Kinds of Artifacts?

Page 51: Supporting Newcomers in Software Development Projects

72%

13%10%3%2%

Graduate  Students

Graduate  students  used  Class  Diagrams  significantly  more  than  Undergraduates

51

How Much Time did Participants Spend on Different Kinds of Artifacts?

Page 52: Supporting Newcomers in Software Development Projects

More  experienced  participants  use  a  more  “Integrated  approach”

S=  Sequence  Diagram

D=  Class  Diagram

U=  Use  Case

J=  Javadoc

52

Most Frequent Navigation Patterns Before Reaching Source Code

18%$

8%$

2%$

2%$

1%$

1%$

3%$

0%$

1%$

0%$

4%$

12%$

16%$

12%$

10%$

4%$

4%$

1%$

2%$

1%$

1%$

5%$

0%# 2%# 4%# 6%# 8%# 10%# 12%# 14%# 16%# 18%# 20%#

S##D##

(SD)+##(US)+##

U(SD)+##(DS)+##

J##U#

S(US)+##SU(SD)+##Other##

Graduate#Undegraduate#

Page 53: Supporting Newcomers in Software Development Projects

PART II – Experiment B

What Code Elements are Often Used by Humans When Labeling

a Source Code Artifact?

word1word2

word3word4

word5word6

53

Page 54: Supporting Newcomers in Software Development Projects

• Object:    

Experiment B: Context

eXVantage  (industrial  test  data  generation  tool)  

• Subjects:  38  Bachelor  Student  CS  

…  

 book    hotel    room    reservation      arrival    departure    smoking    double    card    breakfastJava  Class

54

Page 55: Supporting Newcomers in Software Development Projects

Experiment B: ContextComparison of Different Labeling Techniques

Andrea De Lucia, Massimiliano Di Penta, Rocco Oliveto, Annibale Panichella, Sebastiano Panichella : Labeling Source Code with Information Retrieval Methods: An Empirical Study. EMSE 2014.

55

Page 56: Supporting Newcomers in Software Development Projects

Experiment B: ContextComparison of Different Labeling Techniques

Data  extracted  from  signature  of  methods  match  very  well  the  mental  model  of  newcomers  when  describing  source  code

Andrea De Lucia, Massimiliano Di Penta, Rocco Oliveto, Annibale Panichella, Sebastiano Panichella : Labeling Source Code with Information Retrieval Methods: An Empirical Study. EMSE 2014.

56

Page 57: Supporting Newcomers in Software Development Projects

How Developers Browse andUnderstand Software Artifacts

1) Newcomers spend more time to analyze low-level artifacts as compared to high-level artifacts

2) Heuristics based on data extracted form signature of methods are able to match very well the mental model of newcomers when describing source code elements

PART II

Summary

57

Page 58: Supporting Newcomers in Software Development Projects

How Developers Browse andUnderstand Software Artifacts

1) Develop new recommenders able to suggest to newcomers how to proper navigate software artefacts during maintenance tasks

2) Build on top of the the automatic labelling approach more accurate summarization techniques to support newcomers during program comprehension and maintenance activity.

PART II

Possible  Future  Directions:

58

Page 59: Supporting Newcomers in Software Development Projects

PART III

Recommenders

Data  Extraction  (Software  Repositories)

Empirical  Studies

PART I and PART II

Recommenders

PART III

59

Page 60: Supporting Newcomers in Software Development Projects

Two Recommenders to SupportProject Newcomers

PART III - A)Suggest  Appropriate  Mentors  to  Help  Newcomers    in  Open  Source  Projects

PART III – B)Mining  Source  Code  Descriptions  from  Developers’  Communication  to  Improve  Newcomers’  Program  Comprehension

60

Page 61: Supporting Newcomers in Software Development Projects

PART III – A)

Suggest Appropriate Mentors to Help Newcomers in Open Source Projects

61

Page 62: Supporting Newcomers in Software Development Projects

Mentoring  of    Project    Newcomers    is  Highly  Desirable….

Previous Work

Dagenais  et  al.  ICSE  2010

MENTOR

62

Page 63: Supporting Newcomers in Software Development Projects

Motivation

https://community.apache.org/mentoringprogramme.html

https://community.apache.org/mentoringprogramme.html

63

Identifying Mentors in Software Projects

Page 64: Supporting Newcomers in Software Development Projects

Characteristics of a Good Mentor

64

           Enough  ability  to  help              other  people.

         Enough  expertise            about  the  topic  of  interest                for  the  newcomer.

https://community.apache.org/mentoringprogramme.html

Page 65: Supporting Newcomers in Software Development Projects

1)    Find  Past  Successful    Mentors        

 2)    Suggest  Mentors  Having      Specific  Skills  

YODA (Young and newcOmer Developer Assistant)

65

Approach  for  Mentors  Identification  in  Open  Source  Projects

Gerardo Canfora, Massimiliano Di Penta, Rocco Oliveto, Sebastiano Panichella: Who is Going to Mentor Newcomers in Open Source Projects?  

International Symposium on the Foundations of Software Engineering (SIGSOFT FSE 2012)

http://www.ifi.uzh.ch/seal/people/panichella/tools.html

Page 66: Supporting Newcomers in Software Development Projects

Score  Computed  Aggregating  the    Factors  in  a  Weighted  Sum  

Identify Past Successful Mentors

∑=

5

1iii fw

F1

F2 >F3

F4  -­‐    1st  

F5

Page 67: Supporting Newcomers in Software Development Projects

Recommending Mentors

67

Time

Project  Developers

Page 68: Supporting Newcomers in Software Development Projects

68

Time

Project  Developers

Newcomer

t

Recommending Mentors

Page 69: Supporting Newcomers in Software Development Projects

69

Time

Project  Developers

Newcomer

t

?Mentor  with    Adequate  Skills

Recommending Mentors

Page 70: Supporting Newcomers in Software Development Projects

70

Time

Past  Mentors

Newcomer

t

Inspired  to  the  Work  on  Bug    Triaging  by  J.    Anvik  et  al.,  TOSEM  2011  

Recommending Mentors

Page 71: Supporting Newcomers in Software Development Projects

71

Time

Past  Mentors

Newcomer

t

Inspired  to  the  Work  on  Bug    Triaging  by  J.    Anvik  et  al.,  TOSEM  2011  

Recommending Mentors

Page 72: Supporting Newcomers in Software Development Projects

72

Time

Past  Mentors

Newcomer

t

Inspired  to  the  Work  on  Bug    Triaging  by  J.    Anvik  et  al.,  TOSEM  2011  

Recommending Mentors

Page 73: Supporting Newcomers in Software Development Projects

73

Time

Past  Mentors

Newcomer

t

Inspired  to  the  Work  on  Bug    Triaging  by  J.    Anvik  et  al.,  TOSEM  2011  

Recommending Mentors

Page 74: Supporting Newcomers in Software Development Projects

74

Is it Possible to Recommend Mentors To Project Newcomers?

85%$

30%$

100%$

64%$

94%$

81%$

24%$

100%$

77%$82%$

0%$

10%$

20%$

30%$

40%$

50%$

60%$

70%$

80%$

90%$

100%$

Apache$ FreeBSD$ PostgreSQL$ Python$ Samba$

Precision$

Mentor$RecommendaGons:$Precision$on$Top$1$and$Top$2$

Top$1$

Top$2$

Page 75: Supporting Newcomers in Software Development Projects

75

Results When are Used Both Mails and Issues

80%$

67%$

90%$ 91%$ 92%$

72%$

45%$

89%$84%$

76%$

0%$

10%$

20%$

30%$

40%$

50%$

60%$

70%$

80%$

90%$

100%$

Apache$ FreeBSD$ PostgreSQL$ Python$ Samba$

Precision$

Mentor$RecommendaGons:$Precision$on$Top$1$and$Top$2$

Top$1$

Top$2$

Page 76: Supporting Newcomers in Software Development Projects

76

Mentor  Recommenda]ons:  Precision  on  Top  1  and  Top  2

Precision

0%

25%

50%

75%

100%

Apache FreeBSD PostgreSQL Python Samba

76%

84%89%

45%

72%

92%91%90%

67%

80%

Top  1Top  2

YODA  Make  it  Possible  to  Recommend  Mentors  

It is Possible to Recommend Mentors To Project Newcomers?

Page 77: Supporting Newcomers in Software Development Projects

PART III – B)

Mining  Source  Code  Descriptions  from  Developer  Communications  to  Improve    

Newcomers  Program  Comprehension

77

Page 78: Supporting Newcomers in Software Development Projects

Effort in Program Comprehension

78

Page 79: Supporting Newcomers in Software Development Projects

Mining  Summaries

We argue that messages exchanged among contributors/developers are a useful source of information to help understanding source code.

In such situations developers need to infer knowledge from,

the  source  code  itself

Newcomer

Can  find  Source  code  description

79

Page 80: Supporting Newcomers in Software Development Projects

Mining  Summaries

We argue that messages exchanged among contributors/developers are a useful source of information to help understanding source code.

In such situations developers need to infer knowledge from,

the  source  code  itself source  code  descriptions  in  external  artifacts.

Newcomer

Can  find  Source  code  description

.................................................. When call the method IndexSplitter.split(File destDir, String[] segs) from the Lucene cotrib directory(contrib/misc/src/java/org/apache/lucene/index) it creates an index with segments descriptor file with wrong data. Namely wrong is the number representing the name of segment that would be created next in this index. ..................................................

CLASS:  IndexSplitter METHOD:  split

80

Page 81: Supporting Newcomers in Software Development Projects

StackOverflow

81

Page 82: Supporting Newcomers in Software Development Projects

• Step 1: Downloading SO discussions relying on its REST interface and tracing them onto classes

• Step 2: Extracting paragraphs

• Step 3: Tracing paragraphs onto methods ( Discards Paragraphs of discussions with 0 Votes)• Step 4: Heuristic based Filtering • Step 5: Similarity based Filtering

CODES:Approach for Mining Method Descriptions

Carmine Vassallo, Sebastiano Panichella, Massimiliano Di Penta, Gerardo Canfora: CODES: mining source code descriptions from developers discussions.  BEST TOOL AWARD at the 22nd International Conference on Program Comprehension (IEEE ICPC 2014)

82

http://www.ifi.uzh.ch/seal/people/panichella/tools.html

Sebastiano Panichella, Jairo Aponte, Massimiliano Di Penta, Andrian Marcus, Gerardo Canfora:   Mining source code descriptions from developer communications.  International Conference on Program Comprehension (IEEE ICPC 2012)

Page 83: Supporting Newcomers in Software Development Projects

Help Newcomer Program Comprehension with extraction of summaries of code elements from

Newcomer Q&A  SITE

ISSUE  TRACKER

MAILING  LIST

83

Supporting Software Development

Page 84: Supporting Newcomers in Software Development Projects

Approach Precision vs. Number of Method Covered

84

Page 85: Supporting Newcomers in Software Development Projects

Approach Precision vs. Number of Method Covered

We  mine  useful  java  methods  description  from  developers  discussions

85

Page 86: Supporting Newcomers in Software Development Projects

PART III

Recommenders

1)  YODA  make  it  possible  to  recommend  mentors  with  a  precision  higher  than  67%  

3)  Combining  Mails  and  Issues  improve  recommenders’  performance

2)  CODES  identifies  relevant  descriptions  with  a  precision  higher  than  79%

86

Page 87: Supporting Newcomers in Software Development Projects

87

Future Work and

Conclusion

Page 88: Supporting Newcomers in Software Development Projects

PART I

PART II

PART III

88

Page 89: Supporting Newcomers in Software Development Projects

Future  Work…

Analysing  developers  collaboration/communication  from  mailing  list  and  issue  tracker  to  profile    developers  roles  or  teams.  

We  will  aim  at  building  recommenders  to  help  newcomer  in  the  choice  of  appropriate  patterns  to  navigate  software  documentation  during  maintenance  tasks.

New Recommenders

89

 Tester    Maintainer    Mentor  

Page 90: Supporting Newcomers in Software Development Projects

Future  Work…

Develop  new  recommenders  able  to  describing  dependencies  with  third-­‐party  libraries  and  help  newcomers  to  avoid  changes  that  could  break  the  dependency  with  used  libraries.

New Recommenders

90

Build   on   top   of   the   the   automatic   labelling   approach   more   accurate  summarization  techniques  to  support  newcomers  during  program  comprehension  

Page 91: Supporting Newcomers in Software Development Projects

Advice  to  Young    Newcomers  (Researchers)

91

Page 92: Supporting Newcomers in Software Development Projects

Advice  to  Young    Newcomers  (Researchers)

92

Pleasures  and  rewards  of  research:  

   -­‐ PASSION  is  the  most  important  thing!  

-­‐ Be  aware  that  with  this  work  you  will  not  earn  so  much  moneys.  If  you  have  ANY  DOUBT  don’t  do  it!  

-­‐  WORK  HARD  (even  in  the  week-­‐end)  and  do  good  work!  

Do  you  really  want  to  be  a  PhD  student?

Page 93: Supporting Newcomers in Software Development Projects

Ways  to  fail  a  Ph.D  

93

Learn too much… - Some students go to Ph.D. school because they want to learn. - Let there be no mistake: Ph.D. school involves a lot of learning.

But, it requires focused learning directed toward an eventual thesis. - Taking (or sitting in on) non-required classes outside one's focus is almost always a waste of time, and it's always unnecessary.

Expect perfection…Perfection cannot be attained. It is approached in the limit…

Something that is “good enough” can be achieved…

Procrastinate… Chronic perfectionists also tend to be procrastinators. So do eternal students with a drive to learn instead of research.

Page 94: Supporting Newcomers in Software Development Projects

Ways  to  fail  a  Ph.D  

94

Ignore Conference Meetings…

Start complaining instead working…- Complaining about some of the following staff instead working is a big mistake:

a) Your working environment. b) The absence of your advisor.

c) Anything else.

-> “PhD student” doesn’t means “student” …It means, “Young Researcher”…

…we can expect ADVISES from our advisor NOT ideas…

- Conferences are the best places to be aware of “new emerging ideas” - Be in contact with other peers and share ideas. “Best idea born in a collaborative

matter”.

Page 95: Supporting Newcomers in Software Development Projects

Thing  to  do  during  a  Ph.D  

95

Be focused!

Be focused on real problems!

- It is important, certainly work in a wider research has a wide impact, however, it should be around a precise problem.

A wide research will get you better job offers, but proven depth is more likely to get you fame.

- The best research often comes from REAL PROBLEMS: I think that much academic research is, well, academic.

- Talk with local companies: you may find that your best ideas, even general theoretical ideas, arise from their needs.

Validate your research work!- Validate your research ideas is a very effort consuming task, it is very

important try to involve developers (doing a survey or controlled experiments) in this loop.

Page 96: Supporting Newcomers in Software Development Projects

Thanks  for  your  Attention!

96

Page 97: Supporting Newcomers in Software Development Projects

PART I

PART II

PART III

97