In this talk, I explore what productivity means to software developers, how we might track the value that is delivered in software produced by developers and how we might begin to think about measuring the productive delivery of effective software.
Keynote at International Conference on Performance Engineering (ICPE) 2020.
10. software has gone
from largely single
artifacts to multiple
libraries, open
source, supply
chains, etc.
10In less than the lifetime of a
Galápagos tortoise…
largely
self-contained
highly
Interconnected
11. GitHub project
dependencies
11
21, 448
new open source
releases each day *
11.7 sec
time between code
deploys at Amazon
(2016, web)
10B
average weekly
npm package
downloads *
Challenge: Development is continuous
and complex
*Source: State of DevOps Report 2019
14. Effective
“successful in producing a desired or
intended result” (online dictionary)
14
for software, effective often ≈ value
“Lean product management
practices help teams ship
features that customers actually
want, more frequently. This faster
delivery cycle lets teams
experiment, creating a feedback
loop with customers.”
State of DevOps Report 2017
“Key Finding 1: Product features are
seen as the core of value creation…
Focus on features and launching
them as fast as possible can cause
problems from the perspective of
customer value”
Kauppinen et al, RE Conf, 2009
but
15. 15
If the value of software is related
to features … what is a feature?
Let’s look at a few large open
source systems…
16. 16
If the value of software is related
to features … what is a feature?
Let’s look at a few large open
source systems…
Open source system for automating
deployment, scaling and management of
containerized
applications
68k+ commits
415 releases
1760 contributors
17. 17
If the value of software is related
to features … what is a feature?
Look at large open source
systems…
Labels in issues are used to
identify features
18. 18
If the value of software is related
to features … what is a feature?
Look at large open source
systems…
Open source learning platform
90k+ commits
303 releases
447 contributors
19. 19
If the value of software is related
to features … what is a feature?
Look at large open source
systems…
No clear links between
epics and features
23. 23
Photo courtesy of #WOCinTech
When do developers perceive
themselves to be productive
and unproductive?
Undertook series of studies
of professional developers
involving surveys,
observations, monitoring
Joint work with A. Meyer,
T. Fritz, T. Zimmerman
24. 24
379 developers answered the
question…
I have a productive day when I…
53% 50% 22%
20%
complete
tasks or goals
have no/few
interruptions
or distractions
have no
meetings
have clear
goals
Meyer et al, FSE 2014
25. 25
Developers want to measure
productivity differently
activities
achievements
value
time per task ratio
27%
18%
17%
16%
Meyer et al, FSE 2014
27. 27
Challenge: context switches are
costly and lower productivity
The tools developers are using
are compounding not lowering
accidental complexity
Developers lose focus and flow
32. Mylyn tool
32
Leverages a developer’s episodic memory to enable focus
on essential complexity
Active
taskJust the
code
accessed
as part of
this task
Kersten & Murphy, FSE 2006
33. Mylyn tool
33
Leverages a developer’s episodic memory to enable focus
on essential complexity
Switch to
another
taskCode display
is changed to
code tracked
as part of new
active task
Developer can focus and flow is
improved. Productivity improves.
34. Strategy 2:
Track flow through value streams of development
34
Focus on end-to-end
software value
stream flows …
to enable correlation
to business
outcomes
38. Thanks
to…
Thomas Fritz, Mik Kersten, Andre Meyer,
Marc Palyart, Tom Zimmermann, wonderful
graduate students, great colleagues at
Tasktop Technologies, funders,
and the organizers of ICPE 2020
40. Some pointers for more information…
Productivity and Software Developers
Meyer, Murphy, Fritz, Zimmermann. Developers’ diverging perceptions of productivity. Rethinking Productivity in Software Engineering, 2019.
Meyer, Fritz, Murphy, Zimmermann. Software developers’ perceptions of productivity. FSE 2014, pp. 19-29.
Meyer, Barton, Murphy, Zimmermann, Fritz. The work life of developers: Activities, switches and perceived productivity. TSE 2017.
Software Developer Needs and Tools
Kersten and Murphy. Using task context to improve programmer productivity. FSE 2006.
Murphy. Beyond integrated development environments: Adding context to software development, ICSE 2019.
Murphy. Getting to flow in software development. Onward, 2014.
Murphy, Kersten, Robillard, Cubranic. The emergent structure of development tasks, ECOOP, 2005.
Software and Value Streams
Kersten. Project to Product: How to Survive and Thrive in the Age of Digital Disruption with the Flow Framework. IT Revolution. 2018.
Murphy and Kersten. Towards bridging the value gap in Dev Ops. DevOps 2019.