What is Software Development Productivity Anyway?

1,139
-1

Published on

Keynote at MSR 2013

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,139
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

What is Software Development Productivity Anyway?

  1. 1. 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
  2. 2. why care? “software is eating the world” Marc Andreesen Image may not be reused
  3. 3. explore the idea of software development productivity
  4. 4. 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
  5. 5. this talk is going to be a journey not going to produce an answer but hopefully will generate ideas
  6. 6. productivity manufacturing software Image may not be reused
  7. 7. productivity output input
  8. 8. workers as cogs
  9. 9. workers begin to be empowered Henry Ford 1863-1947
  10. 10. unlimited potential in workers “Why is it that productivity increases as quality improves? Less rework. There is no better answer”
  11. 11. further worker empowerment Toyota Production System: lean manufacturing
  12. 12. productivity in manufacturing workers as cogs worker empowerment workers key to productivity improvement
  13. 13. what about productivity in software development?
  14. 14. prediction of year most problems could be “programmed” in < 1 hour with one day of training 1970s: output measured in handwritten code Boehm, “Software and Is Impact: A Quantitative Assessment”
  15. 15. 1980s: output measured in functionality
  16. 16. essence over accidental Brooks, “No Silver Bullet: Essence and Accident in Software Engineering” Image may not be reused
  17. 17. focus on quality and productivity will follow Capers Jones Image may not be reused
  18. 18. productivity in software development ?? ?? output = lines of code? functionality? does productivity follow quality?
  19. 19. software productivity today lean software development lean start-up Image may not be reused
  20. 20. economy.com: -0.9% growth for software from 1998 to 2003 no consensus on what software productivity is consensus software is more complex
  21. 21. 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
  22. 22. lean start-up • validated learning • build-measure-learn • minimum viable product • continuous deployment • split testing E. Ries, The Lean Startup
  23. 23. reflecting on individual productivity Image may not be reused
  24. 24. manufacturing software development/ start-ups individual empowerment amplify/validated learning how can we enable the individual to reflect upon: validated learning activities performed
  25. 25. validated learning activities performed individual software development productivity ≈
  26. 26. 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
  27. 27. mock-up released 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
  28. 28. 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
  29. 29. mock-up e.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
  30. 30. validated learning activities performed individual software development productivity ≈
  31. 31. 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?
  32. 32. mock-up 0 25 50 75 100 6 mo. ago 4 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
  33. 33. 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...
  34. 34. validated learning activities performed individual software development productivity ≈ just one comparative approach with flaws
  35. 35. what did you think software development productivity is, anyway?
  36. 36. crowd-sourced at MSR 2013
  37. 37. software is eating the world empower individuals to increase productivity reflect on lifecycle and activity data to improve individual productivity @gail_murphy Images may not be reused
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×