Mastering The Lingo: A Senior's Guide to Agile communication

How to Communicate More Effectively in an Agile Software Development Team

Introduction

Effective communication is crucial in any team setting, but it is especially critical in an agile software development team. Agile development practices require constant communication and collaboration between team members. In this blog post, we will discuss how software developers can communicate better with their non-technical and technical team members using examples of good and bad communication.

Effective Communication with Non-Technical Team Members

Communicating with non-technical team members can pose significant challenges for younger or less experienced developers. It can be frustrating when our technical jargon and concepts aren't easily understood by non-technical individuals. Finding the balance is an important skill for a master communicator. Lets review some examples

Bad communication example:

"The API's are not responding with the correct response payloads."

Good communication solution:

"The back-end services are not returning the expected results."

Bad communication example:

"We've created all the front-end components; all that's left is to wire them up to the API's and start consuming them. We will submit a PR/Pull Request when it is done."

Good communication solution:

"We have completed all the functionality required for the user platform. The remaining task is to connect it to the backend services. Once done, we will submit our work for review and integration into the code base."

Bad communication example:

"We're currently busy promoting the source to the testing environments. Once the pipelines have completed, we will notify the team that they can test on the SIT and UAT environments."

Good communication solution:

"The platform is currently being prepared for release to the testing environments. Once our deployment tasks have completed, we will inform the testing teams and provide them with the appropriate testing links."

Communicating Unfavourable Messages

In any complex development project, it is inevitable to encounter undesirable and unforeseen circumstances. Learning how to convey such messages helps promote understanding, prevent overreactions, and facilitates productive conversations to address and resolve the issues at hand. Being able to deliver bad news with grace, is an important part of a master communicators toolkit. Lets see how this is done.

Bad communication example:

"I couldn't finish all my tasks yesterday and will have to spend more time to work on them today. this will affect the work I’ve committed to in this sprint"

Good communication solution:

"Yesterday, I was unable to complete all of my tasks. However, I managed to finish a portion of the work and will continue with it today. I will make an effort to catch up, but if I am unable to do so, I might need to re-evaluate the amount of work I committed to for this sprint."

Bad communication example:

"I am unable to continue with my work until this blocker is resolved. Until then, I won't be able to do any work."

Good communication solution:

"I am currently facing a blocker that prevents me from progressing with my assigned tasks. I will follow up within x hours to check if the blocker has been resolved. In the meantime, I will try to pick up other tickets. However, if I am unable to work on anything else, I kindly request that the blocker be escalated."

Bad communication example:

"I couldn't fully understand the requirements, and now I have to change my code so that it works. This is going to take more time."

Good communication solution:

"I misunderstood the requirements, which means I may need to review and update the work I have already done. I will update my tickets accordingly to reflect the additional time required for this adjustment."

Conclusion

In conclusion, effective communication plays a crucial role in handling unfavourable messages. By striving for clear and concise communication, we can create an environment that promotes collaboration, problem-solving, and ultimately contributes to the success of the project at hand.

Handling Conflict or Tense Situations

In many projects, clashes between personalities and responsibilities can give rise to tense situations, making the integration of technical and non-technical aspects a challenging and frustrating task. As a master communicator, effectively managing conflicts requires the ability to communicate rationally, objectively, and clearly with all stakeholders involved. Lets tackle some scenarios to sharpen our skills.

Scenario:

The team is unable to meet the project deadline, and the project manager blames the development team. However, the root cause lies in a combination of unrealistic deadlines, scope creep, and insufficient time allocated for testing and bug resolution.

Bad communication example:

"It's not the development team's fault. The deadline was messed up, the business added extra requirements, and we didn't have enough time to test and fix bugs. The planning was also inadequate."

Good communication solution:

"We acknowledge that we won't meet the deadline. However, we want to highlight that we were unable to complete the required work, and we had concerns about the level of testing and the number of issues that were identified. As a team, we need to reassess our current status and outstanding tasks. It's crucial that we refrain from accepting or focusing on additional work that falls outside the project scope. Additionally, we must allocate sufficient time for thorough testing and bug resolution."

Scenario:

A bug was deployed to the testing environment just before a major demo, and the upset business analyst blames the development and testing teams for an unstable system. They demand an explanation for why the bug was missed during developer testing and by the testing teams.

Bad communication example:

"It's not the development team's responsibility to ensure the system is always demo-ready. The business analyst should have checked system stability before the demo or at least informed the development and testing teams about the planned demo."

Good communication solution:

"The dev team is currently focused on meeting the deadline. If a demo is required, please notify us in advance, so we can ensure system stability. Although we cannot guarantee the absence of mistakes or system instability, we will make every effort to ensure a stable system before a demo and can delay deployments or changes if necessary. We will strive to improve our developer and regression testing processes, but it's important to remember that a system under development may encounter issues and bugs. Going forward, let's plan demos in advance or even conduct dry runs to better prepare."

Conclusion

In the scenarios mentioned, it is crucial to address misunderstandings and take responsibility for shortcomings without resorting to blame. Open and transparent communication allows for a better understanding of the factors contributing to undesirable outcomes.

Handling conflict as a master communicator requires empathy, active listening, and a proactive approach to problem-solving. By fostering a culture of open communication and mutual respect, teams can navigate conflicts more effectively and maintain productive working relationships.

Overall Conclusion

Its a skill to navigate a projects lifecycle, seamlessly bridging the technical and non-technical. As a Junior / Intermediate or Senior , your career will flourish if you learn to communicate clearly and efficiently with your team. Pay attention to your words and messages and make sure you're engaging as many different people with the way you choose to communicate.

Comments