Presentation is loading. Please wait.

Presentation is loading. Please wait.

“HIP” Tools for Software Development Andrew Begel Human Interactions in Programming Group Microsoft Research Andrew Begel Human Interactions in Programming.

Similar presentations


Presentation on theme: "“HIP” Tools for Software Development Andrew Begel Human Interactions in Programming Group Microsoft Research Andrew Begel Human Interactions in Programming."— Presentation transcript:

1 “HIP” Tools for Software Development Andrew Begel Human Interactions in Programming Group Microsoft Research Andrew Begel Human Interactions in Programming Group Microsoft Research

2 http://research.microsoft.com/hip/ HIP makes development tools HIP … as if software were made by people … working together

3 http://research.microsoft.com/hip/ User-centered tool design We create new tools based on what we observe releasing within Microsoft influencing Microsoft products We study software development recording current practice observing in the lab & in the field evaluating tool solutions

4 http://research.microsoft.com/hip/ Studies of current practice “Maintaining mental models: A study of developer work habits”  Thomas LaToza, Gina Venolia, and Rob DeLine – In Proc. ICSE 2006  General “fishing expedition” – activities and top problems “Information needs in collocated software development teams”  Andy Ko, Rob DeLine, and Gina Venolia (In Proc. ICSE 2007)  Information needs “Let’s go to the whiteboard: How and why software developers draw code”  Mauro Cherubini, Gina Venolia, Rob DeLine, and Andy Ko (In Proc. CHI 2007)  Drawings and sketches of code “Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study”  Andrew Begel and Nachi Nagappan (In Proc. ESEM 2007)  Statistics of Agile usage at MS and top 10 perceived benefits and problems “Maintaining mental models: A study of developer work habits”  Thomas LaToza, Gina Venolia, and Rob DeLine – In Proc. ICSE 2006  General “fishing expedition” – activities and top problems “Information needs in collocated software development teams”  Andy Ko, Rob DeLine, and Gina Venolia (In Proc. ICSE 2007)  Information needs “Let’s go to the whiteboard: How and why software developers draw code”  Mauro Cherubini, Gina Venolia, Rob DeLine, and Andy Ko (In Proc. CHI 2007)  Drawings and sketches of code “Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study”  Andrew Begel and Nachi Nagappan (In Proc. ESEM 2007)  Statistics of Agile usage at MS and top 10 perceived benefits and problems

5 http://research.microsoft.com/hip/ Strong notion of individual code ownership (77% agree) Long-term code ownership (2.6 years on current codebase)

6 http://research.microsoft.com/hip/ Very strong notion of team code ownership (92% agree) Feature teams are small (93% are 3±1) and collocated Strong notion of individual code ownership (77% agree) Long-term code ownership (2.6 years on current codebase) Collective code ownership on Agile teams (65%) Agile development is penetrating Microsoft (32%) Agile has only been used a short time (90% less than 2 years)

7 http://research.microsoft.com/hip/ Team code ownership forms a moat Dev Lead Dev Dev lead is liaison to other teams Highly-coupled knowledge flow within the team

8 http://research.microsoft.com/hip/ Architecture Devs carry rich models of code in their heads Implementation Social network To-do’s, wishlists Meta-info about the code 123123 123123 123123 123123 “Team historian” Knows the most Mental model maintenance is the primary outcome: What has my team been doing? [43 times, 86% success] How have resources I depend on changed? [24, 79%] Mental model maintenance is a side effect of other actions: What could have caused this behavior? [29, 38%] What is it supposed to do? [27, 85%] Why was this code written this way? [12, 42%] Mental model maintenance is the primary outcome: What has my team been doing? [43 times, 86% success] How have resources I depend on changed? [24, 79%] Mental model maintenance is a side effect of other actions: What could have caused this behavior? [29, 38%] What is it supposed to do? [27, 85%] Why was this code written this way? [12, 42%]

9 http://research.microsoft.com/hip/ Dev lead mentoring Newcomers must pick up the mental model New hire document Reading the code Asking around 123123 123123 123123 Dive in and fix bugs

10 http://research.microsoft.com/hip/ 123123 123123 123123 Rationale is the #1 problem Why it’s implemented the way it is (82% agree) Whether it’s temporary code (73%) How it works (69%) What it’s trying to do (62%) 123123 13 of 17 people observed had a rationale question What’s this supposed to do? [27 times, 85% success] Why was the code written this way? [12, 42%] What is the purpose of this code? [10, 90%] 13 of 17 people observed had a rationale question What’s this supposed to do? [27 times, 85% success] Why was the code written this way? [12, 42%] What is the purpose of this code? [10, 90%]

11 http://research.microsoft.com/hip/ 123123 123123 123123 Investigating rationale Tries to understand code directly Reads code (42% of the time) Debugger (20%) Diffs versions (16%) Examines results (9%) Trace statements (8%) 123123

