SlideShare a Scribd company logo
1 of 41
Download to read offline
Making Effective, Useful
Software Development Tools
Gail C. Murphy

University of British Columbia
@gail_murphy
A more restrictive license has been
chosen given use of licensed images.
Image cannot be reused.
2
A quick survey…
Intro
When you build software, do you mostly use…
command-line tools?
development environments?
something else?
3
Problem: Your productivity (and the users of what

you produce) is limited because tools are more

oriented at computers than humans
Intro
Video cannot be reused.
4
Example:

Sharing changes



based on [Bradley, Fritz, Holmes, ICSE 2018]
(a) Access issue tracker and check issue number
for current work item
(b) Open terminal and run tests against changed
code (e.g., npm run tests)
(c) Use terminal to commit code (e.g., git

commit -m ‘See issue 123’)
(d) Pull any external changes from remote
repository (git pull)
(e) Push the local change to the remote repository
(git push)
(f) Open the commit in the version control system
using GitHub web interface and open a pull
request
(g) Determine reviewers and assign them to pull
request
Intro
5Intro
Observational study: A software developer’s
work is fragmented across tasks and tools
Actvities and Task Switches (Session 1)
Time [minutes]
Subject
0 30 60 90 120 150 180
T3
T2
T1
S4
S3
S2
S1
R4
R3
R2
R1
●
●
●
●
●
●
●●
●●●●
● ● ● ●
●
● ●●●●●
●
●
●●●
●●●
●●
●
51 activity switches
10 task switches, 3 distinct tasks
●
●
●●
●
●●●●
●
●●
●
●
●●
●●
●
●●
●●●
●●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●
● ● ●
● ● ●●
●●
●
●
●
●
●●
●
●
●
●
●
●●●
●
● ●
●
● ●
●
●●
●
●
●●
●
166 activity switches
36 task switches, 3 distinct tasks
●
●●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●●●
●
●●
●
●
●
● ●
●
●
●
●●●●
●
●
●●●
●
●
●●
●
●
●●●
●●●
●●●
●●●●●
●
●
●●●●●●●●
●
●●●
●
● ●● ●●
●
●●
● ●●
●
●
●
●
●
●
●
●●
●
●●●●
●●●
●
●●
●
●●●●●●
●
●●
● ●●●
●
●
● 230 activity switches
79 task switches, 4 distinct tasks
●●
●● ●
●●
●
●
●●●
●
●●
●●●●●
●●
●●
●
●●●●●
●● ●
●●●●
●
●
●
● ●●
●●
● ●●
● ● ●
85 activity switches
13 task switches, 4 distinct tasks
● ●●
●●
●●
●
●
●
●●●
●●
●●●● ●
●
●
●●●
●
●
●
●
●
●
●
● ●● ● ●
●
●
●
●● ●
●
59 activity switches
20 task switches, 5 distinct tasks
● ●
●●●
●
●
●●●●
●●●
● ● ●
● ●
● ●
●●●
●●● ●
●
●
● ●
88 activity switches
17 task switches, 5 distinct tasks
●
●
●●●
●●●●●●●
●●
●●
●
●●●●
●
●
●
●
●●●●●
●
●
●
●●
●
●
●
●
●●
●●
●●●●●●●
●●
●
●●
●
●
●●●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●●
●●
●●●
●●
●
●
●
●
● ●●●
●●
●
●
●
●●●
●
●
148 activity switches
27 task switches, 4 distinct tasks
●
●●● ●● ●●
●
●
●
●
●● ●●●●●
●●● ●●
●
●●●● ●●●
●
●
●
●●● ●
●●
●● ●
108 activity switches
16 task switches, 5 distinct tasks
●
●
●
●
●
●
●●
●
●●
●
●
●● ● ●
●
● ● ●
● ●
●
●
● ●
●
66 activity switches
25 task switches
4 distinct tasks
●
●
●
● ●
●●●
●
●
●
●
●
●●●
● ●
● ●
●
●
●
●
● ●●
●
● ●
●
● ●●
●●
●
●
102 activity switches
61 task switches
6 distinct tasks
●
●
●
●●●
●
●●●●●●●●●●
●
●●
●
● ●
●
●
● ●
●
●●●●●●●
●
● ●●●●●
●●●● ● ●
●
●●● ●
●
●●
●●
●●
96 activity switches
28 task switches, 4 distinct tasks
●
●
●
●
●
●
Dev:VC
Dev:Debug
Dev:Code
Dev:Review
Dev:TestApp
Dev:Other
BrowsingRel
BrowsingUnrel
MeetInformal
MeetPlanned
Email
Planning
ReadWriteDoc
Other
[Meyer, Fritz, Murphy, Zimmermann, FSE 2014]
6
Solution: Build software development tools
around how humans work
Intro
Photo courtesy of
#WOCinTech
Photo courtesy of #WOCinTech
7Intro
Bridging
Theory
Assessment of
Effectiveness
Identification of
Mismatch
Making Effective, Useful Software Development Tools
for Humans
Images cannot be reused.
8Intro
Plan
Positive Case:

