It is common knowledge that program comprehension takes up a substantial part of software development. This “urban legend” is based on work that dates back decades, which throws up the question whether the advances in software development tools, techniques, and methodologies that have emerged since then may invalidate or confirm the claim.
We present an empirical investigation which goal is to confirm or reject the claim, based on interaction data which captures the user interface activities of developers. We use interaction data to empirically quantify the distribution of different developer activities during software development: In particular, we focus on estimating the role of program comprehension. In addition, we investigate if and how different developers and session types influence the duration of such activities. We analyze interaction data from two different contexts: One comes from the ECLIPSE IDE on Java source code development, while the other comes from the PHARO IDE on Smalltalk source code development. We found evidence that code navigation and editing occupies only a small fraction of the time of developers, while the vast majority of the time is spent on reading & understanding source code. In essence, the importance of program comprehension was significantly underestimated by previous research.
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
Quantifying Program Comprehension with Interaction Data [QSIC2014]
1. Quantifying
Program Comprehension
with Interaction Data
Roberto Minelli, Andrea Mocci & Michele Lanza
REVEAL @ Faculty of Informatics
University of Lugano, Switzerland
@robertominelli
Takashi Kobayashi
Department of Computer Science
Tokyo Institute of Technology, Japan
18. Java SmallTalk
15 sessions
15 developers
4,000 events
All enhancement sessions
175 sessions
7 developers
110,000+ events
Various types of session
N N E N I N
t1 t2 t3 t4 t5 t6
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
19. Java SmallTalk
15 sessions
15 developers
4,000 events
All enhancement sessions
175 sessions
7 developers
110,000+ events
Various types of session
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NWNR
t1 t2 t3 t4 t5 t6
NR NW NR NR NWE E
20. Java SmallTalk
15 sessions
15 developers
4,000 events
All enhancement sessions
175 sessions
7 developers
110,000+ events
Various types of session
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NWNR
t1 t2 t3 t4 t5 t6
NR NW NR NR NWE E
Estimation Model for
Java Interactions
Estimation Model for
Smalltalk Interactions
22. Estimation Model for
Java Interactions
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
N
t1 t2 t3 t4 t5 t6
N NW N N NW
Raw Interaction History
Step 1: Navigation ∆N
23. Estimation Model for
Java Interactions
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
N
t1 t2 t3 t4 t5 t6
N NW N N NW
N
t1 t2 t3 t4 t5 t6
N N N N NE E
Raw Interaction History
Step 1: Navigation
Step 2: Edit
∆N
PE
24. Estimation Model for
Java Interactions
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
N
t1 t2 t3 t4 t5 t6
N NW N N NW
N
t1 t2 t3 t4 t5 t6
N N N N NE E
N
t1 t2 t3 t4 t5 t6
N N N N NE E
Raw Interaction History
Step 1: Navigation
Step 2: Edit
Step 3: Understanding
∆N
PE
26. Raw Interaction History
Step 1: Navigation
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
∆N
Estimation Model for
Smalltalk Interactions
27. Raw Interaction History
Step 1: Navigation
Step 2: Edit
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
∆N
PE
Estimation Model for
Smalltalk Interactions
28. Raw Interaction History
Step 1: Navigation
Step 2: Edit
Step 3: Inspection
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
∆N
PE
PI
Estimation Model for
Smalltalk Interactions
29. Raw Interaction History
Step 1: Navigation
Step 2: Edit
Step 3: Inspection
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
N N E N I N
t1 t2 t3 t4 t5 t6
Step 4: Understanding
∆N
PE
PI
Estimation Model for
Smalltalk Interactions
30. Degrees of Freedom and Understanding
Estimation Model for
Java Interactions
Estimation Model for
Smalltalk Interactions
∆N, PE ∆N, PE, PI
31. Degrees of Freedom and Understanding
Estimation Model for
Java Interactions
Estimation Model for
Smalltalk Interactions
∆N, PE ∆N, PE, PI
∆N = 1 second
32. Degrees of Freedom and Understanding
Estimation Model for
Java Interactions
Estimation Model for
Smalltalk Interactions
The most pessimistic estimate is shown in the bottom right
cell of the table, and corresponds to PE = PI = 90%. In
this case understanding amounts to 54% of time, which is
slightly above the upper-bound of previous estimates [3], [6],
[24]. The most optimistic estimate is on the top-left cell of
the table, corresponding to PE = PI = 10%: In this case,
understanding consumes around 88% of the time of developers,
which is significantly above previous estimates. Obviously,
more accurate estimates lay between these two quite unrealistic
extremes, and they are shown in the other cells of the table.
It appears very likely that actual time spent by developers in
program understanding has been underestimated by previous
research by at least 10-20%.
Table VI shows similar results in the case of Java develop-
ment sessions recorded by PLOG. In this case, since the tool
did not record inspection events, the only parameter to vary is
PE. Pessimistic and optimistic estimates for program under-
standing are similar to the case of DFLOW, suggesting similar
considerations about the time spent in program understanding.
TABLE VI: Amount of Understanding in Java Sessions
Varying the Estimate of PE
PE 0.10 0.25 0.50 0.75 0.90
94.33% 87.13% 75.12% 63.11% 55.91%
V. RESULTS
Tables VII, VIII, and IX summarize the distribution of
development activities for all the recorded sessions in the
case of DFLOW and PLOG. For each development activity,
we calculate the average of the percentage of time spent by
developers in each activity.
As we pointed out in the previous section, program under-
standing is a dominant activity, as it accounts, on average, from
54 to 94% of the total development time in each session. The
values are similar despite the profound difference in the way
developers produce Java and Smalltalk code. This suggests that
NAV EDI INS UND
%
10%
20%
30%
40%
Fig. 14: Development Activities for All Sessions.
Note: inspect (INS) applies only to Smalltalk sessions.
Role of session types. While in interaction histories
collected by DFLOW and PLOG program understanding is
dominant in both cases, there is difference ranging from
2% to 6% depending on the estimates of parameters, as
shown in Table VII. On all the Smalltalk sessions, program
understanding ranges from 54 to 88% while on Java sessions
these bounds range from 56 to 94%. A possible interpretation
of this difference can be found in the fact that PLOG sessions
were all enhancement sessions, while the sessions we collected
with DFLOW are of different type and include, for example,
bug-fixing and refactoring sessions.
Table VII shows the different distribution of the duration of
development activities per session type in the case of Smalltalk
sessions collected by DFLOW.
The role of understanding is still dominant in all session
types: However, there is some significant difference in the
distribution of editing and navigation activities. Refactoring
sessions, for example, have a high understanding compo-
nent and make minimal use of inspection activities (0.2-
1.7%). While program understanding does not appear to be
significantly different between session types, there are some
differences on the distribution of other activities. Enhancement
and Bug Fixing sessions spend significant time on inspection
(around 10%), while Enhancement and Refactoring sessions
spend more time on editing.
Understanding
56% to 94%
33. discuss how the results of our quantification model change by
varying these parameters, obtaining possible lower and upper
bounds to the amount of time spent in program understanding.
Table V shows how the amount of program understanding
changes by varying PE and PI in the case of Smalltalk
development sessions collected by DFLOW.
TABLE V: Amount of Understanding in Smalltalk Sessions
Varying the Estimates of PE and PI
PI
PE
0.10 0.25 0.50 0.75 0.90
0.10 88.44% 83.74% 75.87% 67.94% 63.16%
0.25 86.17% 81.63% 73.97% 66.20% 61.46%
0.50 82.34% 78.02% 70.71% 63.24% 58.62%
0.75 78.46% 74.28% 67.28% 60.16% 55.73%
0.90 76.10% 71.97% 65.09% 58.16% 53.93%
The most pessimistic estimate is shown in the bottom right
cell of the table, and corresponds to PE = PI = 90%. In
this case understanding amounts to 54% of time, which is
slightly above the upper-bound of previous estimates [3], [6],
[24]. The most optimistic estimate is on the top-left cell of
the table, corresponding to PE = PI = 10%: In this case,
understanding consumes around 88% of the time of developers,
which is significantly above previous estimates. Obviously,
more accurate estimates lay between these two quite unrealistic
unde
deve
likel
F
the a
diffe
emer
activ
%oftimespent
Degrees of Freedom and Understanding
Understanding
54% to 88%
Estimation Model for
Java Interactions
Estimation Model for
Smalltalk Interactions
The most pessimistic estimate is shown in the bottom right
cell of the table, and corresponds to PE = PI = 90%. In
this case understanding amounts to 54% of time, which is
slightly above the upper-bound of previous estimates [3], [6],
[24]. The most optimistic estimate is on the top-left cell of
the table, corresponding to PE = PI = 10%: In this case,
understanding consumes around 88% of the time of developers,
which is significantly above previous estimates. Obviously,
more accurate estimates lay between these two quite unrealistic
extremes, and they are shown in the other cells of the table.
It appears very likely that actual time spent by developers in
program understanding has been underestimated by previous
research by at least 10-20%.
Table VI shows similar results in the case of Java develop-
ment sessions recorded by PLOG. In this case, since the tool
did not record inspection events, the only parameter to vary is
PE. Pessimistic and optimistic estimates for program under-
standing are similar to the case of DFLOW, suggesting similar
considerations about the time spent in program understanding.
TABLE VI: Amount of Understanding in Java Sessions
Varying the Estimate of PE
PE 0.10 0.25 0.50 0.75 0.90
94.33% 87.13% 75.12% 63.11% 55.91%
V. RESULTS
Tables VII, VIII, and IX summarize the distribution of
development activities for all the recorded sessions in the
case of DFLOW and PLOG. For each development activity,
we calculate the average of the percentage of time spent by
developers in each activity.
As we pointed out in the previous section, program under-
standing is a dominant activity, as it accounts, on average, from
54 to 94% of the total development time in each session. The
values are similar despite the profound difference in the way
developers produce Java and Smalltalk code. This suggests that
NAV EDI INS UND
%
10%
20%
30%
40%
Fig. 14: Development Activities for All Sessions.
Note: inspect (INS) applies only to Smalltalk sessions.
Role of session types. While in interaction histories
collected by DFLOW and PLOG program understanding is
dominant in both cases, there is difference ranging from
2% to 6% depending on the estimates of parameters, as
shown in Table VII. On all the Smalltalk sessions, program
understanding ranges from 54 to 88% while on Java sessions
these bounds range from 56 to 94%. A possible interpretation
of this difference can be found in the fact that PLOG sessions
were all enhancement sessions, while the sessions we collected
with DFLOW are of different type and include, for example,
bug-fixing and refactoring sessions.
Table VII shows the different distribution of the duration of
development activities per session type in the case of Smalltalk
sessions collected by DFLOW.
The role of understanding is still dominant in all session
types: However, there is some significant difference in the
distribution of editing and navigation activities. Refactoring
sessions, for example, have a high understanding compo-
nent and make minimal use of inspection activities (0.2-
1.7%). While program understanding does not appear to be
significantly different between session types, there are some
differences on the distribution of other activities. Enhancement
and Bug Fixing sessions spend significant time on inspection
(around 10%), while Enhancement and Refactoring sessions
spend more time on editing.
Understanding
56% to 94%
34. Role of Session Types
TABLE VII: Development Activities per Session Type.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Type N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
DFLOW: Smalltalk
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
35. Role of Session TypesTABLE VII: Development Activities per Session Type.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Type N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
DFLOW: Smalltalk
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
Program understanding
does not appear to be significantly different
between session types
36. Role of Session TypesTABLE VII: Development Activities per Session Type.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Type N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
DFLOW: Smalltalk
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
Refactoringsessions
make minimaluse of
inspection activities
37. Role of Session TypesTABLE VII: Development Activities per Session Type.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Type N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
DFLOW: Smalltalk
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
Enhancementand Bug-Fixing
make more use of
inspection activities
38. Role of Session TypesTABLE VII: Development Activities per Session Type.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Type N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
DFLOW: Smalltalk
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
Enhancementand Refactoring
spend more time in
editing activities
39. Developer Diversity
Enhancement 7.8% 30.6% 17.4% 3.6% 13.4% 7.8% 1.7% 48.2% 67.0% 86.9%
Refactoring 9.1% 30.4% 16.9% 3.4% 1.7% 0.9% 0.2% 58.9% 73.1% 87.3%
General 6.2% 21.3% 12.1% 2.5% 9.5% 5.5% 1.2% 63.0% 76.2% 90.1%
Bug Fixing 4.6% 25.5% 14.5% 3.0% 17.4% 10.0% 2.1% 52.6% 70.9% 90.3%
All 6.8% 26.9% 15.3% 3.2% 12.3% 7.2% 1.6% 54.0% 70.7% 88.4%
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
inspecting, which is a preferred activity of skilled developers.
SD1 and SD3 have the highest editing and the among the
lowest understanding values. In essence, they seem to be at
ease with the code base and confidently change it without the
need to rely on extensive navigation.
Table IX lists the relative importance of the activities
for each Java developer. Again we can infer some developer
“profiles”. For example JD8 took a short time to implement the
changes, but has high understanding and low editing (refer to
Table IV for durations). JD2 and JD14 have a similar behavior
but they took more time to implement the task. We can say that
JD8 is someone who thinks deeply about what to do, and then
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
TABLE VIII: Smalltalk Development Activities per Developer.
9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
3 has a tendency towards more
ss understanding. In essence he
e “aggressive” towards the code
most the same amount of time on
most equally the remaining time
on, being thus more “cautious”
erifies the implemented changes.
cautious, denoted by their high
ce they reflect more on the code
wever is making very little use of
ed activity of skilled developers.
est editing and the among the
In essence, they seem to be at
onfidently change it without the
igation.
ve importance of the activities
n we can infer some developer
ok a short time to implement the
anding and low editing (refer to
nd JD14 have a similar behavior
plement the task. We can say that
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
40. Developer Diversity
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
inspecting, which is a preferred activity of skilled developers.
SD1 and SD3 have the highest editing and the among the
lowest understanding values. In essence, they seem to be at
ease with the code base and confidently change it without the
need to rely on extensive navigation.
Table IX lists the relative importance of the activities
for each Java developer. Again we can infer some developer
“profiles”. For example JD8 took a short time to implement the
changes, but has high understanding and low editing (refer to
Table IV for durations). JD2 and JD14 have a similar behavior
but they took more time to implement the task. We can say that
JD8 is someone who thinks deeply about what to do, and then
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
SD3 is aggressive
prefers to navigate and edit than understand
41. Developer Diversity
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
inspecting, which is a preferred activity of skilled developers.
SD1 and SD3 have the highest editing and the among the
lowest understanding values. In essence, they seem to be at
ease with the code base and confidently change it without the
need to rely on extensive navigation.
Table IX lists the relative importance of the activities
for each Java developer. Again we can infer some developer
“profiles”. For example JD8 took a short time to implement the
changes, but has high understanding and low editing (refer to
Table IV for durations). JD2 and JD14 have a similar behavior
but they took more time to implement the task. We can say that
JD8 is someone who thinks deeply about what to do, and then
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
SD2 is cautious
equally distributed editing and inspection
42. Developer Diversity
PLOG: Java
All 0.9% 43.2% 24.0% 4.8% – – – 55.9% 75.1% 94.3%
TABLE VIII: Smalltalk Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5, and Max: PE = 0.1 and PI = 0.1
Developer N (%) E (%) I (%) U (%)
Min Med Max Min Med Max Min Med Max
SD1 5.1% 30.9% 17.6% 3.6% 13.7% 8.0% 1.7% 50.3% 69.4% 89.5%
SD2 8.9% 21.6% 12.1% 2.4% 20.3% 11.3% 2.3% 49.2% 67.7% 86.4%
SD3 8.0% 30.2% 17.0% 3.5% 5.6% 3.3% 0.7% 56.2% 71.8% 87.9%
SD4 8.5% 26.5% 15.1% 3.1% 12.8% 7.4% 1.6% 52.2% 69.0% 86.8%
SD5 4.6% 16.8% 9.7% 2.1% 9.3% 5.6% 1.3% 69.4% 80.1% 92.1%
SD6 8.4% 10.5% 6.0% 1.2% 10.5% 6.0% 1.2% 70.6% 79.6% 89.1%
SD7 5.7% 22.3% 12.6% 2.6% 10.5% 6.1% 1.3% 61.5% 75.6% 90.4%
deduce diverse “profiles”: SD3 has a tendency towards more
navigation and editing, and less understanding. In essence he
could be characterized as more “aggressive” towards the code
base. Similarly, SD2 spends almost the same amount of time on
navigation, but distributes almost equally the remaining time
between editing and inspection, being thus more “cautious”
and she probably frequently verifies the implemented changes.
SD5 and SD6 are even more cautious, denoted by their high
understanding values. In essence they reflect more on the code
before they change it. SD3 however is making very little use of
inspecting, which is a preferred activity of skilled developers.
SD1 and SD3 have the highest editing and the among the
lowest understanding values. In essence, they seem to be at
ease with the code base and confidently change it without the
need to rely on extensive navigation.
Table IX lists the relative importance of the activities
for each Java developer. Again we can infer some developer
“profiles”. For example JD8 took a short time to implement the
changes, but has high understanding and low editing (refer to
Table IV for durations). JD2 and JD14 have a similar behavior
but they took more time to implement the task. We can say that
JD8 is someone who thinks deeply about what to do, and then
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
SD1 and 3 are the pros
high editing and low understanding values
43. Developer Diversity
3 has a tendency towards more
ss understanding. In essence he
e “aggressive” towards the code
most the same amount of time on
most equally the remaining time
on, being thus more “cautious”
erifies the implemented changes.
cautious, denoted by their high
ce they reflect more on the code
wever is making very little use of
d activity of skilled developers.
est editing and the among the
In essence, they seem to be at
onfidently change it without the
gation.
e importance of the activities
n we can infer some developer
ok a short time to implement the
anding and low editing (refer to
nd JD14 have a similar behavior
lement the task. We can say that
eply about what to do, and then
3 is at the opposite end of the
editing time, with relatively high
eloper who meanders heavily in
implements the changes.
ce of program understanding has
ding is all the more relevant as
nd programming languages. We
nt insight that corroborates the
roaches and tools that deal with
everse engineering.
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
Construct Validity. We record interaction data in terms of
events in the IDE with their timestamp. We devised a model to
estimate the duration of activities: A threat to validity for our
results is the accuracy of this model, that may not precisely
capture, for example, the moment when editing activities start.
To get a more accurate model to estimate activity durations,
one should record more fine-grained interaction data and
corresponding events. However, in Section IV-C we described
how even varying the degrees of freedoms the essence of this
paper remains true.
JD8 is a thinker
fast but with high understanding and low editing
44. Developer Diversity
JD13 is super cautious
high amount of editing, with high navigation time
3 has a tendency towards more
ss understanding. In essence he
e “aggressive” towards the code
most the same amount of time on
most equally the remaining time
on, being thus more “cautious”
erifies the implemented changes.
cautious, denoted by their high
ce they reflect more on the code
wever is making very little use of
d activity of skilled developers.
est editing and the among the
In essence, they seem to be at
onfidently change it without the
gation.
e importance of the activities
n we can infer some developer
ok a short time to implement the
anding and low editing (refer to
nd JD14 have a similar behavior
lement the task. We can say that
eply about what to do, and then
3 is at the opposite end of the
editing time, with relatively high
eloper who meanders heavily in
implements the changes.
ce of program understanding has
ding is all the more relevant as
nd programming languages. We
nt insight that corroborates the
roaches and tools that deal with
everse engineering.
TABLE IX: Java Development Activities per Developer.
Min: PE = 0.9 and PI = 0.9, Med: PE = 0.5 and PI = 0.5,
and Max: PE = 0.1 and PI = 0.1
Dev. N (%) E (%) U (%)
Min Med Max Min Med Max
JD1 0.5% 60.2% 33.4% 6.68% 39.3% 66.0% 92.78%
JD2 0.8% 20.3% 11.3% 2.25% 78.8% 87.9% 96.90%
JD3 0.8% 52.5% 29.1% 5.83% 46.8% 70.1% 93.41%
JD4 1.3% 32.0% 17.8% 3.56% 66.6% 80.9% 95.12%
JD5 0.7% 68.7% 38.2% 7.63% 30.6% 61.1% 91.64%
JD6 1.0% 40.7% 22.6% 4.52% 58.3% 76.4% 94.46%
JD7 0.9% 62.1% 34.5% 6.90% 37.0% 64.6% 92.22%
JD8 1.1% 24.9% 13.8% 2.76% 74.0% 85.1% 96.19%
JD9 0.7% 28.3% 15.7% 3.14% 71.0% 83.5% 96.13%
JD10 0.9% 34.1% 18.9% 3.79% 65.0% 80.2% 95.32%
JD11 0.9% 27.6% 15.4% 3.07% 71.5% 83.8% 96.05%
JD12 0.8% 49.1% 27.3% 5.46% 50.0% 71.9% 93.71%
JD13 0.7% 75.2% 41.8% 8.35% 24.2% 57.6% 90.98%
JD14 1.2% 22.4% 12.4% 2.48% 76.4% 86.4% 96.32%
JD15 0.7% 50.1% 27.9% 5.57% 49.1% 71.4% 93.72%
A. Threats to Validity
Construct Validity. We record interaction data in terms of
events in the IDE with their timestamp. We devised a model to
estimate the duration of activities: A threat to validity for our
results is the accuracy of this model, that may not precisely
capture, for example, the moment when editing activities start.
To get a more accurate model to estimate activity durations,
one should record more fine-grained interaction data and
corresponding events. However, in Section IV-C we described
how even varying the degrees of freedoms the essence of this
paper remains true.
48. Program understanding
is considered one of the
most time consuming activities
of software development.
IPSE DIXIT
Interaction
data
Empirical evidence
on the role of program
comprehension
IDEs
49. Program understanding
is considered one of the
most time consuming activities
of software development.
@robertominelli
IPSE DIXIT
Interaction
data
Empirical evidence
on the role of program
comprehension
IDEs
NAV EDI INS UND
%oftimespent
10%
20%
30%
40%
50%
60%
70%
80%
90%
Smalltalk
Java
50. Program understanding
is considered one of the
most time consuming activities
of software development.
@robertominelli
IPSE DIXIT
Interaction
data
Empirical evidence
on the role of program
comprehension
IDEs
NAV EDI INS UND
%oftimespent
10%
20%
30%
40%
50%
60%
70%
80%
90%
Smalltalk
Java
Significantlyunderestimated byprevious research
51. EI
∆Ii ∆Ei∆Ui
e Equation (3) we should know the start time of
hat is Ei. We cannot know this before solving
4).
, to determine Ei we need the end time of
that is Ii, and we cannot know this a priori. To
e can rewrite Equations (3) and (4) as follows:
⇢
Ii = PI ⇥ ( Ei)
Ei = PE ⇥ ( Ii)
(5)
= Ii + Ui + Ei. Ii depends on Ei,
ersa. We want to find two percentages, PIE
I and
that Ei and Ii can be computed from the whole
⇢
Ii = PIE
I ⇥
Ei = PIE
E ⇥
determine Ei we need the end time of
is Ii, and we cannot know this a priori. To
an rewrite Equations (3) and (4) as follows:
⇢
Ii = PI ⇥ ( Ei)
Ei = PE ⇥ ( Ii)
(5)
= Ii + Ui + Ei. Ii depends on Ei,
. We want to find two percentages, PIE
I and
Ei and Ii can be computed from the whole
⇢
Ii = PIE
I ⇥
Ei = PIE
E ⇥
on, these two fractions are:
⇢
PIE
I = Ii
PIE
E = Ei
ng Equations (5) by we obtain:
⇢
PIE
I = PI ⇥ (1 PIE
E )
PIE
E = PE ⇥ (1 PIE
I )
(6)
quations (6) we obtain:
(
PIE
I = PI PI ⇥PE
1 PI ⇥PE
PIE
E = PE PI ⇥PE
1 PI ⇥PE
rize, the three time intervals depicted in Fig. 9,
Editing Activities. Editing acti
records an event of type NW at tim
performs a navigation after editing.
an unknown moment in the time in
the previous event, denoted as end
To make the editing activity Ei ex
middle of the interval and with a d
the duration of that interval. The N
to a navigation activity with a fixed
Ei = PE ⇥ (t(NW ) e
To solve the first equation we need to
solve the result of the second.
We need two percentages that only
depend on the full interval (∆).
Solving a couple of equation leads to
these two percentages.