Presentation is loading. Please wait.

Presentation is loading. Please wait.

University of British Columbia Software Practices Lab ECOOP 2005 The Emergent Structure of Development Tasks Gail Murphy Joint work with Mik Kersten, Martin.

Similar presentations


Presentation on theme: "University of British Columbia Software Practices Lab ECOOP 2005 The Emergent Structure of Development Tasks Gail Murphy Joint work with Mik Kersten, Martin."— Presentation transcript:

1 University of British Columbia Software Practices Lab ECOOP 2005 The Emergent Structure of Development Tasks Gail Murphy Joint work with Mik Kersten, Martin Robillard, and Davor Čubranić This presentation includes videos. The slides with videos have links to flash versions. © Copyright 2005, Gail Murphy, except for slides explicitly marked with a different copyright. Permission is granted to use this presentation, in whole or in part for educational purposes, provided that every slide used is used in its entirety, with no changes, deletions or additions; and that the copyright notice is preserved on every slide used.

2 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. This Talk is About… A mismatch between –how developers work with software artifacts –how tools attempt to support that work Using the structure of tasks to reduce the mismatch How Developers Work Task Structure Using Task Structure How Developers Work Task Structure Using Task Structure Abstract Concrete

3 How Developers Work Abstract Concrete

4 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. A Developer at Work I Flash

5 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Observations I Lots of different kinds of artifacts –bug report –Java source code –HTML files –(and more if we continued the task, particularly on an enterprise application) Work with parts of each artifact –description of the bug report –parts of Java classes, etc. Move between parts of artifacts frequently

6 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. A Developer at Work II Mik: Have you solved 79620 yet? Mik: Have you solved 79620 yet? X Gail: just started

7 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. A Developer at Work II Flash

8 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Observations II Interruptions happen –instant messaging, email, people arriving at the door, etc. –developer needing to switch to work on something else One study shows interruptions happen as often as just over every 3 min! [Gonzáles & Mark 04] Interruptions cause context switches for the developer

9 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Our Claim Current tools are not sufficiently supporting a developer –to find and manipulate the pieces of a project’s information space on which they are working –to manage the multiple problems on which they work at the same time © Copyright 2005, G. Murphy and M. Kersten. All rights reserved. 90% of changes touch more than one file

10 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. The Challenge Bug 79620: The Thumbnail… ThumbnailUpdater.start() StackLayout.setPreferred… IFigure.isVisible()

11 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. The Underlying Problem Views become overloaded Analyses can be costly Difficult to switch between sub-graphs

12 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. The Key Ideas Tasks performed by developers involve only some parts of some artifacts –E.g., collections of sub-graphs Many tasks exhibit structure in the sub-graphs

13 Task Structure Abstract Concrete

14 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. What is a Task? One dictionary definition: –“something hard or unpleasant that has to be done” [Merriam-Webster] A better definition for our purposes: –an identifiable unit of work, e.g., “Determine how fonts are set” “Fix bug #x” “Improve performance of restore” May have sub-tasks, or not

15 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. What is Task Structure? Parts of the software system and relationships between those parts that were changed to complete the task

16 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. An Example of Task Structure Changing an Eclipse plug-in to support editing and viewing a new document type *LabelProvider.getText() *Action.run() *ContentProvider.getElements() *ContentProvider.elementsChanged(..) Bug #2045 *ContentProvider niftyIconFile Plugin.xml niftyDocType.html testOpenView

17 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. An Example of Task Structure Changing an Eclipse plug-in to support editing and viewing a new document type *LabelProvider.getText() *Action.run() Bug #2045 *ContentProvider.getElements() *ContentProvider.elementsChanged(..) *ContentProvider niftyIconFile Plugin.xml niftyDocType.html testOpenView

18 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Determining a Task’s Structure The structure of a task can be determined through post-hoc analysis of project repositories E.g., Bugs Versions Bug 2045, closed 28/07/05: 08:00 by murphy Artifacts checked in 28/07/05: 07:59 by murphy

19 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Task Context Parts and relationships of artifacts relevant to a developer as they work on the task For a particular task, task context  task structure Can be approximated as a developer works: –algorithmically over the structure of the graph –by monitoring a developer’s activity and heuristics on the graph

20 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Task Context: Algorithmically E.g., Given a set of program elements of interest I, suggest a fuzzy set of program elements S that may be of interest [Robillard 05] tool() fTool I tool() fTool abcde setTool(…) S © Copyright 2005, G. Murphy and M. Robillard. All rights reserved.

21 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Task Context: Algorithmically… Algorithm guided by specificity and reinforcement tool() fTool abcde S 444529 setTool(…) 32 setTool(…) e.g., setTool is highly specific because it is one of only two accessors of fTool. setTool is reinforced because fTool is in I. © Copyright 2005, G. Murphy and M. Robillard. All rights reserved.

22 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Task Context: Monitoring E.g., Capture the developer’s interaction history with the IDE Assign a degree of interest to elements (and relations) based on occurrences in interaction history [Kersten & Murphy AOSD 04] interest © Copyright 2005, G. Murphy and M. Kersten. All rights reserved.

23 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Terminology To simplify discussion, I will just use the term task structure for the remainder of the talk

24 Using Task Structure Abstract Concrete

25 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Making Use of Task Structure Improve tools –Reduce overload in IDE views –Perform queries automatically Improve collaboration –Form and access a group memory –Share task structure Improve IDE platform –Capture and recommend workflow –Simplify tool development

