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

Post on 22-Jan-2018

610 views 1 download

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

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 gail.murphy@tasktop.com 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.