The Social Programmer Robert DeLine Microsoft Research University of Washington, 6 Oct 2009.

Slides:



Advertisements
Similar presentations
Int 2 Computing Software Development.
Advertisements

Coding and Debugging. Requirements and Specification Recall the four steps of problem solving: Orient, Plan, Execute, Test Before you start the implementation.
Making CHASE Mainstream Robert DeLine Microsoft Research CHASE Workshop, ICSE 2009.
Chapter 3.5 Debugging Games
Personas and Scenarios - Reshmi. Personas  Fictional characters created to represent the different user types that might use a site, brand, or product.
Microsoft Outlook Ribbon Features Tabs shown change depending on the View you are in Home Tab – tools for replying, forwarding and applying rules,
8 September Announcements  GIT Class: Friday 3-5 SN 115 (Peter Parente)  Information for Project Links PageProject Links Page  Hot Topics Teams.
Information & Interaction Design Fall 2005 Bill Hart-Davidson Session 7: teams present research plan + a sequence diagram from phase 2 homework; Affinity.
Report of the CMU Natural Programming Group Brad Myers, Andy Ko, Jeff Stylos, Michael Coblenz, Brian Ellis, Polo Chao Carnegie Mellon University.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Streamlined Action Plan Code Review Process Ken Kopatz Software Process Improvement Network (SPIN) Meeting 30 June 2000.
Object-Oriented Analysis and Design Lecture 11 Maintenance (from Schach, “O-O and Classical Software Engineering”)
How we build Redfin.com Matt Goyer Lead Product Manager.
Maryam Karimzadehgan (U. Illinois Urbana-Champaign)*, Ryen White (MSR), Matthew Richardson (MSR) Presented by Ryen White Microsoft Research * MSR Intern,
Putting the Learning in Distance Learning Mary Beth Orrange AMATYC Math on the Web Themed Session Thursday, November 20, Washington D.C.
By: Leann Continere Iwona Gorska Sarah Solivan Chris Shimazu.
CEN th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Change Control.
The Struggles of New College Graduates in their First Software Development Job Andrew Begel, Human Interactions in Programming, MS Research Beth Simon.
CompSci 230 Software Design and Construction
Page 1 MODEL TEST in the small GENERALIZE PROGRAM PROCESS allocated maintenance changes management documents initial requirement project infrastructure.
Unit B065 – Coding a solution PREP WORK 1)Make sure you keep a work log / diary. Use the table on page 16 of the hand book as a template 2)Keep a bibliography.
Tools for Bridging the Distance Using Technology in Distance Teams Part 3 of the Distance Series.
1 Microsoft’s Process Redmond in the 90’s Article by Roger Sherman, Director of Testing, Worldwide Products Group, Microsoft.
Reliability Andy Jensen Sandy Cabadas.  Understanding Reliability and its issues can help one solve them in relatable areas of computing Thesis.
The Joel Test 12 Steps to Better Code. Readings The Joel Test (by Joel Spolsky) 043.html.
Windermere Photo Gallery A Walkthrough of What’s New.
Human Interactions In Programming Rob DeLine ResearcherHIP Microsoft Corporation.
SEIMS SUPPORT N.C. State Board of Elections
Surveying patrons with the Impact Survey A fast, easy way to gather feedback from the community about public technology needs Samantha Becker, MLIS, MPA.
T Software Development Project I Customer Info Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio Software Business and.
Project Workflow. How do you do it? -Discussion-
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Building a Culture of Quality, Real World Examples
1 Quality Center 10.0 NOTE: Uninstall the current version of QC before downloading QC All QC 10.0 documents can be located on the BI Shared Services.
Copyright (c) Cem Kaner. 1 Software Testing 1 CSE 3411 SWE 5411 Assignment #1 Replicate and Edit Bugs.
Software Development Process.  You should already know that any computer system is made up of hardware and software.  The term hardware is fairly easy.
Unit 2 (task 28) In this PowerPoint I will tell you about 7 important IT job roles and if a candidate might want one what he would have to do to get one.
Yeah but.. What do I do? Software Leadership Dan Fleck 2007.
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Office Business Applications Workshop Defining Business Process and Workflows.
“HIP” Tools for Software Development Andrew Begel Human Interactions in Programming Group Microsoft Research Andrew Begel Human Interactions in Programming.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
Use Case Diagram The purpose is to communicate the system’s functionality and behaviour to the customer or end user. Mainly used for capturing user requirements.
Enterprise skills session 3. Enterprise skills Welcome What’s your T shirt say this week ?
By The Supreme Team CMPT 275 Assignment 2 May 29, 2009.
Towards understanding programs through wear-based filtering Robert DeLine Amir Khella Mary Czerwinski George Robertson Microsoft Corporation SoftVis 2005.
T Software Development Project I Customer Info Jari Vanhanen Ohjelmistoliiketoiminnan ja –tuotannon laboratorio Software Business and.
Crisis Commander Mobile App. Crisis Commander Cloud based virtual Crisis Management tool Complete audit trail and full legal compliance Initiates securely.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Module 12: Responding to Security Incidents. Overview Introduction to Auditing and Incident Response Designing an Audit Policy Designing an Incident Response.
P51UST: Unix and SoftwareTools Unix and Software Tools (P51UST) Version Control Systems Ruibin Bai (Room AB326) Division of Computer Science The University.
Yeah but.. What do I do? Software Leadership Dan Fleck 2010.
Biological Model Engineering Peter Saffrey, Department of Medicine Cakes Talk Monday, October 20, 2008.
Yeah but.. What do I do? Software Leadership Dan Fleck 2007.
INFINITIVE OF PURPOSE WHY?.  You can explain why you do something with to + verb.  Why did you leave the meeting? To make a phone call.  I’m writing.
In the news. Taxonomy Organizing Information Observation The Organization Project Scope Start the project Stakeholder Interviews Gather goals Focus groups.
Accounting in DataGrid HLR software demo Andrea Guarise Milano, September 11, 2001.
ETendering Project Portal Jaroslav Konya March, 2012 Sharepoint Collaborative Portal.
Internal developer tools and bug tracking Arabic / Hebrew Windows 3.1Win95 Japanese Word, OneNote, Outlook
COM 352 EDU Experience Tradition/com352edu.com FOR MORE CLASSES VISIT
What is a Functional Spec?  Defines what the functionality will be NOT how it will be implemented  Describes features of the software product product's.
Online Submission and Management Information -- Authors
Managing the Project Lifecycle
Requirements Analysis Scenes
Project Workflow.
Using the E-rate Productivity Center (EPC)
Unit4 Customer Portal Submitting & Managing Cases.
Project Iterations.
Presentation transcript:

