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

Gail Murphy

May 18, 2013
Tweet

Other Decks in Technology

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

    to produce an answer but hopefully will generate ideas
  4. unlimited potential in workers “Why is it that productivity increases

    as quality improves? Less rework. There is no better answer”
  5. 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”
  6. essence over accidental Brooks, “No Silver Bullet: Essence and Accident

    in Software Engineering” Image may not be reused
  7. productivity in software development ?? ?? output = lines of

    code? functionality? does productivity follow quality?
  8. economy.com: -0.9% growth for software from 1998 to 2003 no

    consensus on what software productivity is consensus software is more complex
  9. 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
  10. lean start-up • validated learning • build-measure-learn • minimum viable

    product • continuous deployment • split testing E. Ries, The Lean Startup
  11. manufacturing software development/ start-ups individual empowerment amplify/validated learning how can

    we enable the individual to reflect upon: validated learning activities performed
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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?
  17. 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
  18. 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...
  19. 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