Presentation is loading. Please wait.

Presentation is loading. Please wait.

Human Interactions In Programming Rob DeLine ResearcherHIP Microsoft Corporation.

Similar presentations


Presentation on theme: "Human Interactions In Programming Rob DeLine ResearcherHIP Microsoft Corporation."— Presentation transcript:

1 Human Interactions In Programming Rob DeLine ResearcherHIP Microsoft Corporation

2 HIP Makes Development Tools HIP …as if software were made by people …working together

3 User-Centered Tool Design We study software development Recording current practice Recording current practice Observing in the lab and in the field Observing in the lab and in the field Evaluating tool solutions Evaluating tool solutions We create new tools Based on what we observe Based on what we observe Releasing within Microsoft Releasing within Microsoft Influencing Microsoft products Influencing Microsoft products

4 Studying Software Development At Microsoft Thomas LaToza, Gina Venolia, and Rob DeLine “Maintaining Mental Models: A Study of Developer Work Habits.” In Proc. ICSE 2006 Thomas LaToza, Gina Venolia, and Rob DeLine “Maintaining Mental Models: A Study of Developer Work Habits.” In Proc. ICSE 2006

5 Strong notion of individual code ownership (77% agree) Long-term code ownership (2.6 years on current code base)

6 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 code base)

7 Team code ownership forms a moat Dev Lead Dev Dev lead is liaison to other teams

8 Cross-team docs are less plentiful (4.8 versus 8.0 docs/year), but are more likely to be design-reviewed (87% versus 83%) and updated (63% versus 51%) Design docs define the moat

9 Unit tests (79% of respondents) defend the moat by isolating perturbations

10 Clone-and-own instead of taking a dependency

11 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 123123 Worst for the “team historian”

12 Dev lead mentoring Newcomers must pick up the mental model New hire document Reading the code Asking around 123123 123123 123123 123123 Dive in and fix bugs

13 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

14 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

15 123123 123123 123123 Investigating rationale Does not read specs, design docs, e-mail Does not send e-mail (unless crossing team boundaries) 123123

16 123123 123123 123123 Investigating rationale Walks down the hall to the right person (causing an interruption) 123123 Syncs mental models Returns and becomes productive Records nothing of this!

17 Where This Model Came From Initial survey – 157 developers answered 205 questions Interviews – five devs, six dev leads Card sort Follow-up survey – 187 developers answered 187 questions Initial survey – 157 developers answered 205 questions Interviews – five devs, six dev leads Card sort Follow-up survey – 187 developers answered 187 questions

18 Observed Problems Retaining and sharing design decisions Finding the rationale behind code Understanding the impact of changes Reducing the mental burden Learning the team’s artifacts as a newcomer Keeping the model up-to-date in your head Attention and interruption Switching tasks to handle interruptions Juggling tasks to avoid being blocked Can we improve access to existing team artifacts? Can we encourage the team to record more?

19 Project: Bridge What: Full-text search over code, check-ins, bugs, email, specs… How: SQL index and link-analysis scoring Status: invent ► develop ► evaluate ► deploy Who: Gina Venolia Gina Venolia, “Textual Allusions to Artifacts in Software-related Repositories.” In Proc. Mining Software Repositories 2006

20 etc. Email Product Studio Share Point Source Depot Project: Bridge Links from Source schema Source schema Structured documents Structured documents Plain-text allusions Plain-text allusions Computed relationships Computed relationships Team Tracks Team Tracksetc. Graph gives basis for Link-analysis scoring Diary of an artifact Recommendationsetc. Links from Source schema Source schema Structured documents Structured documents Plain-text allusions Plain-text allusions Computed relationships Computed relationships Team Tracks Team Tracksetc. Graph gives basis for Link-analysis scoring Diary of an artifact Recommendationsetc. 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.

21 Project: Bridge Browser

22 Project: Codifier What: Programmer’s search tool How: Code-specific indexing for Windows Desktop Search; code-centric presentation of results Status: invent ► develop ► evaluate ► deploy Who: Andrew Begel

23 123123 123123 123123 Remember this story? Walks down the hall to the right person (causing an interruption) 123123 Syncs mental models Returns and becomes productive Records nothing of this!

24 Barriers To Recording Knowledge Information outside the code is suspect Code comments have overhead Changing the code requires write permission and a check-in Check-ins trigger review processes, merge conflicts, test suite runs, automatic analyses, etc. Comments feel too authoritative No good way to scribble notes in the margins

25 Project: JotNet What: A shared annotation system for code How: VS plug-in, annotations stored in XML files Status: invent ► develop ► evaluate ► deploy Who: Rob DeLine and Gina Venolia

26 Project: JotNet Screenshot

27 Studying Developers Learning Unfamiliar Code

28 Code Navigation Is A Problem We ran an initial observational study Inefficient navigation to find task-relevant code Misleading results of text searches Disorientation from too much navigation, too many open files Ko, Aung and Myers found similar results 35% of task time was just navigation Robert DeLine, Amir Khella, Mary Czerwinski, and George Robertson, “Towards understanding programs through wear-based filtering.” In Proc. Symp. on Software Visualization, 2005 Can we make navigation more efficient? Can we make navigation less of a mental burden?

29 Project: Team Tracks What: Recommend methods related to the current one How: Log navigation and then derive method-to-method affinity graph Status: invent ► develop ► evaluate ► deploy 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

30

31 Evaluating Team Tracks Lab study with 16 experienced developers Four tasks in 1 hour on 3 KLOC Tetris game in C# 9 used Team Tracks, 7 did not Tasks followed by quiz about the code Task performance improved For two warm-up tasks, everyone finished them For task with localized changes, no significant difference For task with scattered changes, 7/9 finished with Team Tracks; 1/7 finished without Quiz performance also better with Team Tracks

32 Project: Code Thumbnails What: Single-file (1D) and multi-file (2D) overviews How: Micro-font rendering of file Status: invent ► develop ► evaluate ► deploy 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” To appear in VL/HCC 2006

33 Project: Code Thumbnails Overview

34 Evaluating Code Thumbnails Formative study with 11 participants Same setup as Team Tracks study Participant does additional targeted search task We logged commands in the development environment for 5 of 11 CT used for many navigation steps During targeted search, CT used in 64% of trials We’re doing a new study to look at performance

35 Current Studies

36 Next Steps In User Research Current studies Geographically distributed development Gina Venolia Observations of bug fixing Rob DeLine and intern Andy Ko Code maps for team coordination Gina Venolia and intern Mauro Cherubini Studies in the next year In-depth ethnography of a team for a month Observations of task switching and interruption

37 research.microsoft.com / hip

38 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

39


Download ppt "Human Interactions In Programming Rob DeLine ResearcherHIP Microsoft Corporation."

Similar presentations


Ads by Google