university of british columbia software practices lab task-focused programming with mylar gail c....

17
University of British Columbia Software Practices Lab Task-focused programming with Mylar Gail C. Murphy Joint work with Mik Kersten This talk describes: the problem of information overload for programmers how Mylar alleviates this overload and how Mylar works how Mylar went from a research project to a tool used by thousands NOTE: contains animations, best viewed as slideshow

Post on 18-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

University of British Columbia

Software Practices Lab

Task-focused programming

with Mylar

Gail C. Murphy

Joint work with Mik Kersten

This talk describes:

• the problem of information overload for

programmers

• how Mylar alleviates this overload and how Mylar

works

• how Mylar went from a research project to a tool

used by thousands

NOTE: contains animations, best viewed as slideshow

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 2

Information overload

Hard to see the forest through the trees

Repetitive scrolling, searching, navigating

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 3

Mylarsee only what you’re working on

Aluminized film used to avoid blindness when staring at an eclipse

Task Focused UI to avoid information blindness when staring at Eclipse

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 4

Mylar: Key concepts and ideas

• Task– user-defined unit of work (e.g., bug report)– support use of episodic memory

• Task context– subset of information relevant to a task– weights information according to frequency and

recency of access

• Tasks and task contexts:– support focusing a UI on a task– ease task recall (and multi-tasking)– automating parts of the UI

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 5

Demo 1: Tasks

• Without Mylar– must work with various web UIs to manage

bugs/issues/tasks

• With Mylar– task management is integrated– similar to source repositories– get persistence, offline editing, notifications

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 6

Tasks

• Connectors– similar to source repositories– support Bugzilla JIRA and Trac

• Tasks– local– web linked– repository queries– authoring, offline editing

• One integrated task list– personalized notes, reminders– archive, filters, notifications

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 7

Demo 2: Task context

• Without Mylar– manually manage context– use working sets, filters

• With Mylar– indicate the task on which you

are working– programming activity forms

context for that task– context becomes explicit in UI

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 8

Task context

• Creation– Mylar monitors your interaction– builds a degree-of-interest model– what you touch is in your context

• Multi-tasking – stored, easy to recall

• Supports a focused UI– views: filtering, decoration– editors: folding, content assist– context switching, editor

management

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 9

Demo 3: Integration

• Sharing context– attaching and retrieving

context

• Focusing the task list– scheduling, planning,

progress

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 10

Demo 3: Integration

• Sharing context– attaching and retrieving

context

• Focusing the task list– scheduling, planning,

progress

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 11

There’s more…

• Automation– testing context via Active

Test Suite

• Context views– Active Type Hierarchy,

Active Search

• Everything is linked– tasks to context to

resources

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 12

Interaction historyInteractionEvent streamOrigin, handle, type, date

Context (Core)Degree-of-interest graph

Display (UI)– focus views, editors – drive search– support change management– etc.

Mylar’s context model

interest

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 13

Projecting interest onto IDE views

Tree filtered

by DOI

Editor folding

based on DOI

Ranking based

on DOI

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 14

Extensible frameworks

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 15

Mylar: Research to usable Tool• Initial seeds of idea come from our experience with tools for

helping programmers

• 03/04 2004: Brainstorming and project Mik did for visualization course led to

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 16

Mylar: Research to usable tool…

• 08 2004: Mylar 0.1 (no tasks, one context)– Field study of 6 IBM developers

• 03 2005: Mylar 0.2 presented at EclipseCon– 100 developers signed up for preview

• 03-10 2005: Field study of Mylar 0.3– statistical evidence Mylar improves programmer

productivity

• 11 2005: Mylar 0.4, first public release

• 12 2006: Mylar 1.0– 1826 bug reports resolved; 200 through community

contributions– >14,000 downloads in Jan 2007

© Copyright 2007, M. Kersten and G. Murphy. All rights reserved. 17

Task-focused programming with Mylar

• Reduces information overload one task at a time

• www.eclipse.org/mylar– Committers

• Mik Kersten (project lead), Rob Elves, Steffen Pingel, Ian Bull, Gail Murphy

– Contributors• Eugene Kuleshov, Jeff Pound, Brock Janiczak, Willian

Mitsuda, Nathan Hapke, Raphael Ackermann, Gunnar Wagenknecht, Shawn Minto, Ken Sueda, Wesley Coelho, Leah Findlater

• Funding provided by IBM and NSERC