what is software development productivity anyway?

Post on 10-May-2015

969 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Keynote at MSR 2013

TRANSCRIPT

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

why care?“software is

eating the world” Marc Andreesen

Image may not be reused

explore the idea

of software developmentproductivity

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

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

productivity manufacturing software

Image may not be reused

productivity

outputinput

workers as cogs

workers begin to be empowered

Henry Ford1863-1947

unlimited potential in workers

“Why is it that productivity

increases as quality improves? Less

rework. There is no better answer”

further worker empowerment

Toyota Production System:lean manufacturing

productivity in manufacturing

workers as cogs

worker empowermentworkers key to productivity improvement

what aboutproductivity in

software development?

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”

1980s: output measured in functionality

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

Image may not be reused

focus on quality and productivity

will followCapers Jones

Image may not be reused

productivity in software development

????

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

software productivity todaylean software development lean start-up

Image may not be reused

economy.com:-0.9% growth for

software from 1998 to 2003

no consensus on whatsoftware productivity is

consensus software is more complex

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

lean start-up

• validated learning

• build-measure-learn

• minimum viable product

• continuous deployment

• split testing

E. Ries, The Lean Startup

reflecting on individual productivity

Image may not be reused

manufacturing software development/start-ups

individual empowerment amplify/validated learning

how can we enable the individual to reflect upon:

validated learningactivities performed

validated learningactivities performed

individualsoftware

developmentproductivity

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

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

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

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

validated learningactivities performed

individualsoftware

developmentproductivity

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?

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

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

validated learningactivities performed

individualsoftware

developmentproductivity

just one comparative approach with flaws

what did you thinksoftware development

productivity is,anyway?

crowd-sourced at MSR 2013

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

top related