what is software development productivity anyway?

37
What is software development productivity, anyway? Gail C. Murphy University of British Columbia Tasktop Technologies Incorporated @gail_murphy Slides with non-shareable images are marked Presented at MSR 2013 at ICSE 2013

Upload: murphygc

Post on 10-May-2015

967 views

Category:

Technology


0 download

DESCRIPTION

Keynote at MSR 2013

TRANSCRIPT

Page 1: What is Software Development Productivity Anyway?

What is software development productivity,

anyway?

Gail C. Murphy

University of British ColumbiaTasktop Technologies Incorporated

@gail_murphySlides with non-shareable images are marked Presented at MSR 2013 at ICSE 2013

Page 2: What is Software Development Productivity Anyway?

why care?“software is

eating the world” Marc Andreesen

Image may not be reused

Page 3: What is Software Development Productivity Anyway?

explore the idea

of software developmentproductivity

Page 4: What is Software Development Productivity Anyway?

gather your ideas

you have index card + pencil

on 3 separate lines

write a word or phrase

that captures software development productivity to you

pass to a volunteer

Page 5: What is Software Development Productivity Anyway?

this talk is going to be a journey not going to produce an answer but hopefully will generate ideas

Page 6: What is Software Development Productivity Anyway?

productivity manufacturing software

Image may not be reused

Page 7: What is Software Development Productivity Anyway?

productivity

outputinput

Page 8: What is Software Development Productivity Anyway?

workers as cogs

Page 9: What is Software Development Productivity Anyway?

workers begin to be empowered

Henry Ford1863-1947

Page 10: What is Software Development Productivity Anyway?

unlimited potential in workers

“Why is it that productivity

increases as quality improves? Less

rework. There is no better answer”

Page 11: What is Software Development Productivity Anyway?

further worker empowerment

Toyota Production System:lean manufacturing

Page 12: What is Software Development Productivity Anyway?

productivity in manufacturing

workers as cogs

worker empowermentworkers key to productivity improvement

Page 13: What is Software Development Productivity Anyway?

what aboutproductivity in

software development?

Page 14: What is Software Development Productivity Anyway?

prediction of year most problems could be “programmed” in < 1 hour with oneday of training 1970s: output

measured in handwritten

code

Boehm, “Software and IsImpact: A Quantitative Assessment”

Page 15: What is Software Development Productivity Anyway?

1980s: output measured in functionality

Page 16: What is Software Development Productivity Anyway?

essence over accidentalBrooks, “No Silver Bullet: Essence and Accident in Software Engineering”

Image may not be reused

Page 17: What is Software Development Productivity Anyway?

focus on quality and productivity

will followCapers Jones

Image may not be reused

Page 18: What is Software Development Productivity Anyway?

productivity in software development

????

output = lines of code? functionality?does productivity follow quality?

Page 19: What is Software Development Productivity Anyway?

software productivity todaylean software development lean start-up

Image may not be reused

Page 20: What is Software Development Productivity Anyway?

economy.com:-0.9% growth for

software from 1998 to 2003

no consensus on whatsoftware productivity is

consensus software is more complex

Page 21: What is Software Development Productivity Anyway?

lean software development

• eliminate waste

• amplify learning

• decide as late as possible

• deliver as late as possible

• empower the team

• build integrity in

• see the whole

M. and T. Poppendieck, Lean Software Development

Page 22: What is Software Development Productivity Anyway?

lean start-up

• validated learning

• build-measure-learn

• minimum viable product

• continuous deployment

• split testing

E. Ries, The Lean Startup

Page 23: What is Software Development Productivity Anyway?

reflecting on individual productivity

Image may not be reused

Page 24: What is Software Development Productivity Anyway?

manufacturing software development/start-ups

individual empowerment amplify/validated learning

how can we enable the individual to reflect upon:

validated learningactivities performed

Page 25: What is Software Development Productivity Anyway?

validated learningactivities performed

individualsoftware

developmentproductivity

Page 26: What is Software Development Productivity Anyway?

how many stories did I work on (last week, last month) that are in release?

maybe extract from issue system?

maybe trace code in release to commits adding that code up issue chain

extract/summarize story for consumption

validated learning

Page 27: What is Software Development Productivity Anyway?

mock-upreleased user stories:

As a CONNECT adopter sending Direct messages, I want to receive failure messages

...

completed, not released:

As a CONNECT adopter sending Direct messages, I need the ability to provide a positive delivery notification ...

29%

71%

Released Completed

Page 28: What is Software Development Productivity Anyway?

over the last six months, how many user stories I worked on survived A/B testing?

extract last six months of stories from issue repository

correlate to A/B testing results

validated learning

Page 29: What is Software Development Productivity Anyway?

mock-upe.g., tested user stories:

As a CONNECT adopter, I find it annoying that CONNECT urls are inconsistent

e.g., A/B survivors:

As a CONNECT adopter I want intallation instructions...

0 5 10 15 20

6 mo. ago

5 mo. ago

4 mo. ago

3 mo. ago

2 mo. ago

1 mo. ago

Tested Survived

Page 30: What is Software Development Productivity Anyway?

validated learningactivities performed

individualsoftware

developmentproductivity

Page 31: What is Software Development Productivity Anyway?

activities performed

over the period of validated learning...

how many commits did I make?

how many defects were filed for my code?

how many times was the story rewritten?

what was my ratio of edits to selection events?

Page 32: What is Software Development Productivity Anyway?

mock-up

0

25

50

75

100

6 mo. ago4 mo. ago

2 mo. ago

Commits Defects

0 5 10 15 20

6 mo. ago

5 mo. ago

4 mo. ago

3 mo. ago

2 mo. ago

1 mo. ago

Tested Survived

Page 33: What is Software Development Productivity Anyway?

what if it was simple...

to gather integrated application lifecycle data

to summarize and analyze trends in that data

to reflect upon when I as an individual am

learning...

creating value...

Page 34: What is Software Development Productivity Anyway?

validated learningactivities performed

individualsoftware

developmentproductivity

just one comparative approach with flaws

Page 35: What is Software Development Productivity Anyway?

what did you thinksoftware development

productivity is,anyway?

Page 36: What is Software Development Productivity Anyway?

crowd-sourced at MSR 2013

Page 37: What is Software Development Productivity Anyway?

software is eating the world

empower individuals to increaseproductivity

reflect on lifecycle and activity data to improve individual productivity

@gail_murphyImages may not be reused