Workshop: Communication for Developers

Course Overview

Communication is vital to delivering successful software, and ineffective communication leads to delays, derailed projects and unhappy teams. Communication is often referred to as a “soft skill” – but communicating effectively with your team, your users and your stakeholders can actually be really hard.

This is a two-day hands-on workshop for software developers, managers and stakeholders, aimed at helping you to use your time and technology to communicate more effectively. Using a combination of classroom teaching, role play, hands-on workshops, exercises, games and puzzles, we’ll look at the huge range of tools and channels you can use to communicate with your teammates, users and stakeholders, and how to use those tools more effectively. You’ll learn how to write better stories, bug reports and documentation; how to hold better meetings; how to make decisions more effectively; and how to use communication to deliver great user experiences.

Structure and Schedule

Day 1

Module 1: Deconstructing Communication

  • WHAT are we doing here? What can you expect from this workshop?
  • WHO are we communicating with? Identifying your audience. Matching communication styles to audiences.
  • WHY do we communicate? Identifying outcomes, creating agendas, making decisions.
  • WHEN, WHERE and HOW: Communication styles for meetings, presentations, remote audiences, distributed teams. The value of face-to-face conversations.

Break

Module 2: Tools and Channels

Have you ever sat through a meeting that should have been an email? In this interactive exercise, you’ll work in teams to solve a series of puzzles and problems using different communication styles. We’ll see how different tools – meetings, phone calls, email and text chat – are suited to different kinds of communication scenarios.

Lunch

Module 3: The Power of Storytelling

Storytelling is a fundamental part of human society. From our ancestors sharing stories around a campfire to the latest Netflix blockbusters, we’ve used stories to entertain, educate, and share ideas and experiences. Many modern software development methodologies have embraced the idea of the “user story”, but we can do so much more. In this module, we’ll look at using storytelling to write better functional specifications; to explore user testing scenarios; and to involve our stakeholders and end users at every stage of the development process.

Break

Module 4: Language and Symbols

In this interactive exercise, we’ll explore the role of language, diagrams and symbols in effective communication. We’ll discuss concepts like the idea of establishing a “ubiquitous language”, the visual metaphors behind modern user interfaces, and the use of emoji in modern digital communications.

DAY 2

Module 5: Collaboration and Teamwork

In this module, we’ll discuss how to apply the techniques we’ve learned so far to the day-to-day process of collaborative software development. We’ll discuss effective planning and retrospectives. We’ll look at managing incidents, postmortem reviews, the “five whys” analysis, and how to write better user stories and bug reports.

Break

Module 6: I’m a Coder, You’re a Coder: Collaborative Coding

In this module, we’ll focus on the specifics of collaborating with other software developers. How can we use communication techniques to improve our architecture diagrams, unit tests and code reviews? Why does everybody hate writing documentation – and how can we change that?

Lunch

Module 7: Asking the Right Questions

As developers, we hear the same requirements over and over again: the software has to be “user friendly”, “secure”, “responsive”. We’ve heard those terms hundreds of times – but when somebody asks us to create a “responsive” layout, or make their admin system “secure”, what do they really mean? In this module, we’ll find out how to involve our customers and stakeholders in those conversations, and to punch through the jargon and abstractions to figure out what really matters, how we’re going to deliver it, and how much it’s going to cost.

Break

Module 8: How Not To Be Invisible

It would be great if all we needed to do was ship good code – but in the world of modern software development, doing great work is only half the struggle. To really succeed as a developer, you need to make sure people recognise your contributions, whether that’s by making a great impression on your clients and customers, going out and speaking at meetups and conferences, or expanding your network using blogs and social media. In this module, you’ll learn how to promote yourself, the importance of getting credit for your ideas, and how to use communication as a tool to develop your career.

Audience and Prerequisites

This workshop is aimed at software developers, designers, product owners, and other people involved in creating and maintaining modern software applications. Over the course of the two days, you’ll be working through a series of group exercises and challenges that will encourage you to experiment with different styles of communication and collaboration. Bring laptops, mobile phones, and an open mind – we’ll provide everything else.

The ideal class size for this workshop is between 8–25 people. If you’d like to run it for a smaller or a larger group, please get in touch and let’s chat.

Upcoming Course Dates

1–2 April 2020 NDC Copenhagen

Get tickets

21–22 April 2020 NDC Porto

Get tickets

27–28 July 2020 NDC Melbourne

Get tickets

If you'd like to run this course for your team or at your conference, please get in touch