In this episode, we delve into the world of Extreme Programming (XP) values, with a particular focus on communication as key. We discuss the importance of effective communication in software development, especially in a remote work environment. Hear about the challenges that can arise when communication breaks down and the need for clear and open channels of communication within development teams.
We also touch on the significance of courage and respect regarding communication in the XP framework. Discover practical tips for improving communication within software teams, including the use of collaboration tools like Miro and Figma. Explore the value of over-communication to ensure everyone is on the same page and the importance of setting clear communication expectations with your team, especially when it comes to after-hours communication. To learn more about the XP value of communication and how it can lead to better collaboration and project success, tune in now!
[0:00:01] MN: Hello and welcome to The Rabbit Hole, the definitive developers’ podcast, living large in New York. I'm your host, Michael Nuñez. Today, we're going to talk about XP values, specifically communication and collaboration of best practices. Hello, everyone, for those who are listening. If you're tuning in, it's been a while. First and foremost, I want to apologize on that. Things were a little hectic. But if you're listening right now and hopefully, your children are safe in school, or they're in school and they are sick, so they're with you and need a lot of hugs, kisses, and soup, I hope that I can get back into the swing of things in recording the podcast.
I've been nose down on a project right now, and I think definitely is called back to refreshing myself on XP values and a lot of the things that come from the Extreme Programming Explained and know that I started a series earlier in life, where we were talking about why projects fail and how XP aims to solve them. I think, right now, I'm going to jump back into the values, because I feel like, subconsciously, I've been leaning back on them and I needed to do a refresher, and here we are.
Today, we're going to talk about communication. Before I continue, I want to state the four values and the upgraded fifth one, just to give you an idea of how one leans into the other. Because I think that these values, they stand alone by themselves, but you can tell that one definitely influences the other, that then helps you become a better light in that value when you are expressing these XP values in some way, shape, or form.
The five values of XP are communication, which I'll try my best to dive into today, simplicity, feedback, courage, and respect. One thing I want to note is that a lot of the time, even when I come back to the book to read these values, I often ask myself, “Communication and feedback are the same thing, but they're not.” I hope to dive into that a little later in these podcast episodes.
The first value that gets called in the book is communication. I'm going to try my best to talk about that. As the book notes, communication being something that is valuable in XP. We don't purposely have bad communication. It just appears in a project team. I know that working remotely has changed the way that we communicate, and it's another muscle that we have to grow and grow into. Think about the education system in America, where you're always in a team of four, any particular building and you got to do a science project. You’re face to face with individuals, you have an idea on what to do, you're communicating on who's going to take what task and then you're going to do that.
XP, one of the main proponents of XP is pair programming, right? Two people will be doing one particular task. The idea of being physically there is sometimes missing in the workplace if we’re all remote, if you have the luxury to be remote rather. But bad communication doesn't happen by chance. I'm going to read this little excerpt here. There are many circumstances that lead to a breakdown in communication. A programmer tells a manager bad news, the manager punishes the programmer. A customer tells the programmer something's important and the programmer seems to ignore the information. It's not like, “Hey, I'm going to listen to what you have to say and I'm just not going to do anything about it.” Or, “Hey, I'm going to tell you this bad news, because I was unable to complete the task,” and then the manager punishes the programmer.
I think, one thing I want to call out here is as I mentioned before, how one value may blend into another. Quick example, this programmer had the courage enough to tell a manager, someone in a position of power, bad news. It was the manager's choice and their response to punish the programmer, as opposed to encouraging them to do the courageous thing. It's not often that we share our shortcomings. It's difficult. When someone actually steps up to do that, we should definitely be able to commend them on that and see what we can do to address that particular problem, or the bad news, right?
I wouldn't think in any situation, a way to address the bad news is by punishing the programmer. I don't know, through shame, through Slack, or whatnot, but I do think that addressing is more important. Bad on the manager. Don't do that. It's not nice. It becomes a way that the team has to operate, to be able to know the mediums in which you can speak to a person, how I know in the remote sense, like how available is this person. I know in the team that I'm currently working on, I have some days that I'm out and some days that I try to catch up on that work in the night. I'm highly aware that a lot of the folks that I speak to are unreachable at that time, but I make whatever decisions that are made. I made sure that I can revert any changes and speak to people whenever I can.
How do you communicate? I think, sometimes over-communication can be good in a software team. Whether your mode of communication is through Slack, chat, email, Discord, text messages, or whatnot, the earlier that everyone gets an understanding of what's happening, the earlier we can plan for change in direction if needed. Keeping the communication flowing and ensuring that there are ways to get information that you may have, and don't keep it siloed to yourself is very important.
You're going to make mistakes and it might be scary to confront your manager in doing that, but I think it is important that we address these things as early as possible. That way, we can call it out, ring the bells, and do whatever we need to do in order to get the project on the right track. Sometime rather, in the page before chapter seven in this book, Kent Beck talks about his experience driving with his mom at the time and he steered away from the road and had to get back. His mom had mentioned the following quote, “Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way.” I think that XP is the same thing, where you want to stay on the right side of the road, wherever that is, wherever you're listening, but also, just make those changes ever so slightly to keep the car going as straight as possible in the direction that you need to go.
Communication allows your team to be able to share that information and make whatever small correction is needed as much as possible. Definitely keep the lines open when it comes to communicating. I will say that there are some teams who can communicate and feel a little communicating after work hours, after your 5pm, if that's how you work. Some people don't like when they receive 9pm text. That's something that you probably have to work with your team. Definitely with a working agreement on how we feel about communicating and the types of communication.
If you got paged a duty, then unfortunately, you have to make sure that that line of communication is on all the time. I think that the ability to know the right way of communication is very, very important. Whether that’s Slack, or any chat message that you have, I think it's ideal for you to get used to sharing that communication.
Then I think for meetings, collaborating and meetings in terms of using Miro, I think Miro has become a staple nowadays, whether you want to run a retro, or run any kind of ceremony, you have Miro now to do that. I know there's Figma that people use as well. If your team is solidified and chosen a particular application, always feel free to use that mode of communication to share any information.
One tip I think I've mentioned before in the past is if you're ever running a particular meeting and you need to do it on Miro, you can always type the word Miro, then the name of the ceremony or the thing you want to run, then the word template and chances are, someone's already templatized it. Definitely take that and use that to your advantage, just to find ways to increase communication with your team.
I hope you find these values helpful. I'll try to go through the other four sometime during the week, and I am going to try my best to be back. Here's my attempt in communicating what I plan to do in the future. I'll see you then.
[END OF EPISODE]
[0:09:42] MN: Follow us now on Twitter @radiofreerabbit, so we can keep the conversation going. Like what you hear? Give us a five-star review and help developers just like you find their way into The Rabbit Hole. Never miss an episode. Subscribe now however, you listen to your favorite podcast.
On behalf of our producer extraordinaire William Jeffries and my amazing co-host, Dave Anderson and me, your host, Michael Nuñez, thanks for listening to The Rabbit Hole.
[END]