Getting Client & Consultant Teams to Communicate During Software Projects

Working remotely, keeping track of whose work affects who, explaining technical roadblocks to a product owner — there are endless tricky paths to navigate when consulting for a larger organization. At times it might feel like there are a hundred different streams of communication, causing you to bounce between tasks and lose track of goals and responsibilities.

Finding ways to consolidate the streams and develop more effective strategies for communication within teams has been a major growth point in my first year as a developer. Managing expectations, following through with compact conversations, and expressing intentional appreciation can help to smooth over cracks in team structures.

1. Continually Manage Expectations

In any case where you are not working directly with a client or team members, it’s important to regularly clarify expectations surrounding the tasks at hand. If expectations within a team are unclear, frustrations will likely follow.

Whenever I start to feel that my understanding of a story is misaligned with others’, I try these routes to reconnect.

  • Be specific about the requirements of a story and why it’s taking longer/shorter than anticipated. If you have hit a blocker, getting it out in the open might reveal that another teammate knows a fast resolution.
  • Express where your focus is and when or if you will be willing to diverge into unrelated work. Define which stories are important to the sprint and stick to them. Context switching leads to breaks in focus and delays in action, so it’s better to firmly set boundaries about your goals than to jump between stories.
  • Discuss a “definition of done.” Whenever a team starts moving too rapidly and does not define what makes a story “done,” there tend to be misaligned expectations. The story might be passed along with primary functionality but missing pieces in nuanced cases. On the other end, it might get passed back with expectations of related but out-of-scope features.

2. Keep It Compact (“In English, Please”)

When communication is getting scattered and messages are flying back and forth, someone will often reel in the conversation by jumping in with “in English, please.” But, hey, if you’re already speaking English, what does this really mean? How can a team conversation be more coherent for everyone?

  • Avoid long and detailed messages. Send only concise messages outlining the problem you are facing, the questions you need answered, and a hypothesis of the solution if relevant. Be direct and name those who can assist you — don’t put out open-ended questions and hope that the right person claims responsibility for responding.
  • Break apart the conversation pieces. Send one question at a time and wait for a response. If time does not allow for this, bullet points are the next best thing. Long and continuous paragraphs can lead to important insights being lost in the middle.
  • Consolidate issues:
    • If a teammate messages you about an item you know relates to someone else’s work, connect them directly. Minimize extra routes of communication by eliminating yourself as a go-between messenger. If you find yourself in thirteen different one-on-one chats, you may need to make consolidations.
    • Include all who may be affected by changes. If you are making changes that will require adjustments in a different area, create a tracking system through a distinct message thread or spreadsheet. Even if the related changes are not urgent, they are important, and immediately including everyone who will be impacted reduces future confusion.
    • Add it as a story. It’s okay to message someone about a side issue or feature to draw awareness. However, don’t expect them to remember that conversation without attaching it to a backlog item. Context switching is inefficient. Logging your findings in a story that can be prioritized and connected with existing work helps keep things compact.

3. Make it a Call

If I suspect that a conversation is going to require more than two or three quick messages with a teammate, I usually make a call. It’s often faster to screen share and demonstrate your technical or business-related concerns than to try and type them out in a succinct message.

If I’m trying to understand a process that I may need to repeat in the future, I will often record the call as a reference source. Calling can also be a highly effective strategy because it can expose related concerns. You may discover that, while going through a workflow, a teammate notices something outside of the scope of your task that needs adjusting.

4. Show Appreciation

Perhaps the most important component of effective communication is showing appreciation. The 7 Habits of Highly Effective People uses the analogy of an emotional bank account — it’s not sustainable to take out more than you are putting in.

Point out where communication in your team has been effective as an encouragement to keep it going. Recognize when someone has given you valuable help. And don’t forget to show appreciation for yourself. Outline specific tasks you have completed at sprint demos and retros, and don’t overlook the effort that they took.

It’s easy to forget to prioritize intentional strategies for communication and find yourself, months later, flailing in disorganized tasks and misaligned expectations. Regularly circling back to expectation management, conversation consolidation, and team appreciation might be what you need to make the rest of your development experience that much more organized.