We often optimize our software for performance, but what also optimizing our development teams for happiness? Take a look at how the tools you choose for your development team can impact developer happiness, and learn how to keep your teams happier and more productive.
*The graph on slide 3 is fabricated data, because studies also show that people are more likely to believe statements accompanied by scientific data.*
9. University of Warwick
Study
• People treated with positive stimuli were, on average, 12%
more productive than the control group
• People treated with negative stimuli were similarly less
productive
• Still, hard to quantify what we consider ‘negative’ and ‘positive’
• tinyurl.com/warwickhappiness
11. Happiness Metrics
• How do you feel?
• What are you doing right now?
• Do you have to be doing what you’re doing?
• How productive are you being right now?
• Do you want to do what you’re doing?
13. Fun Fact
Commuting to and from work is
typically the unhappiest time in a
person’s day
14. The Real Happiness Equation
autonomy
+
no interruptions
+
no time pressure
happiness =
15. – DR DANIEL SGROI, UNIVERSITY OF WARWICK
“The driving force seems to be that
happier workers use the time they
have more effectively, increasing the
pace at which they can work without
sacrificing quality.”
16. There are several areas within
development where we can
maximize for happiness ✨
37. – MELVIN CONWAY
“Organizations which design systems
are constrained to produce designs
which are copies of the
communication structures of these
organizations.”
38. Conway’s Law
Any piece of software reflects
the organizational structure that
produced it
39. If you have three engineering teams
working on one piece of software,
you’ll probably end up with three
pieces of software
56. • The team shares responsibility for deployment, and each
engineer is empowered to control the flow of his or her code
into production
• Your customers are always getting the best product you have
to offer
64. Urgency is a measure of how quickly
the task must be completed.
65. A P0 incident is urgent, and
communication for this incident
requires interrupting people in order to
accomplish the task
66. – NICO APPEL, TIGHTOPS.COM
“You pay for urgency with
interruption; and you should
understand whether or not you are
getting a good deal.”
67. Have policies, training, and docs that
allow each developer to solve
incidents assigned to them.
68. Incident 💥
PagerDuty wakes me up 🚨
I wake my boss up, because I don’t have access
to production logs without his sign off 💩
My boss opens a ticket with the NOC 😫
NOC gives me temporary log/deploy access ✅
I fix stuff 🐛
I merge and manually trigger Jenkins 👔 tasks to deploy
Verification 🏆
69. With a better system in place, I can
have more autonomy and reduce
the duration of the interruption
70. PagerDuty wakes me up 🚨
I fix stuff 🐛
I merge my fix and it deploys automatically 🔁
Verification 🏆
Incident 💥
Sleep 😴
Post-mortem 📖
71. – CAPTAIN OBVIOUS
“If an engineer is on call, make sure
he or she has access to logs, metrics,
and the ability to deploy new code to
production.”