acm productivity-webinar-2016-slides

41
Gail C. Murphy Univ. of British Columbia Tasktop Technologies @gail_murphy Improving Software DevelopmentProductivity Minute-by-Minute

Upload: gail-murphy

Post on 13-Apr-2017

511 views

Category:

Software


0 download

TRANSCRIPT

Gail C. MurphyUniv. of British Columbia

Tasktop Technologies

@gail_murphy

Improving Software DevelopmentProductivity

Minute-by-Minute

2

image

“software is eating the world”

Marc Andreesen

workers as cogs

empower workers

workers as cogs

individual developer’s perspective

on productivity

Photo courtesy of #WOCinTech

6

Outline

Observation\

Perspective!

ActivityG

7Ways Forward"

About

Perspective

9Perspective

When do developers perceive themselves to be productive and unproductive?

Thomas Fritz U. Zürich

André Meyer U. Zürich

Tom Zimmermann MicrosoftResearch

Joint work [FSE 2014] with:

10Perspective

Survey

28 questions379 responses

93% developers

9.2 avg years of experience

11

I have a productive day when I…

Perspective

53%

complete tasks or goals

50%

have no/few interruptions or

distractions

22%

have no meetings

20%

have clear goals

12

Productive and Unproductive Activities

Perspective

0

20

40

60

80

Coding Meetings Planning Doc0

15

30

45

60

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

Measuring ProductivityPerspective

14Perspective

Take-away

Developers want to measure productivity;each developer wants to measure differently.

27%

Activities

18%

Achievements

17%

Value

16%

Time per task ratio

Observation

16Observation

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 ZimmermannMicrosoftResearch

Joint work [FSE 2014] with:

17Observation

18Observation

Theme 1: Tasks

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

19Observation

Theme 2: Activities

47 (± 19.8) activities per hour

1.6 (± .8) min spent on each activity

14.8 (± 3.9) programs over 4 hours

20Observation

Activities (Development)

Code 33%

Debug 4%

VC 2%

Test App 12%

Review 2%

DevOther 4%

21Observation

Activities (Other)

Email 5%

Planning 8%

Doc 3%

Meet Planned 5%

Meet Informal 13%

Browsing 4%

22Observation

Theme 3: Work Flow

Context switches lower productivity

What is a context switch?

23Observation

Theme 3: Work Flow

A context switch is when:

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

24Observation

Theme 3: Work Flow

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”

25Observation

Take-away

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

Need for automatic recognition of context switches

Activity

27Activity

But what do developers really do all day… and when do they think they are productive?

Thomas Fritz U. Zürich

André Meyer U. Zürich

Tom Zimmermann Microsoft Research

Joint work with:

Laura BartonUBC

28Activity

Monitoring Study

♂♂

♂♂♂♂

♂ ♂♂♂

♂♂♂ ♂

♂♂♂♂♂

29Activity

Activities

Code 21%

Debug .4%

VC .7%

Test App

Review 1%

DevOther

30Activity

Activities (Other)

Email 14%

Planning 5%

Doc 7%

Meet Planned 6%

Meet Informal 3%

Browsing 11%

31Activity

Productive Periods

32Activity

Some early take-aways

Development work is highly fragmented (.3 to 2 min per activity)

Developers perceived productivity follows habitual patterns

Activity

34Ways Forward

Individual Team

Organization

35Ways Forward

Individual

Set goals Organize workday to minimize interruptions Manage distractions Research challenges:Flexible, adaptable retrospection (and measurement) tools

36Ways Forward

Team

Use toolchains that support context and flow (e.g., brings issues into dev env’t) Use effective meeting practices Research challenges:Build tools with interfaces that support flow

37Ways Forward

Organization

Streamline communications

• integrate PPM, Agile planning, requirements management, test management and service desk

• synchronize artifacts across the lifecycle

38Ways Forward

Organization

Analyze workflow

• collect data from lifecycle tools • gather metrics and uncover trends across organization e.g., which teams are producing most severe defects? are teams getting project requirements on time?

Activity

40Summary

Improving Software Development Productivity Minute-by-Minute

PerspectiveIndividual

measurement and retrospection

Ways ForwardIndividual, team,

organization

ActivityHabitual productivity patterns

ObservationMitigate context switches

Perspective

Activity

Ways

Observation@gail_murphy

41

ContactYou can reach me via: [email protected], [email protected], @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. Available at: http://research.microsoft.com/apps/pubs/default.aspx?id=228971

References

AcknowledgementsThanks 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.