Foreword
Introduction
- Samman Technical Coaching
- Why would an organization engage in Samman Technical Coaching?
- Why would you choose to coach using the Samman method?
- Elevator pitch for Samman Technical Coaching
- What is in this book
- How this book relates to my other books
- Acknowledgments
The purpose of Samman Coaching
- Development techniques
- Levelling up a whole team together
- Expected outcomes
- Part 1: Ensemble Working
Ensemble Primer
- Typist
- Navigator
- Team-members
- Group Discussions
- Facilitator
- Rotating roles
- Other ensemble roles
- The Coach role
Let the Ensemble give you Superpowers
- Everyone understands the code
- Skills are multiplied
- Visitors are quickly contributors
- Joining a smoothly functioning ensemble
- A Coach is a Visitor with an Agenda
Coaching Behaviours in an Ensemble
- Teach
- Mentor
- Facilitate
- Coach
- Observe
- Take Short Breaks
- Retrospect
- Breathing space between and during sessions
Kindness, Consideration and Respect
- Woody’s Legacy Code rule
- Yes, and
- Take time out
- Too much thinking at the keyboard
- I think <name> has a good idea we should listen to
- Consideration means paying attention
- Call out bad behaviour that can’t wait until the retrospective
Coaching Situations Illustrated with Stories
- What should we do now?
- Team, help your navigator
- Can we do an experiment?
- Discover scenarios
- Intention, Location, Details
- Reminder to test first
- Typist, use your shortcuts
- Consume-First Design
- How long is it since we saw feedback?
- How long is it since we made a commit?
- Only one person knows what’s going on
- Nobody knows what is going on
- Chapter Summary
Retrospectives
- Ask for Observations
- “Liked, Learned, Lacked” Observations
- Turn up the good
- Your private retrospective
- Retrospective skills are essential
Remote Ensembles
- Seeing people’s faces
- Be considerate and time your comments
- Take breaks
- Make it quick to change typist
- Typist lag is deadly
- Design discussions
- Retrospectives
- Part 2: Learning Hours
Explaining Why you should hold a Learning Hour
- Learning TDD is like learning to ski2
- Why should you spend a whole hour every day on learning?
- Who should come to the Learning Hour?
The Theory and Practice of Teaching and Learning
- Learning Outcomes and Objectives
- The ‘4C’ learning model
- Design learning experiences that fit with how the brain works
- Deliberate Practice
Sample Learning Hours
- 1. Incremental working, Driven by Tests
- 2. Selecting and ordering test cases
- 3. Golden Rule of TDD
- 4. Names of Refactorings, especially ‘Extract Function’
- 5. Misconceptions about Refactoring
- 6. Make a test list
- 7. Arrange - Act - Assert
- 8. Start with the Assertion
- 9. One function at a time
- 10. Inspirational Demo
Learning Topics
- Small steps
- Refactoring safely
- Legacy Code
- Testable Design
- Designing Tests
- Behaviour-Driven Development
- Agile
- Add your own ideas
Remote Learning Hours
- Cyber-dojo
- VNC
- Everyone uses their local machine and screenshares
- Retrospectives
- Part 3: Samman Coaching Engagements
Finding an Organization and Teams to Engage with
- Sales and Marketing principles
- The Coaching Proposal
- Proposal for a large organzation with hundreds of teams
- Closing the Deal
- Identify your sponsor
Beginning Coaching with a New Organization
- Present yourself
- Kick-off Workshop with each team
- Chartering Workshop
- Offer Samman Coaching
- Persuading Reluctant Teams to be Coached
Practicalities Before Coaching Begins
- When should we hold the coaching?
- What task should we work on in the ensemble?
- What physical space should we use for ensemble working?
- Should we use a branch for the code we write in an ensemble?
Turn Up the Good
- Decide on the next coaching
- Enquire about bringing in a visiting coach or two
- Networking
- Days Spent Away from the Teams
A Career as a Samman Technical Coach
- Pair Coaching in a larger organization
- A Visiting Coach Programme
- Preparing for a Technical Coaching Career
- How I became a Technical Coach
Final Thoughts
- What is the most important thing to remember?
- Where can I find out more?
References
- Working incrementally in small steps
- Refactoring safely
- Legacy Code
- Testable Design
- Designing Tests
- Behaviour-Driven Development
- Teaching
- Other
- Image attributions
