Lost in Translation: The Art of Communication as a Software QA Engineer

Today was busy. Even though I had a lot to do, everything was going smoothly. As evening approached, I was thinking about heading home. Before leaving, I checked my tasks for tomorrow and saw a small pull request to test. I thought, “I’ll quickly check this, give some feedback, and then leave.” But, surprise! I found a bug. It wasn’t a big deal, just a tiny error. I thought it’d be easy to explain to the developer and he’d fix it fast. Maybe I could even test it again before leaving. I hoped to sort it out quickly and head home. However, that’s when the challenges of communication reared their head…

I started by sending a message on Slack detailing the issue I discovered. At first, he didn’t quite grasp what I was pointing out. Then, he responded with the all-too-familiar: “It works on my machine!” Feeling a chat would clarify things, I initiated a video call. But even then, it was evident he wasn’t getting my point. So, I walked him through the problem step by step. After about ten minutes, we finally saw eye to eye. When I asked if he could address the issue, he revealed that the software’s behavior was intentional due to updated acceptance criteria. Wait, the ticket didn’t mention that? I reached out to the product owner for clarity. She confirmed that the software was functioning as intended. There had been an internal meeting where they revised the acceptance criteria, but they had overlooked informing me.

This entire episode cost me an hour and a half, all for nothing. Turns out, there wasn’t a bug, and I’d spent so much time in discussions that led nowhere. And there I was, still at the office. It might seem like the lesson here is to avoid testing if you’re eager to head home, but that’s not it. The real takeaway is the immense impact of communication or the lack thereof. Effective communication is often undervalued and overlooked, even though I find myself in such situations regularly. We unknowingly spend so much time in meetings and calls that don’t yield results. Everyone on a software team has a unique approach and communication style. At times, it feels like each person is speaking a different language, yet we strive to understand one another, often underestimating the importance of clear communication. But then, what truly constitutes “good communication” and what should be kept in mind when talking about the different roles in a software development team?

In this post, I’m diving into my journey as a software quality assurance (QA) manager, focusing on the intricacies of communication within a software development team. As a tester, you might encounter developers who challenge your test outcomes, product owners who staunchly back their requirements, or project managers that say there is no budget to test. Such dynamics can be daunting and potentially sour the team atmosphere. However, it doesn’t have to spiral that way. There’s a plethora of strategies to convey even the trickiest of topics in a way that uplifts the whole team. Adopting these methods not only fosters a healthier work ambiance but also boosts productivity, freeing up time for what truly matters.

Let’s start with the basics. What are some fundamental communication guidelines? Many of these might seem like common sense: don’t talk over someone, avoid interrupting, and so on. But I’d like to delve deeper, sharing insights from my journey and highlighting what I believe is essential for effective communication.

Begin with the Fundamentals

Engage in Dialogues, Not Monologues:

Too often, I’ve observed individuals addressing concerns or disagreements by launching into a monologue. Remember, you’re not lecturing a child or instructing a student. You’re interacting with a fellow adult. Instead of delivering a one-sided speech, initiate a dialogue. Pose questions like: “What’s your take on this?” or “How would you handle this scenario?” When people sense their opinions are valued, you’ll uncover insights that might otherwise remain hidden.

Recognize Your Audience:

A common oversight in communication advice is the assumption that one size fits all. But remember, everyone is unique! What resonates with one individual might fall flat with another. Some prefer straightforward, no-nonsense directions, while others appreciate a bit of chit-chat before diving into the main topic. Some might favor written communication, while others thrive in face-to-face interactions. It’s essential to tailor your approach based on who you’re speaking to, understanding their preferences and communication styles. There’s no universal solution, so always be adaptive and considerate in your approach.

Recognize Your Vulnerabilities:

While many of us are trained in giving feedback (often starting with phrases like “In my opinion…”), we might mistakenly believe we’ve mastered all there is to know. What I often find challenging, and what many overlook, is the art of receiving feedback, especially when it’s less than flattering. It’s easy to become defensive and start justifying our actions. However, constructive criticism shouldn’t be viewed negatively. On the contrary, it’s vital for personal growth. It’s through such feedback that we can identify and address our shortcomings. So, while learning to give feedback is essential, it’s equally, if not more, crucial to learn how to accept it. Stay open-minded and be keen to understand how others perceive your communication style.