Mylyn
Positive Case:

Whyline
Negative Case:

Defect Prediction

!
"
9Intro
Theories can 

be simple
Tomorrow
Summary
#
$
é
10
Positive Case:

Whyline
11Whyline
[Ko & Myers, CHI 2004]
Identification of
Mismatch
Bridging
Theory
Assessment of
Effectiveness
Positive Case: Whyline
Debugging tools do not 

support inquisitive nature of activity
Directly support hypothesizing:

why did and why didn’t questions
Comparative lab study shows

Whyline reduces debugging time by

a factor of ~8
12
Identification of
Mismatch
Positive Case: Whyline
Debugging:

Developer has to

work in terms
of program’s

execution model
Image from: [Ko & Myers, CHI 2004]
13Positive Case: Whyline
Bridging
Theory
Existing tools lack

support for

hypothesizing
Directly support

why did and

why didn’t questions
Image from: [Ko & Myers, CHI 2004]
14Positive Case: Whyline
Assessment of
Effectiveness
Comparative lab study shows

Whyline reduces debugging time by

a factor of ~8
Image from: [Ko & Myers, CHI 2004]
15Whyline
[Ko & Myers, CHI 2004]
Identification of
Mismatch
Bridging
Theory
Assessment of
Effectiveness
Positive Case: Whyline
Debugging tools do not 

support inquisitive nature of activity
Directly support hypothesizing:

why did and why didn’t questions
Comparative lab study shows

Whyline reduces debugging time by

a factor of ~8
16
Positive Case:

Mylyn
17Mylyn
[Kersten & Murphy, FSE 2006]
Identification of
Mismatch
Bridging
Theory
Assessment of
Effectiveness
Positive Case: Mylyn
Development environments 

cause developers information overload

and repetitive activities
Developers work on tasks and use 

episodic memory to recall tasks
Field study shows that productivity

improves with Mylyn use
18
Identification of
Mismatch
Positive Case: Mylyn
Only some information on 

screen is relevant for a task



Human semantic 

memory is taxed
19Positive Case: Mylyn
Bridging
Theory
Leverage episodic memory
20Positive Case: Mylyn Leverage episodic memory
21Positive Case: Mylyn
Assessment of
Effectiveness
Longitudinal field study (2005)

16 accepted users (99 started study)

13/16 user’s edit ratio improved 

with Mylyn



Adoption (today)
2 million downloads per month

~ > 500K users daily
22Mylyn
[Kersten & Murphy, FSE 2006]
Identification of
Mismatch
Bridging
Theory
Assessment of
Effectiveness
Positive Case: Mylyn
Development environments 

cause developers information overload

and repetitive activities
Developers work on tasks and use 

episodic memory to recall tasks
Field study shows that productivity

improves with Mylyn use
23
Negative Case:

Defect Prediction
24
Defect Prediction
Identification of
Mismatch
Bridging
Theory
Assessment of
Effectiveness
Negative Case:

Defect Prediction
Developers don’t know where

to put effort on preventing bugs
<None>
Google studies putting defect

prediction into code reviews: 

no identifiable behaviour change
25
Identification of
Mismatch
Negative Case:

Defect Prediction
Defects found in the field are costly to fix
Code reviews are costly to perform
Can developer time be focused on
parts of code most likely to contain
defects?
26Negative Case:

Defect Prediction
Bridging
Theory
<none>



An idea that has had substantial study…



Predict areas of code that are bug-prone
using aspects of how the code was
developed and metrics code exhibits
27Negative Case:

Defect Prediction
Assessment of
Effectiveness
Google study: Embedded defect prediction
results into code review tool [Lewis et al, ICSE 2013]



“This file has been flagged as bug-prone … based
on the number of changeless it has been in with
‘bug’ attached…Please review carefully”
No effect on developers…
28
Defect Prediction
Identification of
Mismatch
Bridging
Theory
Assessment of
Effectiveness
Negative Case:

Defect Prediction
Developers don’t know where

to put effort on preventing bugs
<None>
Google studies putting defect

prediction into code reviews: 

no identifiable behaviour change
29
Theories can be simple
30
“Even though the UNIX system
introduces a number of innovative
programs and techniques, no single
program or idea makes it work well.
Instead, what makes it effective is the
approach to programming, a
philosophy of using the computer. […]
at its heart is the idea that the power
of a system comes more from the
relationships among programs than
from the programs themselves.”
31
Humans can visualize,
understand and reason
about data pipelines
sort file1 | uniq > file2
32
Tomorrow
33Tomorrow
Why do many software developers still have to work

