Machines today can write software, compose music, create art, predict events, and listen and learn from humans. Notably, automation also plays an essential role in high performing software development teams by automating tasks and improving developer productivity. But automation can’t (yet) replace human imagination and the intelligence that arises when multiple great minds work together to solve the complex problems that are inherent in software and systems design. In this talk, we will review how automation in modern software development has evolved and the many benefits it has brought. We will then explore how a deeper understanding of the developer experience points to untapped possibilities for innovating automation for software engineering, focusing on how they can:
support developers to manage the cognitive complexity of today’s systems,
ease and enhance collaboration by speeding up feedback loops, and
help developers to get in and stay in a state of flow when developing.
We will conclude by discussing how we can measure the impact of new innovations on the developer experience, and how doing so will drive actionable change and empower developers to do their best work joyfully.
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
ASE Keynote 2022: From Automation to Empowering Software Developers
1. From Automating Software Engineering
to Empowering Developers
Margaret-Anne (Peggy) Storey
Automated Software Engineering Conference, Oct 12th 2022
mastorey@gmail.com
@margaretstorey
Special Thanks
Arty Starr
Alessandra Milanit
2. Automation in Software Engineering - Through the Developersʼ Eyes
History of automation in software engineering
Future innovations and research
How to evaluate the impact of automation on developers
3. Automation in Software Engineering - Through the Developersʼ Eyes
History of automation in software engineering
Future innovations and research
How to evaluate the impact of automation on developers
5. “while Humanity will be amusing itself, or enjoying cultivated leisure
… or making beautiful things, or reading beautiful things, or simply
contemplating the world with admiration and delight,
machinery will be doing all the necessary and unpleasant work.”
Oscar Wilde, The Soul of Man Under Socialism (1891)
@margaretstorey
6. Automation
Automation term coined, Henry Ford, Detroit
1946
Reduce human intervention in processes, by
predetermining decision criteria, subprocess
relationships and related actions, and
embodying those predeterminations in
machines.
Groover, Mikell (2014). Fundamentals of Modern
Manufacturing: Materials, Processes, and Systems.
8. Advantages of automation (in general)
Faster production
Cheaper/safer
Higher quality
Predictable processes/products
Less tedious repetitive work
Simpler tasks
Faster feedback
More time for creative work
8
@margaretstorey
9. Ironies of automation
May require different competencies and skills
Any errors may be multiplied
May not anticipate all contingencies
Retrofitting automation is complex
Semi-automated tasks rely on people
People are poor monitors
9
@margaretstorey
22. Advantages of automation in software engineering
Increased productivity
High performing teams
Maintainability
Improved quality
Predictability
Flexibility
Adaptability
Fewer errors
Faster feedback
Fail fast
Experimentation and learning
Happier developers
22
@margaretstorey
23. Disadvantages of automation on the developers?
Misuse/abuse/overuse of automation?
Increased skill/competencies needed?
Added complexity?
Automation as technical debt?
Anything else?
23
@margaretstorey
24. Continuous Integration
Advantages
Improves productivity speed
and quality [Vasilescu et al.]
Traceability
[Stahl et al.]
Happier developers
[Williams]
Disadvantages
Increased cognitive load
maintaining build code [Pinto et al.]
Difficulties attracting
developers [Gupta et al.]
Failing builds lower
developer morale [Souza et al.]
24
@margaretstorey
26. Automation in Software Engineering - Through the Developersʼ Eyes
History of automation in software engineering
Future innovations and research
How to evaluate the impact of automation on developers
27. Can we fully automate software engineering?
@margaretstorey
28. What is software?
What it is
What it does
What people do with it
What it can be altered to do
28
@margaretstorey
29. What is software?
“Shared theories about problem and solution domains
that are in the minds of developers” [Peter Naur, 1985]
“Every personʼs mental model is incomplete and out of date
but we need them all!” [Jessica Kerr, Explore DDD Conference, 2018]
“People are part of the code” [Jean Yang, QCon Panel, 2021]
29
@margaretstorey
30. Software is a dynamic, living, learning system comprised of
people + code + tools + environment
and the exponential relationships between all of these parts
@margaretstorey
31. Since we canʼt fully automate software development…
what can we do and what should we do next?
@margaretstorey
33. Three types of innovations…
Incremental
innovations
Breakthrough
innovations
Experiential
innovations
33
@margaretstorey
34. Experiential innovation and software engineering automation
Minimize Pains
Maximize Gains
Not just automate, but augment what developers do
to make them more productive and to improve their experience
34
@margaretstorey
35. The SPACE of developer productivity:
Thereʼs more to it than you think
S – Satisfaction & Well Being
P – Performance
A – Activity
C – Collaboration & Communication
E – Efficiency & Flow
Nicole Forsgren, Margaret-Anne Storey, Chandra Maddila, Thomas Zimmermann, Brian Houck, and Jenna Butler.
2021. The SPACE of Developer Productivity: There's more to it than you think. ACM Queue. 2021 @margaretstorey
36. Cognitive
Complexity
Three core dimensions of developer experience
36
Fast
Feedback
Flow and
Fulfillment
@margaretstorey
Michaela Greiler, Margaret-Anne Storey, Abi Noda: An Actionable Framework for Understanding
and Improving Developer Experience, TSE 2022.
37. What is the net effect of automation on cognitive load?
How does automation impact developer knowledge and skill?
Will the automation create technical debt?
Can automation support learning for reuse?
Cognitive complexity ~ research opportunities
37
@margaretstorey
38. Fast feedback ~ research opportunities
Do automation tools provide actionable and timely information?
How can automation improve feedback between developers?
Is faster always better?
38
@margaretstorey
39. Developer Flow and Fulfillment
39
Flow is a state of mind, a holistic sensation, that people feel when they
act with total involvement [Mihaly Csikszentmihalyi]
Clear goals
Total sense of involvement
Loss of self-consciousness
Feeling of control and being in control
Altered sense of time
Above average skills and challenges
40. Developer Flow and Fulfillment
40
Flow is a state of mind, a holistic sensation, that people feel when they
act with total involvement [Mihaly Csikszentmihalyi]
Clear goals
Total sense of involvement
Loss of self-consciousness
Feeling of control and being in control
Altered sense of time
Above average skills and challenges
41. Developer Flow and Fulfillment ~ research opportunities
Can automation lead to boredom and reduce the joy in programming?
How to design automation that enhances flow experiences?
How automation can enhance flow across a team?
How can AI be an effective “member” on a software team?
41
43. “At the end of the day, you have to
make a judgment decision yourself,
you know. All teams rely on all sorts
of algorithms and systems, but at the
end of the day, a human has to
decide when to push a button or
when to make a move. If youʼre
asking for why the mistakes happen,
or for someone to point the finger at,
then you should point it firmly at me.”
Jimmy Spithill, Skipper of Oracle
Team USA, US Americaʼs Cup 2017
44. Automation in Software Engineering - Through the Developersʼ Eyes
History of automation in software engineering
Future innovations and research
How to evaluate the impact of automation on developers
45. “No matter how many technologies you implement,
the weakest link will always be the human factor”
https://www.contino.io/files/Introduction-to-DevSecOps-Best-Practices-for-Adoption.pdf
46. Research methods - very few directly involve “humans”
https://bit.ly/ase2022papers
46
Red research methods
involve “people”
Data
Lab
Field
Survey
Theory
49. Experience sampling method for flow
Flow Insight is a tool for helping developers get in and stay in flow
Flow Insight evaluates and presents flow metrics
that are associated with the code
Measuring flow
49 https://flowinsight.com/
(Arty Starr)
50. The dimensions of developer experience may be in tension
Remove friction,
empower flow
Reduce cognitive
complexity
Improve velocity of
feedback
50
51. “while Humanity will be amusing itself, or enjoying cultivated leisure
… or making beautiful things, or reading beautiful things, or simply
contemplating the world with admiration and delight,
machinery will be doing all the necessary and unpleasant work.”
Oscar Wilde, The Soul of Man Under Socialism (1891)
@margaretstorey
52. Takeaways
Study developers for inspiration
Consider how your solutions can empower the
developer experience
Use research methods that study the impact on developers
mastorey@gmail.com
@margaretstorey
https://bit.ly/ase2022papers