Gail C. Murphy
Tasktop Technologies
Univ. of British Columbia
@gail_murphy @tasktop
Software Developer Productivity:
What we Know and How to Make it Better
Outline
Observation

Perspective
Activity
G
© Tasktop 2016
Ways Forward
Perspective
© Tasktop 2016
Perspective
When do developers perceive themselves to be
productive and unproductive?
Thomas Fritz
U. Zürich
André Meyer
U. Zürich
Tom Zimmermann
Microsoft
Research
Joint work [FSE 2014] with:
SurveyPerspective
28 questions
379 responses
93% developers
9.2 avg years of
experience
53%
complete tasks
or goals
50%
have no/few
interruptions or
distractions
22%
have no meetings
20%
have clear goals
I have a productive day when I…Perspective
Perspective
Productive and Unproductive Activities
0
20
40
60
80
Coding Meetings Planning Doc
0
15
30
45
60
75
Meetings Email Unplanned Coding
Productive Unproductive
# Work Items
Time on Work Items
Time on Code Reviews
Time Writing Code
# Code Reviews
# Code Elements Changed
# Lines of Code Changed
# Emails Written
Perspective
Measuring Productivity
Take-awayPerspective
Developers want to measure productivity;
each developer wants to measure differently.
27%
Activities
18%
Achievements
17%
Value
16%
Time per task ratio
Observation
© Tasktop 2016
Observation
Survey left us with many questions.
What are tasks? What are context switches?
What kind of email is processed? …
Thomas Fritz
U. Zürich
André Meyer
U. Zürich
Tom Zimmermann
Microsoft
Research
Joint work [FSE 2014] with:
Observation
Theme 1: TasksObservation
4 (±2.3) tasks per 4 hours
13.3 (±8.5) task switches per hour
6.2 (±3.3) min spent each time on task
tasks ≠ work items
47 (± 19.8) activities per hour
1.6 (± .8) min spent on each activity
14.8 (± 3.9) programs over 4 hours
Theme 2: ActivitiesObservation
Code 33%
Debug 4%
VC 2%
Test App 12%
Review 2%
DevOther 4%
Activities (Development)Observation
Email 5%
Planning 8%
Doc 3%
Meet Planned 5%
Meet Informal 13%
Browsing 4%
Activities (Other)Observation
Context switches lower productivity
What is a context switch?
Theme 3: Work FlowObservation
A context switch is when:
“When I have to stop thinking about one thing and start
thinking about something else”
Theme 3: Work FlowObservation
The longer the switch the more expensive…
“[To] stop and work on a different task is a more
costly context switch that writing a quick email”
The more focused on a task the more expensive…
“Depends on where I was, if it was a critical section, it is
really hard to get back to focus on that task, even if it was for
like 30 seconds”
Theme 3: Work FlowObservation
Mitigate context switches (e.g., close email, schedule a meeting
with yourself, work elsewhere)
Need for automatic recognition of context switches
Take-awayObservation
Activity
Thomas Fritz
U. Zürich
André Meyer
U. Zürich
Tom Zimmermann
Microsoft
Research
Joint work with:
Laura Barton
UBC
But what do developers really do all day…
and when do they think they are productive?
Activity
Activity
Monitoring Study
Code 21%
Debug .4%
VC .7%
Test App
Review 1%
DevOther
ActivitiesActivity
Email 14%
Planning 5%
Doc 7%
Meet Planned 6%
Meet Informal 3%
Browsing 11%
Activities (Other)Activity
Productive PeriodsActivity
Development work is highly fragmented
(.3 to 2 min per activity)
Developers perceived productivity follows habitual patterns
Some early take-awaysActivity
Activity
Individual
Team & Organization
Ways Forward
Set goals
Organize workday to minimize interruptions
Manage distractions
IndividualWays Forward
Teams & Organization
Learn and use effective meeting practices
Use toolchains that support context and flow
Ways Forward
© Tasktop 2016
Access your task tracker
from your IDE
Know where your time
goes with automated
time tracking
See only the
interesting code
Ways Forward
© Tasktop 2016
Ways Forward
SCM CI CD APM
RM Agile Dev QAPPM SecITSM
Project Requirement User Story Defect Ticket
BuildChange Set Release
Vulnerability
Failure Alert
Automated
Test
DevOps
Scaling Agile
Answer questions about your software development processes:
• Which teams are producing the most severe defects?
• Why are those defects happening?
• How quickly are defects fixed?
• What types of features result in the most customer complaints?
• …
Activity
Perspective
Individual measurement
and retrospection
Ways Forward
Individual, team,
organization
Activity
Habitual productivity
patterns
Observation
Mitigate context
switches
Perspective
Activity
Ways
Observation @gail_murphy
@tasktop
Software Developer Productivity:
What we Know and How to Make it Better
© Tasktop 2016
Contact
You can reach me via gail.murphy@tasktop.com or @gail_murphy
For more information on Tasktop products, see www.tasktop.com
[FSE 2014] André N. Meyer, Thomas Fritz, Gail C. Murphy and Thomas Zimmermann. Software
Developers’ Perceptions of Productivity. In Proc. of 22nd ACM SIGSOFT International
Symposium on the Foundations of Software Engineering, ACM, 2014.
References
Acknowledgements
Thanks to the many participants in our studies. This work was funded in part by NSERC, in part
by ABB and has been motivated through conversations with many colleagues at Tasktop.

