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, 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.
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 remote audiences, distributed teams. The value of face-to-face conversations.
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.
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.
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.
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.
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?
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 layers of jargon and abstractions to figure out what really matters, how we’re going to deliver it, and how much it’s going to cost.
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.
About the Trainer
Dylan Beattie is a software developer, musician and international keynote speaker. With over 20 years experience working in the software industry, Dylan has spoken and taught at over 100 software development conferences all over the world. He's the founder and director of Ursatile, established in 2020 to provide high-quality workshop training for software professionals. He was CTO at Skills Matter in London from 2017-2019, and throughout 2020 he's been working with NDC Conferences to virtualise their events in the wake of the coronavirus pandemic.