Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software Development Productivity

Software Development Productivity

"What is Software Development Productivity, Anyway?", Keynote from MSR 2013 at ICSE 2013

A6753a0913b2ffadbc2e646bbb4f4c69?s=128

Gail Murphy

May 18, 2013
Tweet

Transcript

  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. why care? “software is eating the world” Marc Andreesen Image

    may not be reused
  3. explore the idea of software development productivity

  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. this talk is going to be a journey not going

    to produce an answer but hopefully will generate ideas
  6. productivity manufacturing software Image may not be reused

  7. productivity output input

  8. workers as cogs

  9. workers begin to be empowered Henry Ford 1863-1947

  10. unlimited potential in workers “Why is it that productivity increases

    as quality improves? Less rework. There is no better answer”
  11. further worker empowerment Toyota Production System: lean manufacturing

  12. productivity in manufacturing workers as cogs worker empowerment workers key

    to productivity improvement
  13. what about productivity in software development?

  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. 1980s: output measured in functionality

  16. essence over accidental Brooks, “No Silver Bullet: Essence and Accident

    in Software Engineering” Image may not be reused
  17. focus on quality and productivity will follow Capers Jones Image

    may not be reused
  18. productivity in software development ?? ?? output = lines of

    code? functionality? does productivity follow quality?
  19. software productivity today lean software development lean start-up Image may

    not be reused
  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. 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. lean start-up • validated learning • build-measure-learn • minimum viable

    product • continuous deployment • split testing E. Ries, The Lean Startup
  23. reflecting on individual productivity Image may not be reused

  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. validated learning activities performed individual software development productivity ≈

  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. 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. 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. 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. validated learning activities performed individual software development productivity ≈

  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. 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. 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. validated learning activities performed individual software development productivity ≈ just

    one comparative approach with flaws
  35. what did you think software development productivity is, anyway?

  36. crowd-sourced at MSR 2013

  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