Software Developer Productivity: What we know and how to make it better

  • 1.
    Gail C. Murphy TasktopTechnologies Univ. of British Columbia @gail_murphy @tasktop Software Developer Productivity: What we Know and How to Make it Better
  • 2.
  • 3.
  • 4.
  • 5.
    © Tasktop 2016 Perspective Whendo developers perceive themselves to be productive and unproductive? Thomas Fritz U. Zürich André Meyer U. Zürich Tom Zimmermann Microsoft Research Joint work [FSE 2014] with:
  • 6.
    SurveyPerspective 28 questions 379 responses 93%developers 9.2 avg years of experience
  • 7.
    53% complete tasks or goals 50% haveno/few interruptions or distractions 22% have no meetings 20% have clear goals I have a productive day when I…Perspective
  • 8.
    Perspective Productive and UnproductiveActivities 0 20 40 60 80 Coding Meetings Planning Doc 0 15 30 45 60 75 Meetings Email Unplanned Coding Productive Unproductive
  • 9.
    # Work Items Timeon Work Items Time on Code Reviews Time Writing Code # Code Reviews # Code Elements Changed # Lines of Code Changed # Emails Written Perspective Measuring Productivity
  • 10.
    Take-awayPerspective Developers want tomeasure productivity; each developer wants to measure differently. 27% Activities 18% Achievements 17% Value 16% Time per task ratio
  • 11.
  • 12.
    © Tasktop 2016 Observation Surveyleft us with many questions. What are tasks? What are context switches? What kind of email is processed? … Thomas Fritz U. Zürich André Meyer U. Zürich Tom Zimmermann Microsoft Research Joint work [FSE 2014] with:
  • 13.
  • 14.
    Theme 1: TasksObservation 4(±2.3) tasks per 4 hours 13.3 (±8.5) task switches per hour 6.2 (±3.3) min spent each time on task tasks ≠ work items
  • 15.
    47 (± 19.8)activities per hour 1.6 (± .8) min spent on each activity 14.8 (± 3.9) programs over 4 hours Theme 2: ActivitiesObservation
  • 16.
    Code 33% Debug 4% VC2% Test App 12% Review 2% DevOther 4% Activities (Development)Observation
  • 17.
    Email 5% Planning 8% Doc3% Meet Planned 5% Meet Informal 13% Browsing 4% Activities (Other)Observation
  • 18.
    Context switches lowerproductivity What is a context switch? Theme 3: Work FlowObservation
  • 19.
    A context switchis when: “When I have to stop thinking about one thing and start thinking about something else” Theme 3: Work FlowObservation
  • 20.
    The longer theswitch the more expensive… “[To] stop and work on a different task is a more costly context switch that writing a quick email” The more focused on a task the more expensive… “Depends on where I was, if it was a critical section, it is really hard to get back to focus on that task, even if it was for like 30 seconds” Theme 3: Work FlowObservation
  • 21.
    Mitigate context switches(e.g., close email, schedule a meeting with yourself, work elsewhere) Need for automatic recognition of context switches Take-awayObservation
  • 22.
  • 23.
    Thomas Fritz U. Zürich AndréMeyer U. Zürich Tom Zimmermann Microsoft Research Joint work with: Laura Barton UBC But what do developers really do all day… and when do they think they are productive? Activity
  • 24.
  • 25.
    Code 21% Debug .4% VC.7% Test App Review 1% DevOther ActivitiesActivity
  • 26.
    Email 14% Planning 5% Doc7% Meet Planned 6% Meet Informal 3% Browsing 11% Activities (Other)Activity
  • 27.
  • 28.
    Development work ishighly fragmented (.3 to 2 min per activity) Developers perceived productivity follows habitual patterns Some early take-awaysActivity
  • 29.
  • 30.
  • 31.
    Set goals Organize workdayto minimize interruptions Manage distractions IndividualWays Forward
  • 32.
    Teams & Organization Learnand use effective meeting practices Use toolchains that support context and flow Ways Forward
  • 33.
    © Tasktop 2016 Accessyour task tracker from your IDE Know where your time goes with automated time tracking See only the interesting code Ways Forward
  • 34.
    © Tasktop 2016 WaysForward SCM CI CD APM RM Agile Dev QAPPM SecITSM Project Requirement User Story Defect Ticket BuildChange Set Release Vulnerability Failure Alert Automated Test DevOps Scaling Agile
  • 35.
    Answer questions aboutyour software development processes: • Which teams are producing the most severe defects? • Why are those defects happening? • How quickly are defects fixed? • What types of features result in the most customer complaints? • …
  • 36.
  • 37.
    Perspective Individual measurement and retrospection WaysForward Individual, team, organization Activity Habitual productivity patterns Observation Mitigate context switches Perspective Activity Ways Observation @gail_murphy @tasktop Software Developer Productivity: What we Know and How to Make it Better
  • 38.
    © Tasktop 2016 Contact Youcan reach me via gail.murphy@tasktop.com or @gail_murphy For more information on Tasktop products, see www.tasktop.com [FSE 2014] André N. Meyer, Thomas Fritz, Gail C. Murphy and Thomas Zimmermann. Software Developers’ Perceptions of Productivity. In Proc. of 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering, ACM, 2014. References Acknowledgements Thanks to the many participants in our studies. This work was funded in part by NSERC, in part by ABB and has been motivated through conversations with many colleagues at Tasktop.