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

Slides:



Advertisements
Similar presentations
USAGE AND PERCEPTIONS OF AGILE SOFTWARE DEVELOPMENT IN AN INDUSTRIAL CONTEXT Andrew Begel, Nachiappan Nagappan Microsoft Research ESEM 2007 September 21,
Advertisements

Done by: - Khalid Sheikhan Shames Al-Shukaili ID: Course code: - TECH 4211 Date: - 9/05/2012 Submitted to: - Dr. M.
Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.
Five Attempts at Spatializing Code Gina Venolia – Senior Researcher With Rob DeLine, Mary Czerwinski, Brian Meyers, Steve Drucker, George Robertson, Mauro.
HOW DO PROFESSIONAL DEVELOPERS COMPREHEND TO SOFTWARE Report submitted by Tobias Roehm, Rebecca Tiarks, Rainer Koschke, Walid Maalej.
Making CHASE Mainstream Robert DeLine Microsoft Research CHASE Workshop, ICSE 2009.
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
1 The Database Application Development Process The Database Application Development Process.
University of British Columbia Software Practices Lab ECOOP 2005 The Emergent Structure of Development Tasks Gail Murphy Joint work with Mik Kersten, Martin.
The Social Programmer Robert DeLine Microsoft Research University of Washington, 6 Oct 2009.
Navigating Working Sets Brad Myers D: Human Aspects of Software Development (HASD) Spring, Copyright © 2011 – Brad Myers.
Semantic Web and Web Mining: Networking with Industry and Academia İsmail Hakkı Toroslu IST EVENT 2006.
Access 2007 Product Review. With its improved interface and interactive design capabilities that do not require deep database knowledge, Microsoft Office.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Report of the CMU Natural Programming Group Brad Myers, Andy Ko, Jeff Stylos, Michael Coblenz, Brian Ellis, Polo Chao Carnegie Mellon University.
© 2004, The Trustees of Indiana University 1 OneStart Workflow Basics Brian McGough, Manager, Systems Integration, UITS Ryan Kirkendall, Lead Developer.
SEG4911 – Projet génie logiciel en fin d’études / Software Engineering Capstone Project Thoughts about Agile Design and Release Management Timothy C. Lethbridge.
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
Computer Software.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
Tango Asset Management Capabilities Presentation 1.Desktop & Web Architecture 2.Equipment Management 3.Condition Management 4.Data Mining 5.Parameter Trending.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
Computer Concepts 2014 Chapter 7 The Web and .
The Struggles of New College Graduates in their First Software Development Job Andrew Begel, Human Interactions in Programming, MS Research Beth Simon.
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Offline Performance Monitoring for Linux Abhishek Shukla.
LBTO IssueTrak User’s Manual Norm Cushing version 1.3 August 8th, 2007.
OCLC Online Computer Library Center CONTENTdm ® Digital Collection Management Software Ron Gardner, OCLC Digital Services Consultant ICOLC Meeting April.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
Databases and Education Access Access Course Progression Access courses can be designed for intensive immersion or semester-long courses. Basic.
Human Interactions In Programming Rob DeLine ResearcherHIP Microsoft Corporation.
Project Workflow. How do you do it? -Discussion-
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
© 2007 by Prentice Hall 1 Introduction to databases.
Hipikat: A Project Memory for Software Development The CISC 864 Analysis By Lionel Marks.
1-1 System Development Process System development process – a set of activities, methods, best practices, deliverables, and automated tools that stakeholders.
Samad Paydar Web Technology Lab. Ferdowsi University of Mashhad 10 th August 2011.
What to Know: 9 Essential Things to Know About Web Searching Janet Eke Graduate School of Library and Information Science University of Illinois at Champaign-Urbana.
1 Schema Registries Steven Hughes, Lou Reich, Dan Crichton NASA 21 October 2015.
Introduction to Omeka. What is Omeka? - An Open Source web publishing platform - Used by libraries, archives, museums, and scholars through a set of commonly.
1 NORMA Lab. 7 Generating Reports More Display Options File: NORMA_Lab6.ppt. Author: T. Halpin. Last updated: 2009 June 9.
Knowledge-oriented Maintenance at the University of Ottawa Timothy C Lethbridge KOM Banff.
August 2003 At A Glance VMOC-CE is an application framework that facilitates real- time, remote cooperative work among geographically dispersed mission.
Lucian Voinea Visualizing the Evolution of Code The Visual Code Navigator (VCN) Nunspeet,
1 Asking and Answering Questions during a Programming Change Task, By Jonathan Sillito, Member, IEEE, Gail C. Murphy, Member, IEEE, and Kris De Volder.
Joe Hummel, PhD Dept of Mathematics and Computer Science Lake Forest College
11 Version Control Systems Mauro Jaskelioff (originally by Gail Hopkins)
Towards understanding programs through wear-based filtering Robert DeLine Amir Khella Mary Czerwinski George Robertson Microsoft Corporation SoftVis 2005.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
EVALUATION PROfessional network of Master’s degrees in Informatics as a Second Competence – PROMIS ( TEMPUS FR-TEMPUS-JPCR)
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
P51UST: Unix and SoftwareTools Unix and Software Tools (P51UST) Version Control Systems Ruibin Bai (Room AB326) Division of Computer Science The University.
ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft.
Microsoft Visual Studio 2005 Tools for the Office System: Building Office Solutions Using Visual Studio 2005 Tools for Office Andrew Coates Developer Evangelist.
User-Centered Design (UCD) Overview
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Intel Confidential Internal Use Only – Do Not Distribute Cutting and Pasting Up: Understanding Users with Task Trail Eleanor Wynn Principal Engineer Intel.
Building Enterprise Applications Using Visual Studio®
Appendix 2 Automated Tools for Systems Development
Computer Software Lecture 5.
Project Workflow.
Program comprehension during Software maintenance and evolution Armeliese von Mayrhauser , A. Marie Vans Colorado State University Summary By- Fardina.
SIS: A system for Personal Information Retrieval and Re-Use
Chapter 1 The Systems Development Environment
Athabasca University School of Computing and Information Science
Andrew Begel, Nachiappan Nagappan Microsoft Research
Jochen Seemann Program Manager Enterprise Tools Microsoft Corporation
Function-oriented Design
Presentation transcript:

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

HIP makes development tools HIP … as if software were made by people … working together

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

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

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

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)

Team code ownership forms a moat Dev Lead Dev Dev lead is liaison to other teams Highly-coupled knowledge flow within the team

Architecture Devs carry rich models of code in their heads Implementation Social network To-do’s, wishlists Meta-info about the code “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%]

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

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 Of the 13 with a rationale problem… 1 turned to 3 looked at documentation 5 referenced specifications 6 initiated conversation with a coworker Of the 13 with a rationale problem… 1 turned to 3 looked at documentation 5 referenced specifications 6 initiated conversation with a coworker

Investigating rationale 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

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?

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

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

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

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

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

Codifier

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

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.

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.

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?

Questions?