12 http://research.microsoft.com/hip/ 123123 123123 123123 Investigating rationale 123123 Of the 13 with a rationale problem… 1 turned to email 3 looked at documentation 5 referenced specifications 6 initiated conversation with a coworker Of the 13 with a rationale problem… 1 turned to email 3 looked at documentation 5 referenced specifications 6 initiated conversation with a coworker

13 http://research.microsoft.com/hip/ 123123 123123 123123 Investigating rationale 123123 Walks down the hall to the right person (causing an interruption [13 incoming observed]) They discuss the issue Returns and becomes productive Records nothing of this! They turn to the whiteboard if it gets complicated

14 http://research.microsoft.com/hip/ Themes The code is primary but is an imperfect and incomplete representation of the knowledge Other knowledge is mostly tacit and socially transmitted Devs are often blocked on information needs Interruptions are a burden Can we build tools to improve knowledge flow among developers? The code is primary but is an imperfect and incomplete representation of the knowledge Other knowledge is mostly tacit and socially transmitted Devs are often blocked on information needs Interruptions are a burden Can we build tools to improve knowledge flow among developers?

15 http://research.microsoft.com/hip/ Six tools JotNet – An annotation system for code Bridge – Recovering “hyperlinks” for code- related stores Codifier – Code search Backstory – Search over multiple stores Team Tracks – A recommender system for code navigation Code Thumbnails –Navigation by spatial memory JotNet – An annotation system for code Bridge – Recovering “hyperlinks” for code- related stores Codifier – Code search Backstory – Search over multiple stores Team Tracks – A recommender system for code navigation Code Thumbnails –Navigation by spatial memory

16 http://research.microsoft.com/hip/ JotNet What: A shared annotation system for code Related: Many web annotation systems How: VS plug-in, annotations stored in XML files Who: Rob DeLine and Gina Venolia

17 http://research.microsoft.com/hip/

18 Bridge What: Full-text search over code, check-ins, bugs, email, specs… Related: Hipikat (UBC) How: SQL index and link-analysis scoring Who: Gina Venolia Gina Venolia, “Textual Allusions to Artifacts in Software- related Repositories.” In Proc. Mining Software Repositories 2006

19 http://research.microsoft.com/hip/ etc. Email Bugs Intrane t Check- ins Bridge – Index for code-related data Links from Source schema Structured documents Plain-text allusions Computed relationships Team Tracks  etc. Graph gives basis for  Link-analysis scoring  Diary of an artifact  Recommendations  etc. From: Joe Coder To: Project XYZ Dev Team Subject: Re: account bug I managed to repro bug #3242 on my machine last night. I think it might have to do with the Account.Add method that got changed in the last push. I’ll take a look. From: Joe Coder To: Project XYZ Dev Team Subject: Re: account bug I managed to repro bug #3242 on my machine last night. I think it might have to do with the Account.Add method that got changed in the last push. I’ll take a look.

20 http://research.microsoft.com/hip/ Codifier What: Programmer’s search tool Related: Google Code Search, Krugle.com, Koders.com, Symbol Search (VS/Eclipse/Xcode), Searchable Bookshelf, Grep, Findstr How: Code-specific indexing for Windows Desktop Search; code-centric presentation of results Who: Andrew Begel

21 http://research.microsoft.com/hip/ Codifier

22 http://research.microsoft.com/hip/ Backstory What: UI for investigations over multiple stores Related: MSDN How: Federated search, workflow support for multi-query investigations Who: Gina Venolia Venolia, Morris, and Morris, “Exploring and investigating: Supporting high-level search activities.” MSR Tech Report MSR- TR-2007-05. 2007

23 http://research.microsoft.com/hip/

24 Team Tracks What: Recommend definitions related to the current one Related: Mylar (UBC), NavTracks (UVic) How: Log navigation and then derive affinity graph Who: Rob DeLine, Mary Czerwinski, George Robertson, Piali Choudhury, and Amir Khella DeLine, Czerwinski and Robertson, “Easing Program Comprehension by Sharing Navigation Data.” In Proc. VL/HCC 2005.

25 http://research.microsoft.com/hip/

26 Code Thumbnails What: Code navigation via spatial memory Related: SeeSoft, Aspect Browser, Data Mountain How: Display thumbnails of each file in scrollbar and desktop surface Who: Rob DeLine, Mary Czerwinski, Brian Meyers, Gina Venolia, Steven Drucker, and George Robertson DeLine, Czerwinski Meyers, Venolia, Drucker and Robertson, “Code Thumbnails: Using Spatial Memory to Navigate Source Code.” In Proc. VL/HCC 2006.

27 http://research.microsoft.com/hip/

28 Other HIP projects Studies of current practice  Longitudinal study of college graduate new hires - How do computer science college graduates become expert professional developers?  How does social cohesion relate to code quality? Studies of current practice  Longitudinal study of college graduate new hires - How do computer science college graduates become expert professional developers?  How does social cohesion relate to code quality?

29 Questions? http://research.microsoft.com/hip/


Download ppt "“HIP” Tools for Software Development Andrew Begel Human Interactions in Programming Group Microsoft Research Andrew Begel Human Interactions in Programming."

Similar presentations


Ads by Google