software developer productivity: what we know and how to make it better

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

Upload: tasktop

Post on 22-Jan-2018

610 views

Category:

Software


1 download

TRANSCRIPT

Page 1: 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

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

Outline

Observation\

Perspective

ActivityG

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

© Tasktop 2016

Ways Forward

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

Perspective

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

© 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:

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

SurveyPerspective

28 questions

379 responses

93% developers

9.2 avg years ofexperience

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

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

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

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

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

# 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

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

Take-awayPerspective

Developers want to measure productivity;

each developer wants to measure differently.

27%

Activities

18%

Achievements

17%

Value

16%

Time per task ratio

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

Observation

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

© 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:

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

Observation

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

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

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

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

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

Code 33%

Debug 4%

VC 2%

Test App 12%

Review 2%

DevOther 4%

Activities (Development)Observation

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

Email 5%

Planning 8%

Doc 3%

Meet Planned 5%

Meet Informal 13%

Browsing 4%

Activities (Other)Observation

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

Context switches lower productivity

What is a context switch?

Theme 3: Work FlowObservation

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

A context switch is when:

“When I have to stop thinking about one thing and start thinking about something else”

Theme 3: Work FlowObservation

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

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

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

Mitigate context switches (e.g., close email, schedule a meeting with yourself, work elsewhere)

Need for automatic recognition of context switches

Take-awayObservation

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

Activity

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

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

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

Activity Monitoring Study

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

Code 21%

Debug .4%

VC .7%

Test App

Review 1%

DevOther

ActivitiesActivity

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

Email 14%

Planning 5%

Doc 7%

Meet Planned 6%

Meet Informal 3%

Browsing 11%

Activities (Other)Activity

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

Productive PeriodsActivity

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

Development work is highly fragmented

(.3 to 2 min per activity)

Developers perceived productivity follows habitual patterns

Some early take-awaysActivity

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

Activity

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

Individual

Team & Organization

Ways Forward

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

Set goals

Organize workday to minimize interruptions

Manage distractions

IndividualWays Forward

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

Teams & Organization

Learn and use effective meeting practices

Use toolchains that support context and flow

Ways Forward

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

© Tasktop 2016

Access your task tracker from your IDE

Know where your timegoes with automatedtime tracking

See only theinteresting code

Ways Forward

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

© 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

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

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?

• …

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

Activity

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

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

Page 38: 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.