fundamentally the same way as 30 years ago?
Actvities and Task Switches (Session 1)
Time [minutes]
Subject
0 30 60 90 120 150 180
T3
T2
T1
S4
S3
S2
S1
R4
R3
R2
R1
●
●
●
●
●
●
●●
●●●●
● ● ● ●
●
● ●●●●●
●
●
●●●
●●●
●●
●
51 activity switches
10 task switches, 3 distinct tasks
●
●
●●
●
●●●●
●
●●
●
●
●●
●●
●
●●
●●●
●●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●
● ● ●
● ● ●●
●●
●
●
●
●
●●
●
●
●
●
●
●●●
●
● ●
●
● ●
●
●●
●
●
●●
●
166 activity switches
36 task switches, 3 distinct tasks
●
●●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●●●
●
●●
●
●
●
● ●
●
●
●
●●●●
●
●
●●●
●
●
●●
●
●
●●●
●●●
●●●
●●●●●
●
●
●●●●●●●●
●
●●●
●
● ●● ●●
●
●●
● ●●
●
●
●
●
●
●
●
●●
●
●●●●
●●●
●
●●
●
●●●●●●
●
●●
● ●●●
●
●
● 230 activity switches
79 task switches, 4 distinct tasks
●●
●● ●
●●
●
●
●●●
●
●●
●●●●●
●●
●●
●
●●●●●
●● ●
●●●●
●
●
●
● ●●
●●
● ●●
● ● ●
85 activity switches
13 task switches, 4 distinct tasks
● ●●
●●
●●
●
●
●
●●●
●●
●●●● ●
●
●
●●●
●
●
●
●
●
●
●
● ●● ● ●
●
●
●
●● ●
●
59 activity switches
20 task switches, 5 distinct tasks
● ●
●●●
●
●
●●●●
●●●
● ● ●
● ●
● ●
●●●
●●● ●
●
●
● ●
88 activity switches
17 task switches, 5 distinct tasks
●
●
●●●
●●●●●●●
●●
●●
●
●●●●
●
●
●
●
●●●●●
●
●
●
●●
●
●
●
●
●●
●●
●●●●●●●
●●
●
●●
●
●
●●●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●●
●●
●●●
●●
●
●
●
●
● ●●●
●●
●
●
●
●●●
●
●
148 activity switches
27 task switches, 4 distinct tasks
●
●●● ●● ●●
●
●
●
●
●● ●●●●●
●●● ●●
●
●●●● ●●●
●
●
●
●●● ●
●●
●● ●
108 activity switches
16 task switches, 5 distinct tasks
●
●
●
●
●
●
●●
●
●●
●
●
●● ● ●
●
● ● ●
● ●
●
●
● ●
●
66 activity switches
25 task switches
4 distinct tasks
●
●
●
● ●
●●●
●
●
●
●
●
●●●
● ●
● ●
●
●
●
●
● ●●
●
● ●
●
● ●●
●●
●
●
102 activity switches
61 task switches
6 distinct tasks
●
●
●
●●●
●
●●●●●●●●●●
●
●●
●
● ●
●
●
● ●
●
●●●●●●●
●
● ●●●●●
●●●● ● ●
●
●●● ●
●
●●
●●
●●
96 activity switches
28 task switches, 4 distinct tasks
●
●
●
●
●
●
Dev:VC
Dev:Debug
Dev:Code
Dev:Review
Dev:TestApp
Dev:Other
BrowsingRel
BrowsingUnrel
MeetInformal
MeetPlanned
Email
Planning
ReadWriteDoc
Other
34Tomorrow
Software development
tools are not amplifying
human intelligence
Study, definition and use
of context can improve
the flow of software
development work
https://www.slideshare.net/murphygc/the-need-for-context-in-software-engineering
35Tomorrow
(a) Access issue tracker and check issue number
for current work item
(b) Open terminal and run tests against changed
code (e.g., npm run tests)
(c) Use terminal to commit code (e.g., git

commit -m ‘See issue 123’)
(d) Pull any external changes from remote
repository (git pull)
(e) Push the local change to the remote repository
(git push)
Example:

Sharing changes



based on [Bradley, Fritz, Holmes, ICSE 2018]
36Tomorrow
(a) Access issue tracker and check issue number
for current work item
(b) Open terminal and run tests against changed
code (e.g., npm run tests)
(c) Use terminal to commit code (e.g., git

commit -m ‘See issue 123’)
(d) Pull any external changes from remote
repository (git pull)
(e) Push the local change to the remote repository
(git push)
Replace…
[Bradley, Fritz, Holmes, ICSE 2018]
37Tomorrow
Human: Devy, I’m done

Devy: You have uncommitted changes. 

