Quantifying Program Comprehension with Interaction Data [QSIC2014]

51
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

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

IDEs

BOTTOM

IDEs

Read

BOTTOM

IDEs

ReadWrite

BOTTOM

IDEs

Read

Understand

Write

BOTTOM

s

Understand

one of the

most challenging tasks

absorbs the

50% of the time

BOTTOM

ReadWrite

s

developer spend more time

reading than writing

navigation occupies a significant amount of time

vs.

BOTTOM

s

How much time is effectively spent on comprehension?

BOTTOM

s

?How much time is effectively spent on comprehension

50%80%

60%

BOTTOM

s

?How much time is effectively spent on comprehension

50%80%

60%

BOTTOM

s

?How much time is effectively spent on comprehension

50%80%

60%

BOTTOM

Interaction data

BOTTOM

Interaction data

IDEIDE

BOTTOM

Interaction data

IDEIDE

Navigation

BOTTOM

Interaction data

IDEIDE

Navigation

Edit

BOTTOM

Interaction data

IDE

Profiler

IDE

ProfilerNavigation

InspectionEdit

BOTTOM

IDE

Profiler

IDE

Profiler

Java

PLOG

Eclipse

SmallTalk

DFLOW

Pharo

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

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.