Keynote from Automated Software Engineering 2020. (See https://www.cs.ubc.ca/~murphy for video)
Brian Randell described software engineering as “the multi-person development of multi-version programs”. David Parnas has expressed that this “pithy phrase implies everything that differentiates software engineering from other programming”. How does current software engineering research compare against this definition? Is there currently too much focus on research into problems and techniques more associated with programming than software engineering? Are there opportunities to use Randell’s description of software engineering to guide the community to new research directions? In this talk, I will explore these questions and discuss how a consideration of the development streams used by multiple individuals to produce multiple versions of software opens up new avenues for impactful software engineering research.
5. Your Full Title Here
PUT A TEXT DOLOR SIT AMET, FULL
SCREEN TITLE HERES
Eget provident et, enim ex erat massa
vitae luctus et, ultricies sit praesent
commodo felis ac purus. Sociosqu nec,
montes maecenas elit, convallis magna
elit habitant at, adipiscing arcu aenean
tellus, quiz turpis mauris elit dolor et at.
Ut erat non quam eligendi cubilia libero.
Mizuno
but perhaps there is
too much focus on
specific topics
and not enough on
what makes software
engineering unique
@retrosquares via Twenty20
4
9. Is software engineering research
addressing
software engineering problems?
Opportunities to investigate
MULTI-PERSON
MULTI-VERSION
development
@gail_murphy
to improve
SOFTWARE ECOSYSTEMS
And SOFTWARE PROJECTS
8
11. Is software engineering research addressing software
engineering problems?
What problems
are being
addressed?
Multi-version,
multi-person:
Project
What’s missing?
1 2
34
Multi-version,
multi-person:
Ecosystem
12. Is software engineering research addressing software
engineering problems?
What problems
are being
addressed? 1 2
34
What’s missing?
Multi-version,
multi-person:
Ecosystem
Multi-version,
multi-person:
Project
19. Is software engineering research addressing software
engineering problems?
What problems
are being
addressed? 1
Software engineering researchers
tend to focus on a narrow set of
topics
n
multi
multi-
b
Multi-person, multi-version
dimensions appear to
be understudied
20. Is software engineering research addressing software
engineering problems?
What problems
are being
addressed?
Multi-version,
multi-person:
Ecosystem1 2
34
What’s missing?
Multi-version,
multi-person:
Project
23. multi-person multi-version
Which clients will be impacted by a version upgrade?
e.g., [SR08, HDG18]
Is there an ideal component size?
e.g., [MC+04, BP84]
Can version differences optimize analyses?
e.g., [SW03, KR11]
What information is exchanged? When? Why?
e.g., [KDV07, BP+10]
How should teams be organized?
e.g., [BN+09, Mockus10]
What are optimal forms of communication?
e.g., [GPS04, TS10]
22
24. multi-person multi-version&
Is there an optimal length for software supply chains?
What factors lead teams to develop high-quality components?
What overhead might exist when using a component?
23
26. 1
Number of releases in public repositories
increased from 16.6 million to 28.4 million
On average, developers had access to more
than 21,488 releases every day
Image and data courtesy of Sonatype and partners
Multi-version software is a reality
25
27. 1
Image and data courtesy of Sonatype and partners
Studying multi-version components
26
29. 1 Ask questions about multi-version
multi-person development
Do components with more active developers correlate with faster mean time to update?
The top 20% of teams by size (11 or more developers contributing per month)
have 50% faster mean time to update and release 2.6 times more frequently.
Do components with higher release frequency and higher monthly commits correlate
with faster mean time to update?
The top 20% of teams by commits per month had 26% faster mean time
to update and 83% faster release frequency.
28
30. multi-person multi-version&
Is there an optimal length for software supply chains?
What factors lead teams to develop high-quality components?
What overhead might exist when using a component?
29
33. When?
Social interactions
Ratioofusercomponentprojectswith
socialinteractions
Number of user component projects
Components that often have
social interactions (21% of
analyzed Maven projects)
Components that sometimes
have social interactions (15% of
analyzed Maven projects)
Vault
Components that rarely have
social interactions (64% of
analyzed Maven projects)
JUnit
The more popular a component, the
less likely it is that developers of a user
project will get involved
32
2
34. Social interactions
introduction of technical dependence
Icons represent different social interactions
(e.g., triangles are issues, etc.)
Dark icons are from dependent project
Light icons are from user project
How?
33
2
35. Social interactions
How?
In 46% of Maven projects, technical
dependency precedes social interactions
No strong trend of whether
social interactions precede
or succeed technical
dependency. But when
precede, indications
community between user
and component project is
stronger.
34
2
36. Why?
Social interactions
Sample Codes Maven RubyGems
e.g., Forward report problem (issue / comment) 26% 14%
e.g., Forward feature request (issue / comment) 20% 8%
e.g., Backward help solve issue (comment / pull-
request)
10% 0%
e.g., Backward propose to use component (pull-request) 0% 4%
Qualitative analysis of 50 pairs from each community
Social interacmons are frequently
inimated for issues or feature
requests.
Surprisingly, we found that some
social interactions are initiated by
developers of the component
projects.
What overhead might exist when using a component?
35
2
37. Is software engineering research addressing software
engineering problems?
Multi-version,
multi-person:
Ecosystem2
Ecosystem analysis can help
identify trends that can characterize
properties of software
e.g., how fast component dependencies
might be updated
e.g., how much interaction may be
needed with a dependent project
38. Is software engineering research addressing software
engineering problems?
What problems
are being
addressed?
Multi-version,
multi-person:
Ecosystem1 2
34
What’s missing?
Multi-version,
multi-person:
Project
39. Multi-person, multi-version development: Project
Ecosystem analysis provides interesting insights, even for single projects.
Single project analysis is needed to help individual projects.
38
41. Moodle is an open-source
learning platform
Let’s consider feature
request MDL-68320
40
42. Lifecycle of MDL-68320
Apr 2, Issue created for feature request
SB
Apr 8, Changes to issue
SB
Apr 14, Changes to issue
AN
M
ay 21, Pull
SL
M
ay 21, Testing instructions
SL
M
ay 21, CIBot
SL
June 3, Integration review
SA
> 60 events based on issue and git logs
~10 different individuals involved
2 months and 6 days open to close of issue
41
44. Project-level questions
Is our development process efficient?
Where is most time spent when developing a feature?
Spec
Design
Imp
Test
CI
[sb, 2 min]
[sb, 5 min]
… [sb, 10 min]
[br, 30 min]
…
[an, 31 min]
[sl, 43 min]
…
[sl, 55 min]
…
Apr 2
Jun 8
42
45.
46. Value
Stream Maps
Lean management method to
opmmize taking a product or
service from beginning through
to the customer
hrp://courses.washington.edu/ie337/Value_Stream_Mapping.pdf
44
48. Value Stream Maps in SE
Need to capture informamon flow
Need to analyze and visualize
Need to connect real data
FLOW-assisted value stream mapping in the early phases
of software development, JSS, 2016
Poppendieck &
Poppendieck
46
49. surviving the
“Turning Point of the
Age of Software”
F L O W F R A M E W O R K
- M. Kersten
Focus on end-to-end sovware value stream
flows to enable correlamon
to business outcomes
47
53. Is software engineering research addressing software
engineering problems?
3 Multi-version,
multi-person:
Project
Identifying, analyzing and managing value streams of development can
provide insights into development process
54. Is software engineering research addressing software
engineering problems?
What problems
are being
addressed?
Multi-version,
multi-person:
Ecosystem1 2
34
What’s
missing?
Multi-version,
multi-person:
Project
60. Can we distinguish which information is
addressing different development stages?
e.g., represent design [VF+2019]
58
61. Connecting breadcrumbs
Where can automation help developers
and leave breadcrumbs about the
development process?
e.g., git hooks that take a branch named
after an issue and add link to issue
in commit message
e.g., a bot that recognizes a question
in Slack is a request for information
about design of a feature request and
tracks who developer is waiting on
and for how long
59
62. Factors for tools to enable development flow
identification and tracking
netus nibh aliquet, porttitor ligula justo
libero vivamus porttitor dolor, conubia
mollit. Sapien nam suspendisse,
tincidunt eget ante tincidunt, eros in
auctor fringilla praesent at diam
netus nibh aliquet, porttitor ligula justo
libero vivamus porttitor dolor, conubia
mollit. Sapien nam suspendisse,
tincidunt eget ante tincidunt, eros in
auctor fringilla praesent at diam
netus nibh aliquet, porttitor ligula justo
libero vivamus porttitor dolor, conubia
mollit. Sapien nam suspendisse,
tincidunt eget ante tincidunt, eros in
auctor fringilla praesent at diam
connecting
60
@dantes1401 via Twenty20
63. Is software engineering research addressing software
engineering problems?
4
What’s
missing?
Open source projects tend to lack
Information and links needed to
track development flow
Automation could help
track and connect flow
Information and benefit
developers
64. To the many undergraduate and graduate
students, post-docs, and colleagues who have
contributed to how I think about software
engineering and research
Thanks
To Mik Kersten and my colleagues at Tasktop
for the many great discussions, collaborations
and insights
To the organizers of ASE 2020 for the kind
invitation to present this talk
65. Is software engineering research addressing software
engineering problems?
What problems
are being
addressed?
Multi-version,
multi-person:
Ecosystem1 2
34
What’s missing?
Multi-version,
multi-person:
Project
66. Is software engineering research addressing software
engineering problems?
1
Lack of study
of multi-person
multi-version
development
1 2
34
67. Is software engineering research addressing software
engineering problems?
1
Lack of study
of multi-person
multi-version
development
Ecosystem
analysis
helps identify
trends
1 2
34
68. Is software engineering research addressing software
engineering problems?
1
Lack of study
of multi-person
multi-version
development
Ecosystem
analysis
helps identify
trends
New
opportunities
for project
analysis
1 2
34
69. Is software engineering research addressing software
engineering problems?
1
Lack of study
of multi-person
multi-version
development
Ecosystem
analysis
helps identify
trends
New
opportunities
for project
analysis
Opportunities to
enhance open
source to support
analysis
1 2
34
70. Is software engineering research
addressing
software engineering problems?
Opportunities to investigate
MULTI-PERSON
MULTI-VERSION
development
@gail_murphy
to improve
SOFTWARE ECOSYSTEMS
And SOFTWARE PROJECTS