university of british columbia software practices lab task-focused programming with mylar gail c....
Post on 18-Dec-2015
215 views
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. 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