Should I commit them?
Human: Ok
Devy: OK, I’m about to open a pull request,
should I assign Alice?
Human: OK
With Devy
[Bradley, Fritz, Holmes, ICSE 2018]
38
Summary
Thanks
to the funders of my research (NSERC in par8cular), my fantas8c
academic and industrial colleagues, post-doctoral fellows,
graduate and undergraduate students, to Mik Kersten and Robert
Elves (my co-founders at Tasktop Technologies) and to the
fantas8c team at Tasktop from whom I have learned so much.
Icons made by Freepik under a Crea8ve Commons BY 3.0 license
40Summary
Let’s put the human
as the focus of the software
development tools
that we build
Image cannot be reused.
41Intro
Bridging
Theory
Assessment of
Effectiveness
Identification of
Mismatch
Making Effective, Useful Software Development Tools
for Humans
@gail_murphyImages cannot be reused.

More Related Content

What's hot

ProDebt's Lessons Learned from Planning Technical Debt Strategically
ProDebt's Lessons Learned from Planning Technical Debt StrategicallyProDebt's Lessons Learned from Planning Technical Debt Strategically
ProDebt's Lessons Learned from Planning Technical Debt Strategically
QAware GmbH
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
tuanvu8292
 
Chapter 10 software certification
Chapter 10 software certificationChapter 10 software certification
Chapter 10 software certification
Piyush Gogia
 
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICSANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ijcsa
 
Conway corollary
Conway corollaryConway corollary
Conway corollary
Inam Soomro
 

What's hot (19)

ProDebt's Lessons Learned from Planning Technical Debt Strategically
ProDebt's Lessons Learned from Planning Technical Debt StrategicallyProDebt's Lessons Learned from Planning Technical Debt Strategically
ProDebt's Lessons Learned from Planning Technical Debt Strategically
 
Agile programming
Agile programmingAgile programming
Agile programming
 
F0262036041
F0262036041F0262036041
F0262036041
 
OW2Con 2013 - Measuring quality of software developments with Spago4Q
OW2Con 2013 - Measuring quality of software developments with Spago4QOW2Con 2013 - Measuring quality of software developments with Spago4Q
OW2Con 2013 - Measuring quality of software developments with Spago4Q
 
Software Engineering Past Papers Notes
Software Engineering Past Papers Notes Software Engineering Past Papers Notes
Software Engineering Past Papers Notes
 
A living story: measuring quality of developments in a large industrial softw...
A living story: measuring quality of developments in a large industrial softw...A living story: measuring quality of developments in a large industrial softw...
A living story: measuring quality of developments in a large industrial softw...
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Abb case study 1
Abb case study 1Abb case study 1
Abb case study 1
 
DOC
DOCDOC
DOC
 
Pm soln9416141129710
Pm soln9416141129710Pm soln9416141129710
Pm soln9416141129710
 
Comparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available MethodologyComparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available Methodology
 
Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Ch01
Ch01Ch01
Ch01
 
Chapter 10 software certification
Chapter 10 software certificationChapter 10 software certification
Chapter 10 software certification
 
factors
 factors factors
factors
 
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICSANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
 
14 software technical_metrics
14 software technical_metrics14 software technical_metrics
14 software technical_metrics
 
Conway corollary
Conway corollaryConway corollary
Conway corollary
 

Similar to Making Effective, Useful Software Development Tools

An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012
Tomo Popovic
 
Machine Learning for (DF)IR with Velociraptor: From Setting Expectations to a...
Machine Learning for (DF)IR with Velociraptor: From Setting Expectations to a...Machine Learning for (DF)IR with Velociraptor: From Setting Expectations to a...
Machine Learning for (DF)IR with Velociraptor: From Setting Expectations to a...
Chris Hammerschmidt
 
ppt_3DWM_CG-1[1] 04july.ppt of wind mill project.
ppt_3DWM_CG-1[1] 04july.ppt of wind mill project.ppt_3DWM_CG-1[1] 04july.ppt of wind mill project.
ppt_3DWM_CG-1[1] 04july.ppt of wind mill project.
PunyaGowda8
 
From Grassroots to Enterprise-wide: 10 Tips for Growing JIRA from 5 Users to ...
From Grassroots to Enterprise-wide: 10 Tips for Growing JIRA from 5 Users to ...From Grassroots to Enterprise-wide: 10 Tips for Growing JIRA from 5 Users to ...
From Grassroots to Enterprise-wide: 10 Tips for Growing JIRA from 5 Users to ...
Atlassian
 

Similar to Making Effective, Useful Software Development Tools (20)

Human-centric Software Development Tools
Human-centric Software Development ToolsHuman-centric Software Development Tools
Human-centric Software Development Tools
 
Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I...
Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I...Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I...
Performance in Geode: How Fast Is It, How Is It Measured, and How Can It Be I...
 
Toronto mule soft meetup november 2021
Toronto mule soft meetup   november 2021Toronto mule soft meetup   november 2021
Toronto mule soft meetup november 2021
 
