Human Interactions In Programming Rob DeLine ResearcherHIP Microsoft Corporation.

Slides:



Advertisements
Similar presentations
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Advertisements

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Windows 8 (1) (2) (3) Windows 8 (1) (2) (3)
Feature: Identity Management - Login © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Windows 7 Training. Windows ® 7 Compatibility Session 0 Isolation Isolation of Windows 7 Services.
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Feature: Reprint Outstanding Transactions Report © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Feature: Purchase Requisitions - Requester © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Feature: Payroll and HR Enhancements © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
The Social Programmer Robert DeLine Microsoft Research University of Washington, 6 Oct 2009.
Interactivity Navigating a data model Working with large quantities of data Entry Editing and adding data User feedback and validation Presentation.
 Nishant Gupta Program Manager Live Services Microsoft Corporation BB51.
Co- location Mass Market Managed Hosting ISV Hosting.
Windows 7 Training Microsoft Confidential. Windows ® 7 Compatibility Version Checking.
Feature: Purchase Order Prepayments II © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: OLE Notes Migration Utility
Feature: Web Client Keyboard Shortcuts © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: SmartList Usability Enhancements © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Session 1.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
 Rico Mariani Architect Microsoft Corporation.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Assign an Item to Multiple Sites © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Print Remaining Documents © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
Connect with life Connect with life
NEXT: Overview – Sharing skills & code.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Document Attachment –Replace OLE Notes © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Feature: Suggested Item Enhancements – Sales Script and Additional Information © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows.
Building Social Games for Windows 8 with Windows Azure Name Title Microsoft Corporation.
Feature: Customer Combiner and Modifier © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: Employee Self Service Timecard Entry © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
“HIP” Tools for Software Development Andrew Begel Human Interactions in Programming Group Microsoft Research Andrew Begel Human Interactions in Programming.
demo Instance AInstance B Read “7” Write “8”

customer.
Towards understanding programs through wear-based filtering Robert DeLine Amir Khella Mary Czerwinski George Robertson Microsoft Corporation SoftVis 2005.
demo © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
demo Demo.
Feature: Void Historical/Open Transaction Updates © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
demo QueryForeign KeyInstance /sm:body()/x:Order/x:Delivery/y:TrackingId1Z
Feature: Suggested Item Enhancements – Analysis and Assignment © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and.
Windows Azure SQL Data Sync Name Title Microsoft Corporation.
projekt202 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
The CLR CoreCLRCoreCLR © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
Microsoft Corporation. Announcement Visual Studio® Team System 2008 Enables you to Build Quality Code Be More Productive Collaborate at the Next Level.
Requirements Gathering Architectural Design DevelopmentUAT Visual Design Production Polish Concept Ideation Interaction Design.

demo User Signs Up Temporary Account is Created with Verification Link Sent User Clicks Link Account is Activated Login.Register(userName,
Возможности Excel 2010, о которых следует знать
Title of Presentation 11/22/2018 3:34 PM
Office Mac /30/2018 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Title of Presentation 12/2/2018 3:48 PM
Brian Keller Sr. Technical Evangelist Microsoft Session Code: DEV310
Brian Keller Sr. Technical Evangelist Microsoft Session Code: DEV310
Feature: Document Attachment - Flow from Master Records
8/04/2019 9:13 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
5/1/2019 3:29 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Шитманов Дархан Қаражанұлы Тарих пәнінің
Title of Presentation 5/24/2019 1:26 PM
Microsoft Office365 Tips Calendar Sample 10/31/2019
Presentation transcript:

Human Interactions In Programming Rob DeLine ResearcherHIP Microsoft Corporation

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

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

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

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

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)

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

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

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

Clone-and-own instead of taking a dependency

Architecture Devs carry rich models of code in their heads Implementation Social network To-do’s, wishlists Meta-info about the code Worst for the “team historian”

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

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%)

Investigating rationale Tries to understand code directly Reads code (42% of the time) Debugger (20%) Diffs versions (16%) Examines results (9%) Trace statements (8%)

Investigating rationale Does not read specs, design docs, Does not send (unless crossing team boundaries)

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

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

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?

Project: Bridge What: Full-text search over code, check-ins, bugs, , 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

etc. 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.

Project: Bridge Browser

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

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

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

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

Project: JotNet Screenshot

Studying Developers Learning Unfamiliar Code

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?

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

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

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

Project: Code Thumbnails Overview

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

Current Studies

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

research.microsoft.com / hip

© 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.