Your SlideShare is downloading. ×
Teaching and Learning Software Development
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Teaching and Learning Software Development


Published on

Published in: Education, Technology

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • 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.
  • Transcript

    • 1. Teaching and Learning Software Development SoCraTes UK 2013
    • 2. Who is this guy?  Technical Lead at Granta Design  Founder of Cambridge Software Craftsmanship Community  Get in touch!  Twitter: @alastairs  Email:  Find me in the bar 
    • 3. 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 
    • 4. What motivates us to learn? Why are you here?
    • 5. Mastery MasteryEngagementAutonomy
    • 6. What is Mastery?  Flow is essential to mastery  Mastery is a mindset  Mastery is painful  Mastery is asymptotic
    • 7. Mindful Learning  Mindfulness vs. Mindlessness  How does Mindlessness come about?  Mindless vs. Mindful learning
    • 8. Selective Attention
    • 9. 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
    • 10. Learning at Granta Design …and the journey I have taken with my team
    • 11. The foundations for my efforts  “Coffee Break” talks  Knowledge sharing  Education on new topics  Occasional conference attendance (DevWeek)
    • 12. Expanding the programme  “Rebranded” Coffee Breaks  Added Learning Lunches  Introduced a regular programme  Approached people directly for talks
    • 13. 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.”
    • 14. 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 apathetic about.” “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.”
    • 15. Book Club  Set amount of reading from the text  Monthly discussion sessions  Started with The Pragmatic Programmer
    • 16. VA(R)K Model  Four styles of learning:  Visual  Auditory  (Reading/Writing)  Kinaesthetic [the evidence supporting this model (and similar ones) is not conclusive!]
    • 17. 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 need something.” “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 screen.” “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.”
    • 18. 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.”
    • 19. Workshops  Kinaesthetic learning style  Started craftsmanship-style workshops  IntroducedTest-Driven Development  Object Orientation  Brutal Refactoring, Keyboard-Driven Development, Introduction to F#
    • 20. Resistance to Change  Vocal resistance  Passive participation
    • 21. Company Culture  Little autonomy over many aspects of work  Time pressure, no slack. 100% utilisation
    • 22. Revising our induction  ExposeYour Ignorance, and Confront Your Ignorance  Introductions to our products  Talks, workshops, pairing sessions  “Buddy”
    • 23. Four Stages of Competence 1. Unconscious Incompetence 2. Conscious Incompetence 3. Conscious Competence 4. Unconscious Competence
    • 24. Four Stages of Competence  Which stage of competence are you at with the following skills?  Test-Driven Development  Object-Oriented Programming  Java / C# / Python / Ruby / JavaScript / Go  Reading andWriting  Playing the piano  Pottery  Photography  … choose your own
    • 25. Video training library  Pluralsight subscription  Visual andAuditory learning styles
    • 26. Personal choice  Technologies: frameworks, languages  Techniques: unit testing, object orientation  Paradigms: Functional Programming, Prototypical Object Orientation  Practices: (A)TDD, BDD, Refactoring, Object-Oriented Design
    • 27. Why do you use Pluralsight? “I use it for mainly for introduction to/development of topics I had no/little knowledge of.” “I prefer video courses as you can do something else at the same time (eat dinner… play the sousaphone...).” “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 page.” “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.”
    • 28. 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.”
    • 29. What I tried  Expanded programme of talks  Book Club  Workshops  Revised induction process  Video subscriptions
    • 30. Conclusion  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
    • 31. Any Questions? Thank you for listening!
    • 32. These are Sousaphones
    • 33. References  Four Stages of Competence:Wikipedia  List of Cognitive Biases:Wikipedia  NLP Learning Styles:Wikipedia  Mindful Learning, Ellen J. Langer   Apprenticeship Patterns, Adewale Oshineye & DaveThomas  Amazon (priced £18.99)  Drive:The SurprisingTruth AboutWhat Motivates Us, Daniel Pink  Amazon (priced £6.99)