Improving: I will give an explanation in a moment why an improving team is necessarily an engaged team
Where does mastery, and the desire to strive for it, come from?Autonomy is the behavioural opposite of control, giving people the freedom to choose what they do, how they do it, when they do it, and with whom. Where control seeks compliance, autonomy fosters engagement; engagement with the task, team and technique. Autonomous, engaged employees are happy employees, that are advocates for the team and organisation to which they belong.From that overall engagement comes a desire to get better at it: this is mastery.
Some people seem to be innately engaged with their work, and this is related to “flow”. Flow, which is different frombeing “in the zone” is the feeling that solving the problem, participating in the experience, is its own reward.Mindset: fixed vs. growth views of intelligence. Fixed: like height. Growth: like strength. Without the Growth mindset, you cannot achieve (or even aspire to) Mastery. In the Growth mindset, exertion is positive, while in the fixed mindset working hard at a task means you’re not very good at it.Pain: mastery requires grit, perseverance, to achieve long-term goals. Mastery hurts; often it is little fun. Mastery requires effort. But flow can help: if you are conscious of what puts you in flow, there is clarity in where to focus your effort to master; and the moments of flow will help you through the rough parts.Asymptote: you can approach it, home in on it, get really really close to it, but you can never reach it. Why reach for something you can never attain? – Why not reach for it? The joy is in the pursuit more than the realisation (flow!).
One route to mastery?Mindfulness: flexible state of mind, where we are actively engaged in the present, noticing new things and sensitive to context.Mindlessness: relying on distinctions drawn in the past, our behaviour is rule and routine governed. This blinds us to novel experiences.Mindlessness comes about through repetition and single exposure. E.g., travelling a familiar route can sometimes seem to be automatic; or, without questioning a piece of information when it is first received, we essentially make a commitment to a single way of understanding it.Most education is, unintentionally, mindless learning: facts are presented as closed packages, stripped of their context. Facts are not context-free, however: their meaning and usefulness depend on the situation. Who decides what perspective is represented and why? Ignoring perspective causes us to confuse the stability of our own mindset with the stability of the underlying phenomenon: things change and we are blind to that change. Consider the simple sum 1 + 1 = 2: is this always true? What about different number systems? Blu-Tak. Obi-Wan Kenobi: “What I told you was true … from a certain point of view”.
Studies have shown that if we learn things mindfully upon first exposure to them, we will be able to use the information in creative ways in the future. In one 1997 study by Pietrasz & Langer, subjects were introduced to a new game and given the opportunity to practice. Those who were taught a new game mindfully were more likely to accommodate to small changes to the game’s environment (e.g. making the ball heavier). This gives lie to the idea that “practice makes perfect”.To successfully pay attention, people should hold the target of their attention still and focus on it, the way you would with a camera. This is the wrong instruction! The mind starts to wander, the image fades from view. Attending to an object mindfully – noticing its shape, its size, a fleck of dirt, a discolouration – makes it much easier to pay attention. In one study from 1995 by Bodner and Langer, subjects were asked to pay attention to a stimulus, or to notice new things about the stimulus. Those instructed to vary the target of attention displayed better performance, they remembered more about the stimulus, and they liked it more. Work and study are not negative, although we may make them appear to be. In a 1997 study by Langer, participants were asked to watch cartoons and evaluate how humorous they were. For those participants to whom the task was described as work, the cartoons were less enjoyable and their minds wandered more.
These things were already in place when I started at Granta 3 years ago. It was worldsbetter than my previous employer!
Common themes: a nascent interest in the subject, to improve understanding of the subject
Common theme: we like talking about stuff we’re interested in!
Why did it meet with mixed success? Not everyone learns well from books. Here’s one possible explanation why.
Visual learners prefer to learn by seeing: think in images, use phrases such as “I see what you mean”Auditory learners prefer to learn by listening: think in words, use phrases such as “I hear you”Reading/Writing: an extension of the model that splits this form of learning out as distinct from auditory learning. (Reading and writing are processed by the same parts of the brain that process auditory information.)Kinaesthetic learners prefer to learn by doing: experiments, active exploration, etc.
Common theme: to learn new stuff. But some people don’t read. That’s fine: maybe it doesn’t suit their learning styles, or it’s harder to make time for it.
No real common theme, other than we have some voracious readers in our team!
The next thing I introduced inadvertently introduced a new style of learningFrequently attending LSCC sessions. Ran a day introducing TDD. Mixed reactions to the content, particularly from one guy. How to deal with those people?
Vocal resistance: arguments from some experienced devs with loud voices in the retrospective sessions.Don’t see the point, don’t get it. Depending on personality type, can sometimes be addressed by letting people try it out for themselves elsewhereTried it, understood it, didn’t like it.“Who’s wrong?”Passive participation: people not engaging with the content of the workshop. By making attendance mandatory, autonomy in deciding to attend was removed.
Without autonomy, there is no engagement. Without engagement, there is no desire to improve. Without a desire to improve, learning is simply another demand on our already-constrained time.What occasional slack time we do get is encumbered slack: we need to show something for the time otherwise it wasn’t worth doing. The thing I keep hearing is “it’s too easy not to do learning activities”.
Three main software products, one of which is a suite of smaller tools. A number of data products. A good induction should provide an overview of the company’s activities and how they fit together.I give a talk on opportunities for continuous learning: blog and book suggestions, details of local user groups, details of conferences, etc.Workshop on GitTalks on Dependency Injection, SOLID principles, common GoF design patterns. Paired kata exercises to introduce/practice/improve TDD. Buddy helps the new hire get set up, find their way around our code base, etc. Pair program where possible. Trying to introduce mentoring to this relationship, with little success.Why do we do this? Expose Your Ignorance and Confront Your Ignorance
[BEFORE REVEAL]Who has heard of these? [Ok, well I’ll go through them quickly.]Unconscious incompetenceThe individual does not understand or know how to do something and does not necessarily recognize the deficit. They may deny the usefulness of the skill. The individual must recognise their own incompetence, and the value of the new skill, before moving on to the next stage. The length of time an individual spends in this stage depends on the strength of the stimulus to learn.Conscious incompetenceThough the individual does not understand or know how to do something, he or she does recognize the deficit, as well as the value of a new skill in addressing the deficit. The making of mistakes can be integral to the learning process at this stage.Conscious competenceThe individual understands or knows how to do something.Demonstrating the skill or knowledge requires concentration. It may be broken down into steps, and there is heavy conscious involvement in executing the new skill. Unconscious competenceThe individual has had so much practice with a skill that it has become "second nature" and can be performed easily. As a result, the skill can be performed while executing another task. The individual may be able to teach it to others, depending upon how and when it was learned.
Common themes: introduction, bite-size, asynchronous
Common themes: introduction to a new topic to cover a gap in knowledge or address a particular need.
Utilise mindful learning: introduce topics in a conditional way, challenge the context inherent in mindless information.Consume information in a way that touches on a number of learning modes. Consume the same information from different sources to address different learning styles.Company culture is important: your team must be given sufficient autonomy to be fully engaged with their work before you can reasonably expect people to want to improve.
The Sousaphone is a bass brass instrument closely related to the Tuba, widely employed in marching bands. It is designed to fit around the body of the player, supported by the left shoulder. It is named after John Philip Sousa, bandmaster and composer (Liberty Bell, The Stars and Stripes Forever) who popularised its use in his band.
Teaching and Learning Software Development
Teaching and Learning Software
SoCraTes UK 2013
Who is this guy?
Technical Lead at Granta Design
Founder of Cambridge Software
Get in touch!
Find me in the bar
Why do I want my team to learn?
To continually improve our products and processes
An improving team is an engaged team
To be a part of a team sharing my motivations and drives
To make my life (and theirs!) easier
Three Myths About Learning
1. The basics should be learned so well that they become second nature
Learning the basics mindfully teaches you to adapt them
2. To pay attention to something, we should hold it still and focus on it
Varying the target of attention provides better recall
3. It is important to learn how to delay gratification
Anything described as “work” is less enjoyable
Learning at Granta Design
…and the journey I have taken with my team
The foundations for my efforts
“Coffee Break” talks
Education on new topics
Occasional conference attendance (DevWeek)
Expanding the programme
“Rebranded” Coffee Breaks
Added Learning Lunches
Introduced a regular programme
Approached people directly for talks
Why do you give talks?
“I was asked to, and I thought it would be a good
way to get involved with the team.” “I see teaching as an act of altruism.”
“There’s nothing like doing a talk on a subject to make you
realise that you don’t yet understand it. If you can spot this
before you give the talk, you can refine your own
understanding of the subject.”
“It gives me an excuse to investigate interesting/new
ideas and technologies. I enjoy being able to impart
knowledge anyway, but in this case I enjoy learning
about stuff myself at least as much.”
“I was interested in the subject and
wanted other people to experience
the interest I had in the subject, or the
benefit I got from it.”
“I like learning new stuff and sharing
that with others.”
What do you enjoy talking about?
“F#, the SOLID principles, and what does good
code look like.”
“I think I mostly like talking about concrete
technologies rather than methodologies,
probably because that's what I'm interested in. I
find it harder to talk about things I am more
“Largely abstract stuff such as patterns, ideas,
architecture, code structure, code smells, object
orientated best practices etc.”
“I enjoy talking about things that I enjoy and am
passionate about.This can be technology, but is
also techniques, approaches, etc… I do also enjoy
the actual act of talking in front of a group about
something of which I am knowledgeable.”
Set amount of reading from the text
Monthly discussion sessions
Started with The Pragmatic
Four styles of learning:
[the evidence supporting this model (and similar ones) is not conclusive!]
Why do people read?
“I love acquiring knowledge for its own sake.”
“I sometimes pick up books specifically for a
purpose, but nowadays I use the internet when I
“I don’t usually feel I have time... Most of them
are just too big. Something like ‘The Clean Coder’
is about the right size, but you wouldn’t spot it on
the shelf next to most computing books. I think
there’s a conflict between writing something that
looks heavy enough to be worth selling, and
writing something concise.”
“I love books. I like learning, and the advantage
of a book is the ability to easily dip in and out. It
also provides a chance to get away from a
“To learn new stuff, to make sure what I’m doing
is correct, to provide grounding for further
thoughts on improving our software.”
“I struggle to read books, partly because I find it
hard to find the time to, but also because I have
never been an avid reader and it takes a lot of
concentration to take in what I am reading.”
What do you enjoy reading?
“I read anything that catches my eye, but I think I
again prefer real-life usages of concrete
technologies, rather than people waffling on for
ages about their own opinion.”
“I read everything I can get my hands on.”
“Uncle Bob / Martin Fowler / Michael Feathers,
but I read more blogs than books lately.”
“things I enjoy and am passionate about. I
have occasionally bought a book because I
think it would be useful, but because I am
not really passionate about it found it
much harder to even pick up.”
Kinaesthetic learning style
Brutal Refactoring, Keyboard-Driven
Development, Introduction to F#
Resistance to Change
Little autonomy over many aspects of
Time pressure, no slack. 100%
Revising our induction
ExposeYour Ignorance, and Confront
Introductions to our products
Talks, workshops, pairing sessions
Four Stages of Competence
Four Stages of Competence
Which stage of competence are you at with the following skills?
Playing the piano
… choose your own
Video training library
Visual andAuditory learning styles
Technologies: frameworks, languages
Techniques: unit testing, object orientation
Paradigms: Functional Programming, Prototypical Object Orientation
Practices: (A)TDD, BDD, Refactoring, Object-Oriented Design
Why do you use Pluralsight?
“I use it for mainly for introduction
to/development of topics I had no/little
“I prefer video courses as you can do something
else at the same time (eat dinner… play the
“You can see work in progress. It's easier to
understand how/why people write the code etc.
they do when you can see them doing it instead
of trying to work it out from static content on a
“To learn new stuff, to make sure what I’m doing
is correct, to provide grounding for further
thoughts on improving our software.”
“I like Pluralsight because it is a very passive way
of absorbing information. I still find it hard to find
the time to watch as many as I would like, but do
enjoy watching them.”
How do you choose what to watch?
“I typically choose courses on subjects that I have
seen mentioned elsewhere but am not fully up to
speed on what they are.”
“I choose courses that are different and new,
rather than ones that look like they will be going
over the same kind of ground.”
“So far have only watched a few courses on web
stuff but intend to just have a dig through ‘what
looks interesting’ at some point.”
“Sometimes I choose a course about something I already know to
see if I can further my knowledge. Other times I choose a course
about something new (to me) to learn about it - even if I don’t
watch the whole course, the overview is useful.”
What I tried
Expanded programme of talks
Revised induction process
Try many different learning methods
And don’t stop until something works
Utilise mindful learning on your journey to mastery
Culture is important
Mastery requires engagement, engagement requires autonomy