Quantifying Program Comprehension with Interaction Data [QSIC2014]
-
Upload
roberto-minelli -
Category
Software
-
view
24 -
download
1
Transcript of Quantifying Program Comprehension with Interaction Data [QSIC2014]
BOTTOM
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
BOTTOM
ReadWrite
s
developer spend more time
reading than writing
navigation occupies a significant amount of time
vs.
BOTTOM
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
BOTTOM
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
BOTTOM
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
BOTTOM
Estimation Model for
Java Interactions
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
Raw Interaction History
BOTTOM
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
BOTTOM
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
BOTTOM
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
BOTTOM
Estimation Model for Smalltalk Interactions Raw Interaction History
N N E N I N
t1 t2 t3 t4 t5 t6
BOTTOM
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
BOTTOM
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
BOTTOM
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
BOTTOM
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 t6Step 4: Understanding
∆N
PE
PI
Estimation Model for Smalltalk Interactions
BOTTOM
Degrees of Freedom and Understanding
Estimation Model for
Java Interactions
Estimation Model for Smalltalk Interactions
∆N, PE ∆N, PE, PI
BOTTOM
Degrees of Freedom and Understanding
Estimation Model for
Java Interactions
Estimation Model for Smalltalk Interactions
∆N, PE ∆N, PE, PI
∆N = 1 second
BOTTOM
Degrees of Freedom and Understanding
Estimation Model for
Java Interactions
Estimation Model for Smalltalk Interactions
discuss how the results of our quantification model change byvarying these parameters, obtaining possible lower and upperbounds to the amount of time spent in program understanding.Table V shows how the amount of program understandingchanges by varying PE and PI in the case of Smalltalkdevelopment sessions collected by DFLOW.
TABLE V: Amount of Understanding in Smalltalk SessionsVarying the Estimates of PE and PI
PI
PE0.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 rightcell of the table, and corresponds to PE = PI = 90%. Inthis case understanding amounts to 54% of time, which isslightly above the upper-bound of previous estimates [3], [6],[24]. The most optimistic estimate is on the top-left cell ofthe 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 unrealisticextremes, and they are shown in the other cells of the table.It appears very likely that actual time spent by developers inprogram understanding has been underestimated by previousresearch 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 tooldid not record inspection events, the only parameter to vary isPE . Pessimistic and optimistic estimates for program under-standing are similar to the case of DFLOW, suggesting similarconsiderations about the time spent in program understanding.
TABLE VI: Amount of Understanding in Java SessionsVarying 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 ofdevelopment activities for all the recorded sessions in thecase of DFLOW and PLOG. For each development activity,we calculate the average of the percentage of time spent bydevelopers in each activity.
As we pointed out in the previous section, program under-standing is a dominant activity, as it accounts, on average, from54 to 94% of the total development time in each session. Thevalues are similar despite the profound difference in the waydevelopers produce Java and Smalltalk code. This suggests thatthe role of program understanding has been underestimatedby previous research. Decades ago researchers claimed that
understanding a program absorbs about 50% of the time ofdevelopers [3], [6], [24], while we find that the percentage islikely to be substantially higher.
Fig. 14 depicts the distribution of the relative importance ofthe activities using boxplots. Although there can be substantialdifferences between individual sessions and developers, whatemerges is a clear pre-dominance of program understandingactivities.
NAV EDI INS UND
% o
f tim
e sp
ent
10%
20%
30%
40%
50%
60%
70%
80%
90%SmalltalkJava
Fig. 14: Development Activities for All Sessions.Note: inspect (INS) applies only to Smalltalk sessions.
Role of session types. While in interaction historiescollected by DFLOW and PLOG program understanding isdominant in both cases, there is difference ranging from2% to 6% depending on the estimates of parameters, asshown in Table VII. On all the Smalltalk sessions, programunderstanding ranges from 54 to 88% while on Java sessionsthese bounds range from 56 to 94%. A possible interpretationof this difference can be found in the fact that PLOG sessionswere all enhancement sessions, while the sessions we collectedwith DFLOW are of different type and include, for example,bug-fixing and refactoring sessions.
Table VII shows the different distribution of the duration ofdevelopment activities per session type in the case of Smalltalksessions collected by DFLOW.
The role of understanding is still dominant in all sessiontypes: However, there is some significant difference in thedistribution of editing and navigation activities. Refactoringsessions, 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 besignificantly different between session types, there are somedifferences on the distribution of other activities. Enhancementand Bug Fixing sessions spend significant time on inspection(around 10%), while Enhancement and Refactoring sessionsspend more time on editing.
Developer Diversity. Table VIII lists the relative impor-tance of the activities for each Smalltalk developer. We can
Understanding 56% to 94%
BOTTOM
discuss how the results of our quantification model change byvarying these parameters, obtaining possible lower and upperbounds to the amount of time spent in program understanding.Table V shows how the amount of program understandingchanges by varying PE and PI in the case of Smalltalkdevelopment sessions collected by DFLOW.
TABLE V: Amount of Understanding in Smalltalk SessionsVarying the Estimates of PE and PI
PI
PE0.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 rightcell of the table, and corresponds to PE = PI = 90%. Inthis case understanding amounts to 54% of time, which isslightly above the upper-bound of previous estimates [3], [6],[24]. The most optimistic estimate is on the top-left cell ofthe 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 unrealisticextremes, and they are shown in the other cells of the table.It appears very likely that actual time spent by developers inprogram understanding has been underestimated by previousresearch 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 tooldid not record inspection events, the only parameter to vary isPE . Pessimistic and optimistic estimates for program under-standing are similar to the case of DFLOW, suggesting similarconsiderations about the time spent in program understanding.
TABLE VI: Amount of Understanding in Java SessionsVarying 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 ofdevelopment activities for all the recorded sessions in thecase of DFLOW and PLOG. For each development activity,we calculate the average of the percentage of time spent bydevelopers in each activity.
As we pointed out in the previous section, program under-standing is a dominant activity, as it accounts, on average, from54 to 94% of the total development time in each session. Thevalues are similar despite the profound difference in the waydevelopers produce Java and Smalltalk code. This suggests thatthe role of program understanding has been underestimatedby previous research. Decades ago researchers claimed that
understanding a program absorbs about 50% of the time ofdevelopers [3], [6], [24], while we find that the percentage islikely to be substantially higher.
Fig. 14 depicts the distribution of the relative importance ofthe activities using boxplots. Although there can be substantialdifferences between individual sessions and developers, whatemerges is a clear pre-dominance of program understandingactivities.
NAV EDI INS UND
% o
f tim
e sp
ent
10%
20%
30%
40%
50%
60%
70%
80%
90%SmalltalkJava
Fig. 14: Development Activities for All Sessions.Note: inspect (INS) applies only to Smalltalk sessions.
Role of session types. While in interaction historiescollected by DFLOW and PLOG program understanding isdominant in both cases, there is difference ranging from2% to 6% depending on the estimates of parameters, asshown in Table VII. On all the Smalltalk sessions, programunderstanding ranges from 54 to 88% while on Java sessionsthese bounds range from 56 to 94%. A possible interpretationof this difference can be found in the fact that PLOG sessionswere all enhancement sessions, while the sessions we collectedwith DFLOW are of different type and include, for example,bug-fixing and refactoring sessions.
Table VII shows the different distribution of the duration ofdevelopment activities per session type in the case of Smalltalksessions collected by DFLOW.
The role of understanding is still dominant in all sessiontypes: However, there is some significant difference in thedistribution of editing and navigation activities. Refactoringsessions, 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 besignificantly different between session types, there are somedifferences on the distribution of other activities. Enhancementand Bug Fixing sessions spend significant time on inspection(around 10%), while Enhancement and Refactoring sessionsspend more time on editing.
Developer Diversity. Table VIII lists the relative impor-tance of the activities for each Smalltalk developer. We can
Degrees of Freedom and Understanding
Understanding 54% to 88%
Estimation Model for
Java Interactions
Estimation Model for Smalltalk Interactions
discuss how the results of our quantification model change byvarying these parameters, obtaining possible lower and upperbounds to the amount of time spent in program understanding.Table V shows how the amount of program understandingchanges by varying PE and PI in the case of Smalltalkdevelopment sessions collected by DFLOW.
TABLE V: Amount of Understanding in Smalltalk SessionsVarying the Estimates of PE and PI
PI
PE0.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 rightcell of the table, and corresponds to PE = PI = 90%. Inthis case understanding amounts to 54% of time, which isslightly above the upper-bound of previous estimates [3], [6],[24]. The most optimistic estimate is on the top-left cell ofthe 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 unrealisticextremes, and they are shown in the other cells of the table.It appears very likely that actual time spent by developers inprogram understanding has been underestimated by previousresearch 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 tooldid not record inspection events, the only parameter to vary isPE . Pessimistic and optimistic estimates for program under-standing are similar to the case of DFLOW, suggesting similarconsiderations about the time spent in program understanding.
TABLE VI: Amount of Understanding in Java SessionsVarying 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 ofdevelopment activities for all the recorded sessions in thecase of DFLOW and PLOG. For each development activity,we calculate the average of the percentage of time spent bydevelopers in each activity.
As we pointed out in the previous section, program under-standing is a dominant activity, as it accounts, on average, from54 to 94% of the total development time in each session. Thevalues are similar despite the profound difference in the waydevelopers produce Java and Smalltalk code. This suggests thatthe role of program understanding has been underestimatedby previous research. Decades ago researchers claimed that
understanding a program absorbs about 50% of the time ofdevelopers [3], [6], [24], while we find that the percentage islikely to be substantially higher.
Fig. 14 depicts the distribution of the relative importance ofthe activities using boxplots. Although there can be substantialdifferences between individual sessions and developers, whatemerges is a clear pre-dominance of program understandingactivities.
NAV EDI INS UND
% o
f tim
e sp
ent
10%
20%
30%
40%
50%
60%
70%
80%
90%SmalltalkJava
Fig. 14: Development Activities for All Sessions.Note: inspect (INS) applies only to Smalltalk sessions.
Role of session types. While in interaction historiescollected by DFLOW and PLOG program understanding isdominant in both cases, there is difference ranging from2% to 6% depending on the estimates of parameters, asshown in Table VII. On all the Smalltalk sessions, programunderstanding ranges from 54 to 88% while on Java sessionsthese bounds range from 56 to 94%. A possible interpretationof this difference can be found in the fact that PLOG sessionswere all enhancement sessions, while the sessions we collectedwith DFLOW are of different type and include, for example,bug-fixing and refactoring sessions.
Table VII shows the different distribution of the duration ofdevelopment activities per session type in the case of Smalltalksessions collected by DFLOW.
The role of understanding is still dominant in all sessiontypes: However, there is some significant difference in thedistribution of editing and navigation activities. Refactoringsessions, 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 besignificantly different between session types, there are somedifferences on the distribution of other activities. Enhancementand Bug Fixing sessions spend significant time on inspection(around 10%), while Enhancement and Refactoring sessionsspend more time on editing.
Developer Diversity. Table VIII lists the relative impor-tance of the activities for each Smalltalk developer. We can
Understanding 56% to 94%
BOTTOM
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
BOTTOM
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
Program understanding does not appear to be significantly different
between session types
BOTTOM
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
Refactoring sessions
make minimal use of
inspection activities
BOTTOM
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
Enhancement and Bug-Fixing make more use of
inspection activities
BOTTOM
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
Enhancement and Refactoring spend more time in
editing activities
BOTTOM
Developer Diversity
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
BOTTOM
Developer Diversity
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
SD3 is aggressive prefers to navigate and edit than understand
BOTTOM
Developer Diversity
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
SD2 is cautious equally distributed editing and inspection
BOTTOM
Developer Diversity
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
SD1 and 3 are the pros high editing and low understanding values
BOTTOM
Developer Diversity
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
JD8 is a thinker fast but with high understanding and low editing
BOTTOM
Developer Diversity
JD13 is super cautious high amount of editing, with high navigation time
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: SmalltalkEnhancement 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: JavaAll 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 morenavigation and editing, and less understanding. In essence hecould be characterized as more “aggressive” towards the codebase. Similarly, SD2 spends almost the same amount of time onnavigation, but distributes almost equally the remaining timebetween 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 highunderstanding values. In essence they reflect more on the codebefore they change it. SD3 however is making very little use ofinspecting, which is a preferred activity of skilled developers.SD1 and SD3 have the highest editing and the among thelowest understanding values. In essence, they seem to be atease with the code base and confidently change it without theneed to rely on extensive navigation.
Table IX lists the relative importance of the activitiesfor each Java developer. Again we can infer some developer“profiles”. For example JD8 took a short time to implement thechanges, but has high understanding and low editing (refer toTable IV for durations). JD2 and JD14 have a similar behaviorbut they took more time to implement the task. We can say thatJD8 is someone who thinks deeply about what to do, and thendoes it quickly and firm. JD13 is at the opposite end of thespectrum: The high amount of editing time, with relatively highnavigation time, denotes a developer who meanders heavily inthe code base until she slowly implements the changes.
Reflections. The importance of program understanding hasbeen underestimated. This finding is all the more relevant asit holds across diverse IDEs and programming languages. Webelieve this to be an important insight that corroborates theimportance of research in approaches and tools that deal withprogram comprehension and reverse 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 ofevents in the IDE with their timestamp. We devised a model toestimate the duration of activities: A threat to validity for ourresults is the accuracy of this model, that may not preciselycapture, 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 andcorresponding events. However, in Section IV-C we describedhow even varying the degrees of freedoms the essence of thispaper remains true.
BOTTOM
Program understanding is considered one of the
most time consuming activities of software development.
BOTTOM
Program understanding is considered one of the
most time consuming activities of software development.
IPSE DIXIT
BOTTOM
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
BOTTOM
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
% o
f tim
e sp
ent
10%
20%
30%
40%
50%
60%
70%
80%
90%SmalltalkJava
BOTTOM
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
% o
f tim
e sp
ent
10%
20%
30%
40%
50%
60%
70%
80%
90%SmalltalkJava
Significantly underestimated by previous research
BOTTOM
EI
∆Ii ∆Ei∆Ui
to a fixed average duration (�N ). Fig. 5 shows the updatedinteraction history after estimating navigation activities.
N N E N I N
t1 t2 t3 t4 t5 t6
Fig. 5: History with Navigation Activities
Editing Activities. For an editing activity Ei, DFLOWrecords an event when the user is done with the editing: Wedenote this time as end(Ei). We assume that the duration ofthe edit (�Ei) is a fraction (PE) of the time interval betweenthe end time of the previous activity end(prev(Ei)) and theend time of Ei.
�Ei = PE ⇥ (end(Ei)� end(prev(Ei))) (1)
Fig. 6 shows the updated interaction history assigning aduration to editing events.
N N E N I N
t1 t2 t3 t4 t5 t6
Fig. 6: History with Navigation & Editing
Inspection Activities. For an inspection activity Ii,DFLOW records an event at time start(Ii), that is, whenthe user starts the activity. We assume that the duration ofthe inspection (�Ii) is a fraction (PI ) of the time intervalbetween start(Ii) and the start time of the following eventstart(next(Ii)).
�Ii = PI ⇥ (start(next(Ii))� start(Ii)) (2)
Fig. 6 shows the updated interaction history assigning aduration to inspection events.
N N E N I N
t1 t2 t3 t4 t5 t6
Fig. 7: History with Navigation, Editing, and Inspecting Ac-tivities
Understanding Activities. Understanding activities areall the gaps between the other three types of developmentactivities. We consider that everything that is not navigation,inspection, and editing is program understanding. For thisreason, we first assigned duration to the other types of events,and we identify every remaining gap in the interaction historyas understanding activities. Fig. 8 shows the final interactionhistory, with all the activities.
Interaction between Inspection and Editing. Our esti-mation model uses time intervals between events to estimate
N N E N I N
t1 t2 t3 t4 t5 t6understanding
Fig. 8: A DFLOW History with all Activities
the duration of the corresponding activities. There are 3 typesof events, thus nine possible combinations which lead to thesame number of possible intervals: NN, NI, NE, EN, EI, EE,IN, II, and IE. The last case – that is, an inspection eventfollowed by an editing event – is relatively more complex,because the duration of the inspection activity depends on theduration of the editing activity, which in turn depends on theduration of the inspection. Fig. 9 illustrates the situation.
EI
∆Ii ∆Ei∆UiFig. 9: The Case of Editing after Inspection
According to our estimation model, the duration of theinspection activity �Ii and the duration of the editing activity�Ei are as follows:
�Ii = PI ⇥ (start(next(Ii))� start(Ii)) (3)
�Ei = PE ⇥ (end(Ei)� end(prev(Ei))) (4)
To solve Equation (3) we should know the start time ofnext(Ii), that is Ei. We cannot know this before solvingEquation (4).
In turn, to determine �Ei we need the end time ofprev(Ei), that is Ii, and we cannot know this a priori. Tosimplify, we can rewrite Equations (3) and (4) as follows:
⇢�Ii = PI ⇥ (���Ei)�Ei = PE ⇥ (���Ii)
(5)
where � = �Ii + �Ui + �Ei. �Ii depends on �Ei,and vice-versa. We want to find two percentages, P
IEI and
P
IEE , such that �Ei and �Ii can be computed from the whole
interval �:
⇢�Ii = P
IEI ⇥�
�Ei = P
IEE ⇥�
By definition, these two fractions are:
⇢P
IEI = �Ii
�
P
IEE = �Ei
�
to a fixed average duration (�N ). Fig. 5 shows the updatedinteraction history after estimating navigation activities.
N N E N I N
t1 t2 t3 t4 t5 t6
Fig. 5: History with Navigation Activities
Editing Activities. For an editing activity Ei, DFLOWrecords an event when the user is done with the editing: Wedenote this time as end(Ei). We assume that the duration ofthe edit (�Ei) is a fraction (PE) of the time interval betweenthe end time of the previous activity end(prev(Ei)) and theend time of Ei.
�Ei = PE ⇥ (end(Ei)� end(prev(Ei))) (1)
Fig. 6 shows the updated interaction history assigning aduration to editing events.
N N E N I N
t1 t2 t3 t4 t5 t6
Fig. 6: History with Navigation & Editing
Inspection Activities. For an inspection activity Ii,DFLOW records an event at time start(Ii), that is, whenthe user starts the activity. We assume that the duration ofthe inspection (�Ii) is a fraction (PI ) of the time intervalbetween start(Ii) and the start time of the following eventstart(next(Ii)).
�Ii = PI ⇥ (start(next(Ii))� start(Ii)) (2)
Fig. 6 shows the updated interaction history assigning aduration to inspection events.
N N E N I N
t1 t2 t3 t4 t5 t6
Fig. 7: History with Navigation, Editing, and Inspecting Ac-tivities
Understanding Activities. Understanding activities areall the gaps between the other three types of developmentactivities. We consider that everything that is not navigation,inspection, and editing is program understanding. For thisreason, we first assigned duration to the other types of events,and we identify every remaining gap in the interaction historyas understanding activities. Fig. 8 shows the final interactionhistory, with all the activities.
Interaction between Inspection and Editing. Our esti-mation model uses time intervals between events to estimate
N N E N I N
t1 t2 t3 t4 t5 t6understanding
Fig. 8: A DFLOW History with all Activities
the duration of the corresponding activities. There are 3 typesof events, thus nine possible combinations which lead to thesame number of possible intervals: NN, NI, NE, EN, EI, EE,IN, II, and IE. The last case – that is, an inspection eventfollowed by an editing event – is relatively more complex,because the duration of the inspection activity depends on theduration of the editing activity, which in turn depends on theduration of the inspection. Fig. 9 illustrates the situation.
EI
∆Ii ∆Ei∆UiFig. 9: The Case of Editing after Inspection
According to our estimation model, the duration of theinspection activity �Ii and the duration of the editing activity�Ei are as follows:
�Ii = PI ⇥ (start(next(Ii))� start(Ii)) (3)
�Ei = PE ⇥ (end(Ei)� end(prev(Ei))) (4)
To solve Equation (3) we should know the start time ofnext(Ii), that is Ei. We cannot know this before solvingEquation (4).
In turn, to determine �Ei we need the end time ofprev(Ei), that is Ii, and we cannot know this a priori. Tosimplify, we can rewrite Equations (3) and (4) as follows:
⇢�Ii = PI ⇥ (���Ei)�Ei = PE ⇥ (���Ii)
(5)
where � = �Ii + �Ui + �Ei. �Ii depends on �Ei,and vice-versa. We want to find two percentages, P
IEI and
P
IEE , such that �Ei and �Ii can be computed from the whole
interval �:
⇢�Ii = P
IEI ⇥�
�Ei = P
IEE ⇥�
By definition, these two fractions are:
⇢P
IEI = �Ii
�
P
IEE = �Ei
�
By dividing Equations (5) by � we obtain:
⇢P
IEI = PI ⇥ (1� P
IEE )
P
IEE = PE ⇥ (1� P
IEI )
(6)
Solving Equations (6) we obtain:
(P
IEI = PI�PI⇥PE
1�PI⇥PE
P
IEE = PE�PI⇥PE
1�PI⇥PE
To summarize, the three time intervals depicted in Fig. 9,can be computed in function of the whole interval � asfollows:
8<
:
�Ii = P
IEI ⇥�
�Ei = P
IEE ⇥�
�Ui = ���Ii ��Ei
Reflections. We do not have “perfect” interaction data. Forexample, during an editing activity we do not know exactlywhat the developer is doing, only that she is editing. Ourfuture work in this context is to track interactions at finestlevel possible, i.e., the keystroke level for editing operations,and mouse events (including scrolling, etc.) for navigation andinspection activities.
B. Estimation Model for Plog
PLOG interaction histories are composed of just two typesof recorded events: NR and NW . The former represents purenavigation events, while the latter represents a navigationevent that follows an editing activity. Fig. 10 shows a PLOGinteraction history.
NR
t1 t2 t3 t4 t5 t6
NR NW NR NR NW
Fig. 10: A Sample PLOG Interaction History
Since PLOG interaction histories lack inspection events,and editing events are implicit, to estimate the duration ofdeveloper activities we use a slightly different model withrespect to the case of DFLOW histories.
Navigation Activities. Events of type NR denote purenavigation. As in the DFLOW case, we approximate thistime to a fixed duration (�N ). Fig. 11 shows the updatedinteraction history with explicit pure navigation activities offixed duration.
N
t1 t2 t3 t4 t5 t6
N NW N N NW
Fig. 11: History with Navigation Activities
Editing Activities. Editing activities are implicit: PLOGrecords an event of type NW at time t(NW ) when the userperforms a navigation after editing. The editing happened inan unknown moment in the time interval between the end ofthe previous event, denoted as end(prev(NW )) and t(NW ).To make the editing activity Ei explicit, we place it in themiddle of the interval and with a duration (�Ei) that is halfthe duration of that interval. The NW event is then convertedto a navigation activity with a fixed duration �N .
�Ei = PE ⇥ (t(NW )� end(prev(Ei))) (7)
Fig. 12 shows the updated interaction history assigning aduration to both navigation and editing activities.
N
t1 t2 t3 t4 t5 t6
N N N N NE E
Fig. 12: History with Navigation and Editing Activities
Understanding Activities. We assign every remaining gapin the interaction history to understanding activities. Fig. 13shows the final shape of the PLOG interaction history.
N
t1 t2 t3 t4 t5 t6understanding
N N N N NE E
Fig. 13: A PLOG History with all Activities
Reflections. Again, this interaction data is not perfect.Since we do not have keystroke-level events, we must approx-imate the editing activities. Is it possible that if a user open anew file and spends one minute in that file, 59 seconds couldbe spent on doing nothing. We believe our approximation ishowever reasonable, as it does not assign the editing activityan exaggerated weight. Future work in this context is therecording of keystroke-level events, as done for example inECLIPSEEYE [18].
C. Discussion: �N , PE , and PI
The estimation model we propose to quantify developmentactivities has three degrees of freedom: i) �N , that repre-sents the conventional average duration of navigation events;ii) PE , that models the average percentage of editing activitiesbetween an edit event and the preceeding event; and iii) PI ,which similarly represents the percentage of inspection activ-ities in Smalltalk interaction histories. We intend navigationas the “mechanics of navigation”, i.e., the clicks in the userinterface. Thus, we conventionally assume that each navigationevent lasts, on average, 0.5 seconds. We fix �N to 0.5s.
Quantifying the right amount of PE and PI is out of thescope of this paper, since it would require more fine-grainedevents to be collected (e.g., keystroke events). Instead, we
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.