Break up the Monolith: Testing Microservices
Break up the Monolith: Testing MicroservicesBreak up the Monolith: Testing Microservices
Break up the Monolith: Testing Microservices
 
An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012
 
OOP 2014 - Lifecycle By Design
OOP 2014 - Lifecycle By DesignOOP 2014 - Lifecycle By Design
OOP 2014 - Lifecycle By Design
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
Db migrations equal pain
Db migrations equal painDb migrations equal pain
Db migrations equal pain
 
KaoNet: Face Recognition and Generation App using Deep Learning
KaoNet: Face Recognition and Generation App using Deep LearningKaoNet: Face Recognition and Generation App using Deep Learning
KaoNet: Face Recognition and Generation App using Deep Learning
 
Machine Learning for (DF)IR with Velociraptor: From Setting Expectations to a...
Machine Learning for (DF)IR with Velociraptor: From Setting Expectations to a...Machine Learning for (DF)IR with Velociraptor: From Setting Expectations to a...
Machine Learning for (DF)IR with Velociraptor: From Setting Expectations to a...
 
Characterizing and detecting performance bugs for smartphone applications
Characterizing and detecting performance bugs for smartphone applicationsCharacterizing and detecting performance bugs for smartphone applications
Characterizing and detecting performance bugs for smartphone applications
 
Presentation: Why Usability Testing Should be Part of your Accessibility Test...
Presentation: Why Usability Testing Should be Part of your Accessibility Test...Presentation: Why Usability Testing Should be Part of your Accessibility Test...
Presentation: Why Usability Testing Should be Part of your Accessibility Test...
 
WTF is a Microservice - Rafael Schloming, Datawire
WTF is a Microservice - Rafael Schloming, DatawireWTF is a Microservice - Rafael Schloming, Datawire
WTF is a Microservice - Rafael Schloming, Datawire
 
ppt_3DWM_CG-1[1] 04july.ppt of wind mill project.
ppt_3DWM_CG-1[1] 04july.ppt of wind mill project.ppt_3DWM_CG-1[1] 04july.ppt of wind mill project.
ppt_3DWM_CG-1[1] 04july.ppt of wind mill project.
 
Monitoring and observability
Monitoring and observabilityMonitoring and observability
Monitoring and observability
 
QCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentQCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented Development
 
From Grassroots to Enterprise-wide: 10 Tips for Growing JIRA from 5 Users to ...
From Grassroots to Enterprise-wide: 10 Tips for Growing JIRA from 5 Users to ...From Grassroots to Enterprise-wide: 10 Tips for Growing JIRA from 5 Users to ...
From Grassroots to Enterprise-wide: 10 Tips for Growing JIRA from 5 Users to ...
 
Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...
 
Fifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteFifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynote
 
Computer Architecture and Organization
Computer Architecture and OrganizationComputer Architecture and Organization
Computer Architecture and Organization
 

More from Gail Murphy

More from Gail Murphy (12)

Architecting-Flow-in-SE.pdf
Architecting-Flow-in-SE.pdfArchitecting-Flow-in-SE.pdf
Architecting-Flow-in-SE.pdf
 
The Need for Context in Software Engineering
The Need for Context in Software EngineeringThe Need for Context in Software Engineering
The Need for Context in Software Engineering
 
Beyond DevOps: Finding Value through Requirements
Beyond DevOps: Finding Value through RequirementsBeyond DevOps: Finding Value through Requirements
Beyond DevOps: Finding Value through Requirements
 
Impactful SE Research: Some Do's and More Don'ts
Impactful SE Research: Some Do's and More Don'tsImpactful SE Research: Some Do's and More Don'ts
Impactful SE Research: Some Do's and More Don'ts
 
The Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find ItThe Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find It
 
Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)
 
Is Continuous Adoption in Software Engineering Achievable and Desirable?
Is Continuous Adoption in Software Engineering Achievable and Desirable? Is Continuous Adoption in Software Engineering Achievable and Desirable?
Is Continuous Adoption in Software Engineering Achievable and Desirable?
 
Acm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slidesAcm productivity-webinar-2016-slides
Acm productivity-webinar-2016-slides
 
Software Supply Chains
Software Supply ChainsSoftware Supply Chains
Software Supply Chains
 
Getting to Flow in Software Development (ASWEC 2014 Keynote)
Getting to Flow in Software Development (ASWEC 2014 Keynote)Getting to Flow in Software Development (ASWEC 2014 Keynote)
Getting to Flow in Software Development (ASWEC 2014 Keynote)
 
The Human Element
The Human ElementThe Human Element
The Human Element
 
What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?What is Software Development Productivity Anyway?
What is Software Development Productivity Anyway?
 

Recently uploaded

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 