Master the Right Terminology:

A frequent hiccup I’ve noticed when individuals join a new company or embark on a fresh project, especially if they’re novices in the field, is the misuse of industry jargon. They might refer to ‘bugs’ as ‘mistakes’ or use ‘build’ when they mean ‘deploy’. And my pet peeve: saying ‘Q&A’ instead of ‘QA’. Since when did I become the go-to for queries? To communicate effectively, it’s crucial to familiarize yourself with the correct terms and nomenclature. This ensures that your concerns or questions are clearly understood by all. Many companies have specific abbreviations or terms unique to their operations. Grasping these early on will ensure you’re both understood and seen as a competent communicator.

Developers and QAs: Navigating the “Feature or Bug?” Debate

How should a QA communicate with a Developer? This question frequently pops up when discussing communication dynamics in software development. It’s also a staple in job interviews for software QA roles: “How would you respond if a developer claims something isn’t a bug or that they can’t fix it?”

Throughout my career, I’ve collaborated with a diverse group of developers. As previously emphasized, everyone has their unique style. Some developers value the QA’s role, recognizing their contributions to software quality. Others, however, might be skeptical, even assuming that QAs lack a genuine understanding of software development. So, the initial step is to clarify your intentions and understand what the developer expects from you. I often remind developers that my role isn’t about pinpointing flaws or criticizing their work, but rather assisting them in achieving their best output. It’s vital to convey this collaborative spirit, emphasizing partnership over opposition.

Once this collaborative mindset is established, discuss the logistics of your interactions. While some developers prefer detailed written feedback, others might want a direct conversation once a feature is ready for testing. By aligning on communication preferences early on, you can preempt potential issues. Additionally, actively seek feedback on your work from the developer. This serves a dual purpose: it allows you to refine your approach, and it reinforces the sense of teamwork, dispelling any notion of one-sided criticism. Aim for a genuine dialogue, steering clear of one-sided conversations.

Scenario 1: “But It Works On My Machine!”

This is a phrase many in software QA will find all too familiar. You flag an issue, providing feedback to the developer, only to hear back, “It works perfectly on my end.” So, where does the disconnect lie? More often than not, it’s rooted in communication gaps. Perhaps the bug you identified or the concern you raised wasn’t articulated enough. Were the preconditions specified? Can the bug be consistently replicated? When did it occur, and on which version? The more comprehensive the details provided to the developer, the easier it becomes for them to grasp and replicate the issue. For particularly elusive problems, I prefer a direct approach: showing the developer the issue in real time. This can often expedite resolution and save considerable time.

Scenario 2: “It Can’t Be Done!”

At some point in your QA journey, you’ll encounter a scenario where, upon reporting a bug, the developer responds with, “I’m aware, but I can’t implement it as per the acceptance criteria.” So, what’s the next step? Simply accept it?

Certainly not. The initial move is to engage in a detailed discussion with the developer about the issue. It’s crucial to let them articulate precisely what they’ve done and explain the challenges preventing them from meeting the criteria. Another vital aspect to probe into is why this limitation wasn’t highlighted during the refinement phase or when the feature was initially discussed. More often than not, you’ll discover that the feature is implementable, but perhaps not within the given timeframe. Such challenges often arise with less experienced developers who might not be familiar with certain techniques or might have limited knowledge of the framework in use. Engage with them, understand their constraints, and brainstorm solutions. This could involve roping in a senior developer or setting up a discussion with the Product Owner. Sometimes, the seemingly insurmountable features might not even be top-priority.

Product Owners and QAs: The “Ready for Release?” Conundrum”

Engaging with the product owner (PO) often entails navigating a maze of discussions and potential misunderstandings. Typically, a PO’s primary focus revolves around two central themes: the product’s progress and, well, the product’s progress. Such a singular focus can sometimes lead to intense debates about product functionalities and release timelines.

Just as with developers, POs come in various shades. Remember, we’re all human. Some POs are meticulous, desiring detailed reports, while others adopt a more relaxed approach. Whenever I’m introduced to a new project and a new PO, my first step is to schedule a meeting. This isn’t just to discuss the project but to understand their work style and their expectations from a QA perspective. Such interactions offer invaluable insights into their viewpoints and also provide an opportunity to clarify essential aspects. Topics like the customer’s actual requirements, the desired level of detail about the testing process, and the overarching project processes are vital to address.

