The Secrets Of Tech Coaching: Better Communication Skill
Running code katas or mobs with groups that lack teamwork is almost impossible! Here are 20 communication and collaboration techniques to coach by example.
When team members are not used to or want to show humility within the confines of their team’s space, then they are not functioning as a team. That’s where we can and should help. Until that starts to happen, any new learning is an uphill battle.
I spent some time two years ago with a
teamgroup who asked me about delays in reviewing their pull requests, and I recall the central issue lay in a lack of self-confidence, resulting in not wanting to criticize someone else’s work.
I would love to reduce the latent stress in the mob, but just saying “There is no stress” is visibly not enough!
Even though we do “technical” coaching, collaboration skills can make or break our work! Most of us have coaching stories that support that. Situations where horrible teamwork made it impossible to pass anything to a team! Or teams with newly emerging technical skills but turning into super-performing thanks to collaboration! The impact of collaboration and teamwork is incredible!
Bad teamwork and collaboration also block mobbing and pairing coaching sessions. How can we help teams to improve collaboration so that coaching becomes effective?
Wouldn’t it be great if we could coach teamwork and collaboration by example? So that all the rest followed?
Let’s grow our collaboration skills first!
Coaching by example, aka walking your talk, is a fundamental coaching technique. By improving our communication and collaboration skills, we’ll showcase good teamwork. As a result, we’ll inspire our coachees to follow suit!
Before jumping into how to do that, let’s see why it works.
Why is team collaboration essential?
No matter how it looks at first, it’s always a people problem. (Jerry Weinberg)
Demarco and Lister demonstrate that the major issues of software development are human, not technical. Their answers aren’t easy–just incredibly successful. (Back-cover of the seminal Peopleware: Productive Projects and Teams)
Junior programmer’s bookshelf: 90% APIs and programming languages; Senior programmer’s bookshelf: 80% applied psychology. (J.B. Rainsberger)
I’m not the only one saying that team collaboration is paramount to success!
It’s not only what people say. The Aristotle project at Google concluded that psychological safety is the main factor in team performance. Psychological safety makes it OK to take risks and show vulnerability in front of others. Here again, human interactions come out as critical to team performance.
It’s clueless to coach a team without dealing with teamwork!
Communication Skills Are Contagious
Communication and collaboration skills are contagious. Good communication is inspiring, and leading by example is a powerful coaching tool:
Demonstrate through your own actions, your responses, the way you conduct yourself, the sort of mindset you are trying bring out in them and their teammates. That’s all. Not rocket science, but sometimes very challenging. (Bob Allen on WeDoTDD slack)
Be the change you want to see in the world (misattributed to Gandhi)
Some collaboration practices will help. For example, Liberating Structures, a set of facilitation techniques, are viral by design. Participating in a liberating structure is usually enough to facilitate it later!
Here is another example. Someone good at negotiation and conflict resolution can protect a whole team!
Finally, as we improve our collaboration, we will become better facilitators. As a result, we will run more effective workshops, which will have more impact on the teams we coach.
Your collaboration practices might spread to the CEO! (cf Local Action, Global Impact)
Better communication will make us happier!
Not only will investing in collaboration make you a better coach. Improving your communication and collaboration skills also makes you happier!
- A Harvard study revealed that the quality of relationships is the #1 factor for happiness! Any communication technique will improve some aspects of relationships. The communication skills we grow for work will also serve us in our personal lives. So, improving our collaboration skills for tech coaching will make us happier humans!
- Relationships at work are crucial to job performance and job satisfaction. Having a bully at work can make your life miserable. The opposite is also true! Gallup studies demonstrated that having friends at work improves performance and job satisfaction. Other research states that at work, relationships make us happier than purpose!
And… As communication skills are contagious, we will also impact the lives of our coachees!
Always bet on communication skills! Not only for your coaching gigs but for your general well-being.
I hope you understand how vital communication skills are. Let’s see a few “Communication skills.”
My collaboration skills journey
I was not born a good communicator… and I’m still learning! I remain shy and usually feel awkward in social situations. Yet, it feels way easier than it used to be. In particular, I manage well at work and with my close ones.
Here is the “story” of the communication techniques that impacted my life most. It’s not an exhaustive list of everything that exists. But you might find something that spikes your curiosity!
Code Like Prose
When I started as a programmer, solo coding felt safe and relaxing. There was only the logic of the program to deal with.
However, I had to change my mind after a few months in my first job. I understood that my career would not be the “introvert paradise” I had envisioned. Programmers need to communicate a lot! And the primary way programmers communicate is through code! With time, I learned that writing Code Like Prose made my colleagues and future self much happier.
💡The Refactoring and Growing Object Oriented Software Guided By Tests books were essential to my learning.
🤣 Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. Code for readability. (John F. Woods)
Visual Management
As I read more about TDD and refactoring, I became interested in the agile literature. I discovered how Visual Management can reduce the painful boss-subordinate relationship. Visualizing work and progress enhances team alignment, transparency, autonomy, and self-responsibility. Let’s not take Visual Management for granted! It still could be used more.
💡 Reading the Kanban book was an eye-opener on this one.
Pair Programming
We often look at Pair Programming through the lens of code quality and productivity. Yet, it is also an incredible workout for communication skills. My pair programming years made my listening, negotiation, and self-awareness skills soar.
💡I wrote a lot about pairing, but my first advice to get better at it would be to start attending (or creating) a coding dojo.
Facilitation
As I became “the agile guy,” my teammates asked me to facilitate retrospectives. I learned the facilitation posture: a communication catalyst with a touch of mediation. Good facilitation will directly improve teamwork. Facilitation provides the incredible leverage of collective intelligence to tackle complex tasks.
💡The Agile Retrospectives: Making Good Teams Great was invaluable to get me started. (Note: They are working on a second edition!)
Writing
I started this blog as “Notes to my future self.” The first posts were rough drafts. I’m still no Hemingway, but my writing skills have improved a lot since then. Writing is an overlooked skill for developers. There is a motto that says “Writing is Thinking”! Writing skills yield more readable code, helpful documentation, and fewer email back-and-forths. Full-remote companies like Basecamp use writing skills as hiring criteria! Also, it does not matter where you start: I used to have abyssal grades in writing at school…
💡To improve your writing skills, start writing a blog or taking notes. You can also study classic books like Elements of Style. Finally, apps like Hemingway and Grammarly have helped me a lot to improve on my mistakes.
Living Documentation
Living Documentation is what you get when you combine TDD with Writing. The initial idea is to use human-readable text to write domain-oriented tests. The goal is to involve non-developers. It’s all about communication. Used well, Fit, Cucumber, or literate programming can transform collaboration with stakeholders. Who’s never wasted time building the wrong thing right?
💡I first learned about Living Documentation with the now-outdated Fit book. Since then, I have enjoyed:
Remote Pairing
We were all forced into remote work during the Covid pandemic. Yet, I had already been doing regular remote pair programming for a few years. This experience proved full of lessons. Remote work forces us to make a lot of the implicit communication explicit. The same goes for remote pairing. Remote pairing makes us aware of how we communicate and allows us to improve on our flaws.
💡I remember enjoying the Remote Pairing book. Otherwise, I recommend learning the git-handover mechanism to get started with remote pairing. It’s also a good idea to run daily ‘mini-retros’ with your pair to fine-tune your pairing.
Non Violent Communication
🤣 No, Non-Violent Communication is not a rehab program for bullies…
The company I work for, Murex, has a Non-Violent Communication course in its catalog! I was lucky to attend one session a few years ago. NVC lessons can be life-changing:
- The difference between facts, feelings, and needs
- The fact that we are all responsible for our state of mind
- How to give non-violent feedback
Don’t expect an overnight change, though. NVC is a straightforward idea that takes years to master. Yet, the sooner you start this path, the better. The more we improve our NVC skills, the less conflict we will see around us!
💡If you have the chance, attend a course, an immersion retreat, or try to attend a regular practice group. If you prefer books, Language of Life is the reference. Kent Beck also mentioned The Language of Emotions, which connects to the topic.
Event Storming and Collaborative Design Workshops
Team-wide collaborative design is challenging even with workshop facilitation and software design skills. I struggled with that for a few years when I stumbled on Event Storming. I was immediately hooked. Collaborative design is a way to do just enough design up-front in a few days. It also ensures everyone contributes, understands, and aligns on the direction! It has a tremendous impact on the motivation and productivity of a team.
💡I learned about Event Storming from Alberto Brandolini’s work-in-progress book. Matthieu Tournemire and I are also currently blogging The 1-hour Event Storming book. Other standard collaborative design workshops include Example Mapping, Domain Storytelling, User Story Mapping, and Impact Mapping…
Visual Facilitation
We say that a drawing is worth a thousand words. It’s incredible how a few drawings make presentations more engaging. Sketching also saves a lot of time. The audience will get the idea faster. And you’ll save time scribbling rather than writing or talking. You can use sketches in your notes, presentations, workshops, and documentation. The surprise is that you don’t need to be good at drawing to do visual facilitation!
💡If you have the chance, attend a training on Visual Facilitation. But you can also start sketch-noting right now: you only need a pad and a pencil. I began by combining:
- Cornell’s note-taking system
- With mind maps
- And small drawings to decorate ideas.
Mob Programming
Mob Programming is extreme pairing. As a coach, mobbing has proven much more time-effective than pairing. We can exchange practices with the whole team instead of a single coachee. More than that, we can also observe and work on team dynamics! Mobbing will test many of your communication and collaboration skills: listening, facilitation, self-awareness, negotiation, collaborative design…
💡You can practice mob programming by running team coding dojos with strong style pairing. After a while, coachees might suggest trying it with production code. A Mob Programming code retreat is also a safe and quick way to experiment with various flavors.
Public Speaking
Public speaking is about impacting an audience in a limited time. This is useful to nudge management or a team into healthier work habits. Public speaking is also an occasion to get out of our comfort zones and master stress. I know developers who have used public speaking as self-therapy against shyness. Being able to stay calm in stressful situations is a communication superpower!
💡Ask a local or remote meetup if you could do a short presentation. The audience is usually friendly, and the entry bar is low. Then, learn how to answer a Call For Presentations (CFP) and try your luck in more significant events. The Present! A Techie’s Guide to Public Speaking book also has good reviews, but I must warn you that I did not read it.
Verbal Aikido
A few years ago, I started attending a weekly Verbal Aikido dojo. The goal of Verbal Aikido is to transform conflicts into constructive conversations. Conflicts tend to shut our neocortex off and trigger our reptilian brain to freeze, fight, or flee. Regular real-world conflict practice taught me to deal with difficult situations more peacefully.
💡To try Verbal Aikido, join the online dojo every Monday. I will also give intro workshops for developers at public events—for example, XCraft Lyon and XPDays Benelux in November 2023.
Non-Violent Code Reviews
(Bully) Why do you do that? (Author) … (Bully) No, I mean, as a job.
I wouldn’t say I like code reviews. Whenever I can, I replace them with pairing. Yet, Matthieu Tournemire and I are writing “The 1-hour Event Storming Book” together. We don’t have overlapping writing time slots, so we resorted to text reviews. Like code reviews, it was a collaboration challenge. How can we give valuable reviews while keeping the author’s intrinsic motivation? The Non-Violent Communication pattern of observation, feeling, need, and suggestion does wonders for reviews. Guess what? It also works like a charm for code reviews!
- It does not trigger conflict.
- It gives autonomy to the author to improve the code and learn.
As a complement, Verbal Aikido techniques are great for de-escalating harsh reviews!
💡Try it! Next time you give a review, for example, in a coaching session, use the NVC pattern to express your point. There are NVC cheat sheets for feelings and needs! Remember also that suggestions are only suggestions!
Liberating Structures
Liberating Structures were developed by Henri Lipmanowicz and Keith McCandless. Liberating Structures are licensed under a Creative Commons License.
I had the chance to learn Liberating Structures during an Immersion Workshop. It was a transformative experience. Liberating Structures are facilitation bricks to create inclusive and engaging experiences. It transformed all the collective interactions I have. Liberating Structures are the best tool I know to leverage collective intelligence. They also scale very well to large groups. They have made all my meetings and workshops shorter and more effective. Even my public conferences now rely on Liberating Structures!
💡To get started, try to join a local user group or register for an immersion workshop. You can also check the Slow Code Retreat. It has detailed instructions and can serve as a Liberating Structure Immersion Workshop.
Communication Dojos (In progress)
We are getting to my current ongoing initiatives. As I wrote above, some skills, like NVC or Verbal Aikido, take time to master. The key, though, is practice. The more we practice, the better we get at them. I am currently experimenting with communication dojos. The idea is to regularly and safely practice real collaboration or communication issues. It could be a harsh code review, a pushy salesperson, or making the case for refactoring. I hypothesize that a team could protect itself against a stressful environment!
💡The Improv Prototyping liberating structure is the perfect fit to run such events. Getting someone with experience in NVC or Verbal Aikido would also greatly benefit the group. I’ll keep you updated as I learn more from this practice.
Open Space Architecture (In Progress)
Event Storming is the only collaborative design workshop I know that works with more than ten people. Unfortunately, it is not the answer to all architectural questions and challenges. Fortunately, Liberating Structures also scale very well to large groups. I am experimenting with combining liberating structures to run large collaborative architecture workshops. Such workshops should yield better results in less time. If I am right, it will scale engagement, understanding, motivation, and alignment to large audiences!
💡I will give a workshop on this topic at XPDays Benelux 2023. I’ll keep you updated as I learn more.
Core Protocols (In Progress)
Core Protocols are not new, but I never took the time to look into them. I have lately been reading and collecting feedback from real users. I’d like to see how I can combine them with other practices. In particular, I’m thinking of Liberating Structures, Verbal Aikido, and mob programming. Could Core Protocols boot a better team dynamic in a short time?
💡Software For Your Head is the reference book about Core Protocols, but it is said to be a challenging read. Core Protocols experts say the best way to learn is to attend a course or a “boot camp.” So my best advice would be to find a trainer!
Combine and Compound
An interesting aspect of communication techniques is that we can innovate by combining them. For example:
- I replaced all my “gathering” with Liberating Structures.
- Improving my writing showed everywhere, from code to emails.
- Inspired by Core Protocols, I designed “mobbing cards” to silently express common reactions in the mob. (Note: I might write more about that later).
- My team and I are also experimenting with “1-2-4-all-Design!” to ‘pause’ the mob for 1 or 2 rounds of introvert-friendly design time.
Almost every day, I spot times when my communication could have been better. And I’m sure my list will continue to grow! The better our communication skills, the more we can combine them to create beautiful experiences for us and those around us. Every new technique we learn does not add to our impact; it multiplies it!
Always bet on communication!
Team collaboration and communication can make or break technical coaching! We can coach by example and fix broken teamwork by being good collaborators. It starts with us!
There is an almost infinite list of communication techniques we can learn:
- From deep listening and connection, with practices like Non-Violent Communication and Verbal Aikido
- To disruptive group collaboration with Event Storming and Liberating Structures!
Whatever your interest and need, there is a fun way to grow your collaboration skills! Select a topic, start learning, experiment, and share your experiences.
PS: I am thinking of writing a book about communication and collaboration activities for teams. The title could be “Collaboration Activities to Fix Software Problems.” It would link collaboration techniques to common software problems and provide step-by-step fixes. I’d love to know what you think of the idea.
Leave a comment