software developer productivity: what we know and how to make it better
TRANSCRIPT
Gail C. MurphyTasktop TechnologiesUniv. of British Columbia
@gail_murphy @tasktop
Software Developer Productivity:What we Know and How to Make it Better
Outline
Observation\
Perspective
ActivityG
© Tasktop 2016
Ways Forward
Perspective
© Tasktop 2016
Perspective
When do developers perceive themselves to beproductive and unproductive?
Thomas FritzU. Zürich
André MeyerU. Zürich
Tom ZimmermannMicrosoftResearch
Joint work [FSE 2014] with:
SurveyPerspective
28 questions
379 responses
93% developers
9.2 avg years ofexperience
53%
complete tasks or goals
50%
have no/fewinterruptions ordistractions
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 ItemsTime on Work Items
Time on Code ReviewsTime 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 FritzU. Zürich
André MeyerU. Zürich
Tom ZimmermannMicrosoftResearch
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 FritzU. Zürich
André MeyerU. Zürich
Tom ZimmermannMicrosoftResearch
Joint work with:
Laura BartonUBC
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 timegoes with automatedtime tracking
See only theinteresting 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
ContactYou can reach me via [email protected] or @gail_murphyFor 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 InternationalSymposium on the Foundations of Software Engineering, ACM, 2014.
References
AcknowledgementsThanks to the many participants in our studies. This work was funded in part by NSERC, in partby ABB and has been motivated through conversations with many colleagues at Tasktop.