The Social Programmer Robert DeLine Microsoft Research University of Washington, 6 Oct 2009

thinkgeek.com

People and their Roles customers pm test dev spec

pm test dev spec customers People and their Roles

pm test dev spec People and their Roles

pm test dev spec People and their Roles

Ko, DeLine, and Venolia, ICSE 2007 code submit bug triage bug repro understanding design awareness non-work (—)

Developer Information Needs

Developers are thread schedulers! void BeDeveloper() { while ( ! quittingTime) { try { var task = readyTasks.PickOne(); while ( ! (task.IsDone || task.IsBlocked)) { task.MakeProgress(); } if (task.IsBlocked) { readyTasks.Remove(task); blockedTasks.Add(task); } catch (Interruption interruption) { var info = interruption.FreshInformation; if (info != null) { foreach (var task in blockedTasks) { if (task.BlockedOnInformationNeed(info)) { blockedTasks.Remove(task); readyTasks.Add(task); }

Links from Source schema Structured documents Plain-text allusions Computed relationships Logging user behavior – etc. Graph gives basis for – Link-analysis scoring – Diary of an artifact – Recommendations – etc. etc. Product Studio Share Point Source Depot Making the most of existing data 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. Venolia, MSR 06 The Bridge

Social networking for development teams FacebookCodebook Begel and DeLine, MSR 06

Engineers need help finding people Survey to rate difficulty of coordination tasks – 110 respondents out of 1000 engineers (PMs, SDEs, SDETs) – 31 tasks in 8 categories, from prior interviews In our survey to Microsoft engineers: – 83% want a better tool to find engineers responsible for a feature. – 67% want a better tool to find knowledgeable experts about features. – 64% want a better tool to find relevant code, specs, bugs, etc., belonging to another team. (Begel, Phang, and Zimmerman, in submission to ICSE 10)

Scenario: Bug in an external library Xin found a bug in his code, probably caused by an external library that was just updated. He looked on Bing but didn’t find anything. – Of course not, it’s not released yet! Is he using this library correctly? – Can he find someone to look at his code and tell him what’s wrong? Has someone already filed a bug against this? He thinks this a bug in their design, who owns the specs?

With Codebook Go to Codebook PortalGo to Codebook Portal …… Go to Codebook PortalGo to Codebook Portal ……

The problem is in the StoreSync() method in the Pegasus project, so Xin enters “pegasus StoreSync”

Xin gets all people, work items, code, and files which are related to “pegasus StoreSync”. (Names and photos have been anonymized)

Aha! This is the method, and that’s the SDE who wrote it.

Perhaps this SDE can look at his code.

Savant is the SDE, and his contact info is listed.

Savant is also highlighted in other results

There doesn’t seem to be specs or bugs, but Savant works with this crew.

Xin can contact the PM to get the spec or file a bug

Now that he has found the SDE and the PM, he can fix his code!

Challenge: Most frustrating needs What code caused this program state? 61% unsatisfied, max 21 min Why was the code implemented this way? 44%, 21 min In what situations does this failure occur? 41%, 49 min What code could have caused this behavior? 36%, 17 min How have the resources I depend on changed? 24%, 9 min What is the program supposed to do? 15%, 21 min What have my coworkers been doing? 14%, 11 min

Potential future tools What code caused this program state? 61% unsatisfied, max 21 min Why was the code implemented this way? 44%, 21 min In what situations does this failure occur? 41%, 49 min What code could have caused this behavior? 36%, 17 min How have the resources I depend on changed? 24%, 9 min What is the program supposed to do? 15%, 21 min What have my coworkers been doing? 14%, 11 min program analysisawareness toolsmodel-base eng. research.microsoft.com/hip