What is Software Development Productivity Anyway?
-
Upload
murphygc -
Category
Technology
-
view
968 -
download
0
description
Transcript of 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
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