Making Effective, Useful Software Development Tools

  • 1. Making Effective, Useful Software Development Tools Gail C. Murphy
 University of British Columbia @gail_murphy A more restrictive license has been chosen given use of licensed images. Image cannot be reused.
  • 2. 2 A quick survey… Intro When you build software, do you mostly use… command-line tools? development environments? something else?
  • 3. 3 Problem: Your productivity (and the users of what
 you produce) is limited because tools are more
 oriented at computers than humans Intro Video cannot be reused.
  • 4. 4 Example:
 Sharing changes
 
 based on [Bradley, Fritz, Holmes, ICSE 2018] (a) Access issue tracker and check issue number for current work item (b) Open terminal and run tests against changed code (e.g., npm run tests) (c) Use terminal to commit code (e.g., git
 commit -m ‘See issue 123’) (d) Pull any external changes from remote repository (git pull) (e) Push the local change to the remote repository (git push) (f) Open the commit in the version control system using GitHub web interface and open a pull request (g) Determine reviewers and assign them to pull request Intro
  • 5. 5Intro Observational study: A software developer’s work is fragmented across tasks and tools Actvities and Task Switches (Session 1) Time [minutes] Subject 0 30 60 90 120 150 180 T3 T2 T1 S4 S3 S2 S1 R4 R3 R2 R1 ● ● ● ● ● ● ●● ●●●● ● ● ● ● ● ● ●●●●● ● ● ●●● ●●● ●● ● 51 activity switches 10 task switches, 3 distinct tasks ● ● ●● ● ●●●● ● ●● ● ● ●● ●● ● ●● ●●● ●●●● ● ● ●● ● ● ● ●●● ● ● ● ●●● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●●●● ● ● ●● ● ●●●● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ●● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ●● ● ● ●● ● 166 activity switches 36 task switches, 3 distinct tasks ● ●●●● ● ● ● ●● ●●● ● ● ● ● ● ● ● ● ● ● ●● ● ●● ● ●●● ● ● ● ● ●●● ● ●● ● ● ● ● ● ● ● ● ●●●● ● ● ●●● ● ● ●● ● ● ●●● ●●● ●●● ●●●●● ● ● ●●●●●●●● ● ●●● ● ● ●● ●● ● ●● ● ●● ● ● ● ● ● ● ● ●● ● ●●●● ●●● ● ●● ● ●●●●●● ● ●● ● ●●● ● ● ● 230 activity switches 79 task switches, 4 distinct tasks ●● ●● ● ●● ● ● ●●● ● ●● ●●●●● ●● ●● ● ●●●●● ●● ● ●●●● ● ● ● ● ●● ●● ● ●● ● ● ● 85 activity switches 13 task switches, 4 distinct tasks ● ●● ●● ●● ● ● ● ●●● ●● ●●●● ● ● ● ●●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● 59 activity switches 20 task switches, 5 distinct tasks ● ● ●●● ● ● ●●●● ●●● ● ● ● ● ● ● ● ●●● ●●● ● ● ● ● ● 88 activity switches 17 task switches, 5 distinct tasks ● ● ●●● ●●●●●●● ●● ●● ● ●●●● ● ● ● ● ●●●●● ● ● ● ●● ● ● ● ● ●● ●● ●●●●●●● ●● ● ●● ● ● ●●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ●● ●●● ●● ● ● ● ● ● ●●● ●● ● ● ● ●●● ● ● 148 activity switches 27 task switches, 4 distinct tasks ● ●●● ●● ●● ● ● ● ● ●● ●●●●● ●●● ●● ● ●●●● ●●● ● ● ● ●●● ● ●● ●● ● 108 activity switches 16 task switches, 5 distinct tasks ● ● ● ● ● ● ●● ● ●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● 66 activity switches 25 task switches 4 distinct tasks ● ● ● ● ● ●●● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ●● ● ● 102 activity switches 61 task switches 6 distinct tasks ● ● ● ●●● ● ●●●●●●●●●● ● ●● ● ● ● ● ● ● ● ● ●●●●●●● ● ● ●●●●● ●●●● ● ● ● ●●● ● ● ●● ●● ●● 96 activity switches 28 task switches, 4 distinct tasks ● ● ● ● ● ● Dev:VC Dev:Debug Dev:Code Dev:Review Dev:TestApp Dev:Other BrowsingRel BrowsingUnrel MeetInformal MeetPlanned Email Planning ReadWriteDoc Other [Meyer, Fritz, Murphy, Zimmermann, FSE 2014]
  • 6. 6 Solution: Build software development tools around how humans work Intro Photo courtesy of #WOCinTech Photo courtesy of #WOCinTech
  • 7. 7Intro Bridging Theory Assessment of Effectiveness Identification of Mismatch Making Effective, Useful Software Development Tools for Humans Images cannot be reused.
  • 9. 9Intro Theories can 
 be simple Tomorrow Summary # $ é
  • 11. 11Whyline [Ko & Myers, CHI 2004] Identification of Mismatch Bridging Theory Assessment of Effectiveness Positive Case: Whyline Debugging tools do not 
 support inquisitive nature of activity Directly support hypothesizing:
 why did and why didn’t questions Comparative lab study shows
 Whyline reduces debugging time by
 a factor of ~8
  • 12. 12 Identification of Mismatch Positive Case: Whyline Debugging:
 Developer has to
 work in terms of program’s
 execution model Image from: [Ko & Myers, CHI 2004]
  • 13. 13Positive Case: Whyline Bridging Theory Existing tools lack
 support for
 hypothesizing Directly support
 why did and
 why didn’t questions Image from: [Ko & Myers, CHI 2004]
  • 14. 14Positive Case: Whyline Assessment of Effectiveness Comparative lab study shows
 Whyline reduces debugging time by
 a factor of ~8 Image from: [Ko & Myers, CHI 2004]
  • 15. 15Whyline [Ko & Myers, CHI 2004] Identification of Mismatch Bridging Theory Assessment of Effectiveness Positive Case: Whyline Debugging tools do not 
 support inquisitive nature of activity Directly support hypothesizing:
 why did and why didn’t questions Comparative lab study shows
 Whyline reduces debugging time by
 a factor of ~8
  • 17. 17Mylyn [Kersten & Murphy, FSE 2006] Identification of Mismatch Bridging Theory Assessment of Effectiveness Positive Case: Mylyn Development environments 
 cause developers information overload
 and repetitive activities Developers work on tasks and use 
 episodic memory to recall tasks Field study shows that productivity
 improves with Mylyn use
  • 18. 18 Identification of Mismatch Positive Case: Mylyn Only some information on 
 screen is relevant for a task
 
 Human semantic 
 memory is taxed
  • 20. 20Positive Case: Mylyn Leverage episodic memory
  • 21. 21Positive Case: Mylyn Assessment of Effectiveness Longitudinal field study (2005)
 16 accepted users (99 started study)
 13/16 user’s edit ratio improved 
 with Mylyn
 
 Adoption (today) 2 million downloads per month
 ~ > 500K users daily
  • 22. 22Mylyn [Kersten & Murphy, FSE 2006] Identification of Mismatch Bridging Theory Assessment of Effectiveness Positive Case: Mylyn Development environments 
 cause developers information overload
 and repetitive activities Developers work on tasks and use 
 episodic memory to recall tasks Field study shows that productivity
 improves with Mylyn use
  • 24. 24 Defect Prediction Identification of Mismatch Bridging Theory Assessment of Effectiveness Negative Case:
 Defect Prediction Developers don’t know where
 to put effort on preventing bugs <None> Google studies putting defect
 prediction into code reviews: 
 no identifiable behaviour change
  • 25. 25 Identification of Mismatch Negative Case:
 Defect Prediction Defects found in the field are costly to fix Code reviews are costly to perform Can developer time be focused on parts of code most likely to contain defects?
  • 26. 26Negative Case:
 Defect Prediction Bridging Theory <none>
 
 An idea that has had substantial study…
 
 Predict areas of code that are bug-prone using aspects of how the code was developed and metrics code exhibits
  • 27. 27Negative Case:
 Defect Prediction Assessment of Effectiveness Google study: Embedded defect prediction results into code review tool [Lewis et al, ICSE 2013]
 
 “This file has been flagged as bug-prone … based on the number of changeless it has been in with ‘bug’ attached…Please review carefully” No effect on developers…
  • 28. 28 Defect Prediction Identification of Mismatch Bridging Theory Assessment of Effectiveness Negative Case:
 Defect Prediction Developers don’t know where
 to put effort on preventing bugs <None> Google studies putting defect
 prediction into code reviews: 
 no identifiable behaviour change
  • 30. 30 “Even though the UNIX system introduces a number of innovative programs and techniques, no single program or idea makes it work well. Instead, what makes it effective is the approach to programming, a philosophy of using the computer. […] at its heart is the idea that the power of a system comes more from the relationships among programs than from the programs themselves.”
  • 31. 31 Humans can visualize, understand and reason about data pipelines sort file1 | uniq > file2
  • 33. 33Tomorrow Why do many software developers still have to work
 fundamentally the same way as 30 years ago? Actvities and Task Switches (Session 1) Time [minutes] Subject 0 30 60 90 120 150 180 T3 T2 T1 S4 S3 S2 S1 R4 R3 R2 R1 ● ● ● ● ● ● ●● ●●●● ● ● ● ● ● ● ●●●●● ● ● ●●● ●●● ●● ● 51 activity switches 10 task switches, 3 distinct tasks ● ● ●● ● ●●●● ● ●● ● ● ●● ●● ● ●● ●●● ●●●● ● ● ●● ● ● ● ●●● ● ● ● ●●● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●●●● ● ● ●● ● ●●●● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ●● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ●● ● ● ●● ● 166 activity switches 36 task switches, 3 distinct tasks ● ●●●● ● ● ● ●● ●●● ● ● ● ● ● ● ● ● ● ● ●● ● ●● ● ●●● ● ● ● ● ●●● ● ●● ● ● ● ● ● ● ● ● ●●●● ● ● ●●● ● ● ●● ● ● ●●● ●●● ●●● ●●●●● ● ● ●●●●●●●● ● ●●● ● ● ●● ●● ● ●● ● ●● ● ● ● ● ● ● ● ●● ● ●●●● ●●● ● ●● ● ●●●●●● ● ●● ● ●●● ● ● ● 230 activity switches 79 task switches, 4 distinct tasks ●● ●● ● ●● ● ● ●●● ● ●● ●●●●● ●● ●● ● ●●●●● ●● ● ●●●● ● ● ● ● ●● ●● ● ●● ● ● ● 85 activity switches 13 task switches, 4 distinct tasks ● ●● ●● ●● ● ● ● ●●● ●● ●●●● ● ● ● ●●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● 59 activity switches 20 task switches, 5 distinct tasks ● ● ●●● ● ● ●●●● ●●● ● ● ● ● ● ● ● ●●● ●●● ● ● ● ● ● 88 activity switches 17 task switches, 5 distinct tasks ● ● ●●● ●●●●●●● ●● ●● ● ●●●● ● ● ● ● ●●●●● ● ● ● ●● ● ● ● ● ●● ●● ●●●●●●● ●● ● ●● ● ● ●●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ●● ●●● ●● ● ● ● ● ● ●●● ●● ● ● ● ●●● ● ● 148 activity switches 27 task switches, 4 distinct tasks ● ●●● ●● ●● ● ● ● ● ●● ●●●●● ●●● ●● ● ●●●● ●●● ● ● ● ●●● ● ●● ●● ● 108 activity switches 16 task switches, 5 distinct tasks ● ● ● ● ● ● ●● ● ●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● 66 activity switches 25 task switches 4 distinct tasks ● ● ● ● ● ●●● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ●● ● ● 102 activity switches 61 task switches 6 distinct tasks ● ● ● ●●● ● ●●●●●●●●●● ● ●● ● ● ● ● ● ● ● ● ●●●●●●● ● ● ●●●●● ●●●● ● ● ● ●●● ● ● ●● ●● ●● 96 activity switches 28 task switches, 4 distinct tasks ● ● ● ● ● ● Dev:VC Dev:Debug Dev:Code Dev:Review Dev:TestApp Dev:Other BrowsingRel BrowsingUnrel MeetInformal MeetPlanned Email Planning ReadWriteDoc Other
  • 34. 34Tomorrow Software development tools are not amplifying human intelligence Study, definition and use of context can improve the flow of software development work https://www.slideshare.net/murphygc/the-need-for-context-in-software-engineering
  • 35. 35Tomorrow (a) Access issue tracker and check issue number for current work item (b) Open terminal and run tests against changed code (e.g., npm run tests) (c) Use terminal to commit code (e.g., git
 commit -m ‘See issue 123’) (d) Pull any external changes from remote repository (git pull) (e) Push the local change to the remote repository (git push) Example:
 Sharing changes
 
 based on [Bradley, Fritz, Holmes, ICSE 2018]
  • 36. 36Tomorrow (a) Access issue tracker and check issue number for current work item (b) Open terminal and run tests against changed code (e.g., npm run tests) (c) Use terminal to commit code (e.g., git
 commit -m ‘See issue 123’) (d) Pull any external changes from remote repository (git pull) (e) Push the local change to the remote repository (git push) Replace… [Bradley, Fritz, Holmes, ICSE 2018]
  • 37. 37Tomorrow Human: Devy, I’m done
 Devy: You have uncommitted changes. 
 Should I commit them? Human: Ok Devy: OK, I’m about to open a pull request, should I assign Alice? Human: OK With Devy [Bradley, Fritz, Holmes, ICSE 2018]
  • 39. Thanks to the funders of my research (NSERC in par8cular), my fantas8c academic and industrial colleagues, post-doctoral fellows, graduate and undergraduate students, to Mik Kersten and Robert Elves (my co-founders at Tasktop Technologies) and to the fantas8c team at Tasktop from whom I have learned so much. Icons made by Freepik under a Crea8ve Commons BY 3.0 license
  • 40. 40Summary Let’s put the human as the focus of the software development tools that we build Image cannot be reused.
  • 41. 41Intro Bridging Theory Assessment of Effectiveness Identification of Mismatch Making Effective, Useful Software Development Tools for Humans @gail_murphyImages cannot be reused.