Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Human-centric Software Development Tools

807 views

Published on

What characteristics research into software development tools? This talk explores how research can help understand why some tools are effective and some are not and can help drive to the development of more effective tools for software developers.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Human-centric Software Development Tools

  1. 1. Human-Centric 
 Software Development Tools Gail C. Murphy
 University of British Columbia
 Tasktop Technologies @gail_murphy A more restrictive license has been chosen given use of licensed images.
  2. 2. 2Intro “software is eating the world” Marc Andreessen
  3. 3. 3Intro Lint Non-trivial Refactoring 
 Tools Extract
 Method Refactoring Effective Tools Non-Effective Tools Theories about “Why” Research Human-Centric Software Development Tools
  4. 4. 4Intro Bridging Theory Assessment of Effectiveness Identification of Mismatch Take Aways: It is about the Why Three Characteristics of Software Development Tool Research…
  5. 5. 5Intro Plan Mismatches ! Context " Theories #
  6. 6. 6Intro Assessment $ Summary { Running Example: Eclipse Mylyn L
  7. 7. Mismatches Context Theories Assessment Summary " ! # $ {
  8. 8. 8 Software development involves many groups of individuals working together
  9. 9. 9 Software development involves an individual working with many complex artifacts (information spaces)
  10. 10. 10 Software development involves many individuals working with the same 
 information spaces
  11. 11. 11 Why Does Context Matter? Context defines scope of research narrows investigation of mismatches narrows analysis of applicable theories sets the stage for assessment
  12. 12. 12Context Individual working with the information space of source code Mylyn: Initial Context
  13. 13. 13Context Individual’s
 work is fragmented across tasks and tools Mylyn: Expanded Context Actvities and Task Switches (Session 1) Time [minutes] Subject 0 30 60 90 120 150 180 T3 T2 T1 S4 S3 S2 S1 R4 R3 R2 R1 ● ● ● ● ● ● ●● ●●●● ● ● ● ● ● ● ●●●●● ● ● ●●● ●●● ●● ● 51 activity switches 10 task switches, 3 distinct tasks ● ● ●● ● ●●●● ● ●● ● ● ●● ●● ● ●● ●●● ●●●● ● ● ●● ● ● ● ●●● ● ● ● ●●● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●●●● ● ● ●● ● ●●●● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ●● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ●● ● ● ●● ● 166 activity switches 36 task switches, 3 distinct tasks ● ●●●● ● ● ● ●● ●●● ● ● ● ● ● ● ● ● ● ● ●● ● ●● ● ●●● ● ● ● ● ●●● ● ●● ● ● ● ● ● ● ● ● ●●●● ● ● ●●● ● ● ●● ● ● ●●● ●●● ●●● ●●●●● ● ● ●●●●●●●● ● ●●● ● ● ●● ●● ● ●● ● ●● ● ● ● ● ● ● ● ●● ● ●●●● ●●● ● ●● ● ●●●●●● ● ●● ● ●●● ● ● ● 230 activity switches 79 task switches, 4 distinct tasks ●● ●● ● ●● ● ● ●●● ● ●● ●●●●● ●● ●● ● ●●●●● ●● ● ●●●● ● ● ● ● ●● ●● ● ●● ● ● ● 85 activity switches 13 task switches, 4 distinct tasks ● ●● ●● ●● ● ● ● ●●● ●● ●●●● ● ● ● ●●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● 59 activity switches 20 task switches, 5 distinct tasks ● ● ●●● ● ● ●●●● ●●● ● ● ● ● ● ● ● ●●● ●●● ● ● ● ● ● 88 activity switches 17 task switches, 5 distinct tasks ● ● ●●● ●●●●●●● ●● ●● ● ●●●● ● ● ● ● ●●●●● ● ● ● ●● ● ● ● ● ●● ●● ●●●●●●● ●● ● ●● ● ● ●●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ●● ●●● ●● ● ● ● ● ● ●●● ●● ● ● ● ●●● ● ● 148 activity switches 27 task switches, 4 distinct tasks ● ●●● ●● ●● ● ● ● ● ●● ●●●●● ●●● ●● ● ●●●● ●●● ● ● ● ●●● ● ●● ●● ● 108 activity switches 16 task switches, 5 distinct tasks ● ● ● ● ● ● ●● ● ●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● 66 activity switches 25 task switches 4 distinct tasks ● ● ● ● ● ●●● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ●● ● ● 102 activity switches 61 task switches 6 distinct tasks ● ● ● ●●● ● ●●●●●●●●●● ● ●● ● ● ● ● ● ● ● ● ●●●●●●● ● ● ●●●●● ●●●● ● ● ● ●●● ● ● ●● ●● ●● 96 activity switches 28 task switches, 4 distinct tasks ● ● ● ● ● ● Dev:VC Dev:Debug Dev:Code Dev:Review Dev:TestApp Dev:Other BrowsingRel BrowsingUnrel MeetInformal MeetPlanned Email Planning ReadWriteDoc Other [Meyer, Fritz, Murphy, Zimmermann, FSE 2014]
  14. 14. Mismatches Context Theories Assessment Summary " ! # $ {
  15. 15. 15 Individual Working with Source Code Mismatches
  16. 16. 16 Tool-Centric Approach: Completeness Mismatches 100 of 623
  17. 17. 17 Tool Interaction: Select-Perform-Scroll-Repeat Mismatches
  18. 18. 18 Clickitis over Cognition Mismatches
  19. 19. 19 Mismatch: Information Overload Mismatches Mylyn: More Source Code than Needed for Task Only some information on screen is relevant for a task
  20. 20. Mismatches Context Theories Assessment Summary " ! # $ {
  21. 21. 21 What Kinds of Theories Exist? Theories Create:
 - program comprehension
 - socio-technical congruence … Borrow:
 - social presence theory
 - information foraging …
  22. 22. 22 Are Theories Always Present? Theories Nope
  23. 23. 23 In IDEs… Semantic Memory of Individual is Taxed Theories
  24. 24. 24 Mylyn: Leverage Episodic MemoryTheories
  25. 25. Mismatches Context Theories Assessment Summary " ! # $ {
  26. 26. 26 Is it Enough to Build it? Assessment Need to assess if tool is effective Need to assess if tool can be used by humans effectively
 If effective…try to match theory to “why”
  27. 27. 27 Types of Assessment Assessment Simulations against repositories
 Case studies/experiments in lab Case studies/experiments in field (in situ)
  28. 28. 28 Mylyn Assessment Industrial Trial at IBM (2004)
 
 Longitudinal field study (2005)
 16 accepted users (99 started study)
 13/16 user’s edit ratio improved with Mylyn
 
 Adoption (today) 2 million downloads per month

  29. 29. Mismatches Context Theories Assessment Epilogue &
 Summary " ! # $ {
  30. 30. 30Intro Lint Non-trivial Refactoring 
 Tools Extract
 Method Refactoring Effective Tools Non-Effective Tools “Why” is 
 Understood Research Human-Centric Software Development Tools
  31. 31. 31Intro Effective Tools “Why” is 
 Understood Research Human-Centric Software Development Tools Innovation
  32. 32. 32 Epilogue Summary Research Invention creation or design of
 something that has
 not existed before
 
 e.g., incandescent lightbulb
  33. 33. 33 Epilogue Summary Research Invention Mylyn
 Data Structure creation or design of
 something that has
 not existed before
 
 e.g., incandescent
  34. 34. 34 Epilogue Summary Research Innovation about the use of an
 idea or method
 e.g., iPhone
  35. 35. 35 Epilogue Summary Research Invention Innovation Mylyn
 Data Structure Mylyn
 UI Innovation
  36. 36. 36 Epilogue Summary Tasktop products Tasktop Technologies 2007 - incorporated
 2008 - Tasktop Dev
 2011 - Tasktop Sync
 2014 - $11M Series A
 2015 - Tasktop Data
 
 ~100 staff
  37. 37. 37 Epilogue Summary Invention Innovation It takes almost as
 much creativity to
 understand a good
 idea as to have it
 in the first place. — Alan Kay Both “I”s are important
 
 Innovation builds from
 earlier inventions and
 innovations
 
 Research is the base Doesn’t happen enough
  38. 38. 38Thanks to… Mylar + Early Tasktop: Tasktopians circa 2013 Mik Kersten, Rob Elves, Shawn Minto, Davor Cubranic, Taivo Evard, Nathan Hapke, 
 Wesley Coelho, Meghan Allen, Leo Dos Santos, Steffen Pingel *Many* amazing grad students and post-docs Including Sarah Rastkar, Roberto Bittencourt, Thomas Fritz, Brian de Alwis,
 John Anvik, Jan Hannemann, Martin Robillard, Robert Walker, Elisa
 Baniassad, Gene Lee, Giovanni Viviani, Sedigheh Zolkatof, Sylvie Foss,
 Deepak Azad, Rahul Jiresal, Nick Sawadsky, Alex Bradley, Owen Ou,
 Petecharat Viriyakattiyaporn, Kaitlin Sherwood, Izzet Safer, Lyndon Hiew, Trevor Young, Reid Holmes, Annie Ying, Albert Lai, Emerson Murphy-Hill, Michalis Famelis, Marc Palyart Neil Ernst, and David Shepherd.
  39. 39. 39Summary Human-Centric Software Development Tools Research In…
  40. 40. 40Intro Bridging Theory Assessment of Effectiveness Identification of Mismatch Take Aways: It is about the Why Three Characteristics of Software Development Tool Research… @gail_murphy

×