The tech landscape is changing faster than ever, and this trend is only accelerating. How do technical people grow when the world is changing faster than you can finish your next cup of coffee? How does one keep up? What should you learn? Are there things we can focus our learning efforts on besides just the next tech flavour of the month? This talk will explore some areas of learning that technical people might not intentionally consider. These areas focus on higher-level concerns, with slower rates of change, which can help technical people develop into more well-rounded individuals.
8. @jancowol
But I’m a developer, I know all about systems!
How about the system(s) you’re part of?
9. @jancowol
–W. Edwards Deming
“The fact is that the system that people work in and the interaction
with people may account for 90 or 95 percent of performance.”
10. @jancowol
Why Systems Thinking?
• Understanding that changes in "isolated" parts can cause unexpected
changes in the system's behaviour.
• In complex-adaptive systems, cause and effect are non-linear.
• Contextual awareness of the larger system can provide more options
for solving problems. Not every problem is a code problem.
11. @jancowol
Seeing the System
• Why does a part exist / What purpose does it serve?
• How does it interact with other parts?
12. @jancowol
A great systems
thinker once said:
"You're here because you know
something. What you know you
can't explain, but you feel it.
You've felt it your entire life, that
there's something wrong with
the world. You don't know what
it is, but it's there, like a splinter
in your mind, driving you mad."
- Morpheus
14. @jancowol
Communication
• Physical system interactions take the form of energy transfers.
• In human systems, people make meaning from these energy transfers.
• Also referred to as information.
• When information is exchanged, we call it communication.
15. @jancowol
Communication
• Software has no mass, it’s not physical, it’s just information.
• “Programs must be written for people to read, and only
incidentally for machines to execute.” - Harold Abelson (SICP)
• We communicate our desires for a particular outcome to a
computer in code.
• We build software to meet people’s needs. Needs are understood
through communication.
17. @jancowol
–Sandy Petland (The new science of building great teams)
“In fact, we’ve found patterns of communication to be the most
important predictor of a team’s success.
Not only that, but they are as significant as all the other factors—
individual intelligence, personality, skill, and the substance of
discussions—combined.”
Impact of Communication
18. @jancowol
–Sandy Petland (The new science of building great teams)
“Individual reasoning and talent contribute far less to team success
than one might expect. The best way to build a great team is not to
select individuals for their smarts or accomplishments but to learn
how they communicate and to shape and guide the team so that it
follows successful communication patterns.”
Impact of Communication
19. @jancowol
• Needs are understood through communication.
• More code written every day - more code to be read and
made sense of.
• The effectiveness of the communication channels in a system
plays a major role in the effectiveness of the system.
Impact of Communication
20. @jancowol
It matters how we communicate
1. Face-to-face
2. Phone / videoconference*
3. Email / texting
(From the New Science of Building Great Teams - Sandy Petland)
*Caveat: These technologies become less effective as more people participate in the call.
21. @jancowol
Practical communication tips
• Awareness of people using same words to convey different
meanings.
• Awareness of people using different words to convey the
same meaning.
• Seek to understand first, ask clarifying (not leading) questions
23. @jancowol
early 20th century: from Greek empatheia
(from em- ‘in’ + pathos ‘feeling’)
Empathy
noun
the psychological identification with or vicarious experiencing of the
feelings, thoughts, or attitudes of another.
24. @jancowol
Empathy / Humanity
• Not to be confused with “sympathy”.
• To walk in someone else’s shoes.
• Understand how the system impacts people’s behaviour.
• How can we effectively communicate with people if we think they’re “stupid”?
• Inverse relationship between abstraction and empathy.
• Key to understanding needs.
25. @jancowol
Empathy Starter Kit
• Assume good intent.
• Don’t assume others will use “your language”.
• Seek to understand.
• Don’t flip the “bozo bit”
• Respect.
27. @jancowol
Economics
• Code is not free.
• There is no silver bullet (Fred Brooks). Complexity costs.
• Every decision is a trade-off.
• Understand cost of delay to better inform trade-offs and technical
debt decisions.
• Learn to communicate trade-offs to sponsors with a wider
systemic view.
30. @jancowol
Learning
• We’re all learning, all the time.
• Accept that you can never know everything.
• Different learning styles, find the one that works for you.
• Observe self, reflect.
• Ask for feedback from others.
• Arrogance is a barrier to learning, you can’t learn by knowing everything.
31. @jancowol
More Learning
• Don’t be intimidated by what other people know, we all have gaps, and
most of us suffer from impostor syndrome.
• Learn with other people.
• Realise that others are learning from you, and you always have
something to give.
• Write something.
• Talk about something.
33. @jancowol
Feedback
• Nervous system / Cross-cutting concern, fundamental to communication and learning.
• Intentionally establish feedback loops.
• Shorter feedback cycles result in less time to course correct, and less waste.
• Experiment, POC. Avoid building by faith. Base decisions on data.
• Scientific method as a template for feedback.
• Look for subtle feedback channels.
• Ensure feedback is end-to-end. Anything less is guesswork.
34. @jancowol
Apply these at a higher level
Learning
Systems Thinking
Empathy
Feedback
Communication
Economics
36. @jancowol
Why bother? (the end)
• Programming, code, technologies are important, but they
don’t stand in isolation.
• The systems we’re part of determine our success to a large
extent. Look for ways to improve them.
• We’re not islands, learn to work with people.
• You’ll be learning for as long as you work, may as well get
good at it.
• Technologies will forever be changing, but learning the
fundamentals is a rewarding, long-term investment.
37. @jancowol
Based on work by
• John Gall
• Russel Ackoff
• W. Edwards Deming
• John Seddon
• Sandy Petland
• Jim McCarthy
• Kevin Trethewey & Danie Roux
• Kent Beck
• Marshall Rosenberg
• Virginia Satir
• Gerald M. Weinberg
• Dave Snowden