It’s crucial, especially at the outset, to be inquisitive. Define and present your workflows and processes. This proactive approach can significantly reduce potential misalignments down the line. Additionally, discuss the outcomes of your QA efforts and how they should be conveyed. Determine if they require comprehensive test reports and identify the information vital to them.

Scenario 1: “What Exactly Does the Customer Want?”

While testing, I’ve occasionally found myself in a quandary about whether a feature functions as intended. In such instances, I turn to the PO, seeking clarity on the customer’s exact requirements. It’s not uncommon to find ourselves striving for intricate solutions when, in reality, the customer might be seeking something simpler. It’s imperative to maintain open communication on this front, periodically checking in to see if requirements have evolved. Additionally, make an effort to attend as many client meetings as possible. Remember, not all product owners have a technical background, and they might inadvertently overlook or forget to relay certain specifics during customer interactions.

Scenario 2: “Everything’s Laid Out in the Acceptance Criteria.”

A pivotal role of the product owner is to furnish clear acceptance criteria for user stories. Over time, I’ve encountered varied methodologies in ticket creation. If any acceptance criteria seem ambiguous, don’t hesitate to engage the product owner for clarity. While some might be apprehensive about voicing concerns, it’s essential to remember that these criteria should be lucid and universally understood. Moreover, if you observe any deviations from the established acceptance criteria, initiate a dialogue with the developer, followed by a discussion with the PO. Share your observations and collaboratively brainstorm solutions. As a QA, you’re the guardian of product quality, often possessing the most comprehensive understanding of its current state. This insight is invaluable to the product owner, necessitating regular and open communication between both parties.

Project Managers and QAs: The “Budget Crunch” Discussion”

While some companies entrust budgetary concerns to the product owner, others have a dedicated Project Manager overseeing finances. Typically, these PMs lean more towards the business side of the development cycle, often framing discussions in terms of numbers. Engaging with such a perspective can occasionally be challenging, but the key is to remain composed and tailor your communication to resonate with them.

Scenario 1: “We Can’t Afford More Testing!”

Many of us have encountered this scenario: you’re deep into testing, contemplating the myriad components yet to be assessed, only to be informed by the project manager that the budget’s nearly exhausted, leaving no room for further testing. I’ve navigated this predicament multiple times, and my strategy remains consistent. Begin by collating all the bugs identified over the past month or two. Next, create a comprehensive dashboard or list highlighting the features and sections still awaiting testing. Remember, you’re liaising with someone driven by numbers, so present your case quantitatively. Illustrate the financial savings achieved by identifying those bugs early on and project the potential losses if the remaining components go untested. While PMs might not always be swayed by technical nuances, they’re invariably attentive to cost-saving measures and judicious budget allocation. Frame your arguments in this context, and you’ll likely find common ground.

Conclusion

So, the moral is simple: a bug isn’t just about code; it’s about the web of communication spun around it. Every bug, every feature, and every line of code exists within a dynamic ecosystem of human interactions. It’s these interactions, these exchanges of ideas and feedback, that shape the software’s journey from conception to deployment. Embracing open dialogue, actively seeking clarity, and adapting your communication style to resonate with your coworkers are not just best practices; they’re essential tools in a QA’s toolkit.

And as for those video calls? Don’t just participate — own them. Think of each virtual meeting as your stage, a platform where you’re not just a passive actor but a proactive storyteller, weaving narratives that bridge the gap between technical challenges and collaborative solutions.

In the end, the lines of code are essential, but it’s the lines of communication that truly bring software to life.

Recommended Books about the topic:

  • Communication for Engineers by Chris Laffra

  • Crucial Conversations Tools for Talking When Stakes Are High by Kerry Patterson

  • Peopleware: Productive Projects and Teams by DeMarco Tom

Previous
Previous

AI Under Fire: Why Are People Increasingly Skeptical About AI Tools and Is It Justified?

Next
Next

Ensuring Quality in Medical Devices: The Role of Software QA in the Healthcare Industry