26 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Improve Tools E.g., Mylar [eclipse.org/mylar] Form task structures from interaction of a developer with the IDE Uses task structures to –scope views –predict relevant parts of structure –actively populate views –support task switching

27 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Mylar… 1.Form task structure and use it to filter views, reducing information overload developer identifies and activates tasks structure of tasks formed from developer’s interaction with IDE task structure includes degree of interest for each node/edge can filter views by the structure of active tasks © Copyright 2005, G. Murphy and M. Kersten. All rights reserved. Flash

28 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Mylar… ClassEditPartrefreshVisuals(…)Font(…)Label Label(…)alignOnHeight(…) Task structure formed

29 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Mylar… 2.Manage multiple tasks can show multiple task structures simultaneously can switch between tasks © Copyright 2005, G. Murphy and M. Kersten. All rights reserved. Flash

30 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Mylar… 3.Use task structure to predict additional structure e.g., errors can populate task structure (even temporarily) e.g., drive search of surrounding structure source code references bug repository © Copyright 2005, G. Murphy and M. Kersten. All rights reserved. Flash

31 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Mylar…

32 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Mylar… 3.Use task structure to predict additional structure e.g., errors can populate task structure (even temporarily) e.g., drive search of surrounding structure source code references bug repository © Copyright 2005, G. Murphy and M. Kersten. All rights reserved.

33 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Mylar… One way to gather and represent task structure Current focus is on using task structure to facilitate an individual developer’s work in an IDE Initial study showed –developer’s used Mylar views more than regular Eclipse views –a developer’s edit ratio can improve with Mylar-like features A field experiment is currently underway –gathering baseline and Mylar usage statistics from approximately 30 developers © Copyright 2005, G. Murphy and M. Kersten. All rights reserved.

34 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Improve Collaboration Task structure can improve focus of collaborations between developers –asynchronous (e.g., accessing a group memory) –synchronous (e.g., awareness about check-in conflicts) Some examples of tools for collaboration Asynchronous Synchronous eROSE (Saarland U.) Jazz (IBM) (UBC) Palantír (UCI)

35 Improve Collaboration Task structure can improve focus of collaborations between developers –asynchronous (e.g., accessing a group memory) –synchronous (e.g., awareness about check-in conflicts) Some examples of tools for collaboration Asynchronous Synchronous eROSE (Saarland U.) Jazz (IBM) (UBC) Palantír (UCI) Asynchronous: eROSE Zimmermann et al ICSE 04

36 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Asynchronous: Hipikat Task structure can improve focus of collaborations between developers –asynchronous (e.g., accessing a group memory) –synchronous (e.g., awareness about check-in conflicts) Some examples of tools for collaboration Asynchronous Synchronous eROSE (Saarland U.) Jazz (IBM) (UBC/SPL) Palantír (UCI) Bugzilla news Ĉubranić & Murphy, ICSE 03

37 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Asynchronous & Task Structure E.g., Imagine a Hipikat TS –group memory would include structures of completed tasks –search group memory with structure of current task

38 Synchronous: JAZZ Task structure can improve focus of collaborations between developers –asynchronous (e.g., accessing a group memory) –synchronous (e.g., awareness about check-in conflicts) Some examples of tools for collaboration Asynchronous Synchronous eROSE (Saarland U.) Jazz (IBM) (UBC) Palantír (UCI)

39 Synchronous: JAZZ Task structure can improve focus of collaborations between developers –asynchronous (e.g., accessing a group memory) –synchronous (e.g., awareness about check-in conflicts) Some examples of tools for collaboration Asynchronous Synchronous eROSE (Saarland U.) Jazz (IBM) (UBC) Palantír (UCI) Hupfer et al, CSCW 04

40 Synchronous: Palantír Task structure can improve focus of collaborations between developers –asynchronous (e.g., accessing a group memory) –synchronous (e.g., awareness about check-in conflicts) Some examples of tools for collaboration Asynchronous Synchronous eROSE (Saarland U.) Jazz (IBM) (UBC) Palantír (UCI)

41 Synchronous: Palantír UCI Web Page

42 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Synchronous & Task Structure E.g., Imagine comparing task structures on check-in –compare committer’s task structure to current task structures of other group members –perform focused source analyses on those task structures Committer’s Task Structure Other Developer’s Task Structure

43 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Improve IDE Platform Capture and recommend workflow –E.g., mine completed task structures for patterns to form best practices or inform UI Simplify tool development –E.g., arbitrate competition for limited screen real estate like gutters based on task being performed

44 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Open Questions How should task structure be defined? –should it include rationale? –should it include how the task was worked on? –should it include confidence levels? Can we determine task structure accurately without the developer’s involvement? Can we make more program analyses feasible by using the focus of task structure? Which is better to pursue: tool support for task structure or improve the languages developers use to express their systems? And many more…

45 ECOOP 2005 © Copyright 2005, G. Murphy. All rights reserved. Summary There is a mismatch between –how developers work with software artifacts –how tools attempt to support that work This mismatch can be reduced by –capturing, retaining and using the structure of tasks to focus tool support niftyIconFile Plugin.xml


Download ppt "University of British Columbia Software Practices Lab ECOOP 2005 The Emergent Structure of Development Tasks Gail Murphy Joint work with Mik Kersten, Martin."

Similar presentations


Ads by Google