Getting and giving feedback
One of the best ways to grow as an engineer.
As a software engineer, there are plenty of easy ways to get feedback. You probably are utilizing some:
- Code reviews — an excellent opportunity to have a fresh perspective on your code alterations, identify potential issues, disseminate knowledge, and garner constructive feedback.
- Ideas and suggestions —presenting project proposals or concepts to your colleagues, encouraging thoughts and feedback that contribute to collaborative decision-making.
- Design documents — leverage them to seek input on proposed project implementations, fostering a collaborative approach to refining and enhancing ideas.
- Peer performance reviews — this formal process allows individuals to offer feedback on their colleagues’ strengths and areas for improvement, offering unique perspectives that may not surface through other channels
Feedback is a gift because it’s always much easier to simply not give it, especially if it would be unflattering. So, if someone shares constructive feedback with you, remember it would’ve been easier for them to say nothing. Keep this in mind if your instinct is to reach defensively.
It’s true that people often don’t provide feedback unless prompted. Therefore, actively seek feedback by posing specific questions about particular situations. This is particularly beneficial when undertaking tasks for the first time or when navigating the dynamics of a new group.
Give feedback to others
Giving feedback contributes to a colleague's growth as well as your own. Here are some approaches on how to:
- Acknowledge commendable efforts — when you observe someone delivering exceptional work, express your appreciation. Whether it’s leaving a positive comment on a code review, praising a well-executed refactor, or directly commending a colleague for a polished feature, recognizing their achievements fosters a positive work environment.
- Provide specific feedback — avoid generic phrases like “good job” and instead, articulate what aspects you appreciated and why. Clear and specific feedback is more valuable in helping others understand what they excelled at.
- Offer positive feedback genuinely — only express approval when you genuinely mean it. Insincere compliments don’t contribute to growth or improvement, so be authentic in your praise.
Providing constructive criticism can be challenging. As an engineer, it’s important to avoid appearing confrontational, as negative feedback might be perceived that way. Here are some strategies to mitigate the risk of misunderstanding:
- Focus on a situation and its impact — For instance, if providing feedback after a colleague introduced a bug into production due to insufficient testing, outline the situation, express the impact of the bug, and then seek their perspective on the incident. Collaborate on finding ways to prevent a recurrence.
- Avoid prescriptive language like “you should do this” — especially if you’re not their manager. Instead, facilitate a problem-solving approach by helping them generate solutions. Share what you might have done differently in a similar situation.
- Deliver negative or constructive feedback in person — reduce the risk of misinterpretation. Communicating face-to-face or through video allows you to gauge their reactions and ensures a more nuanced understanding.
- Establish early on that you’re on their side — Acknowledge the natural instinct for a defensive response to negative feedback by emphasizing your intention to help them become a better engineer. Clarify that your motivation is to contribute to their growth, and encourage them to hear you out before forming conclusions.
Providing constructive feedback is indeed an art that improves with practice.
Recognize that providing constructive feedback is a skill that many engineers are still developing. It’s likely that you’ll encounter poorly delivered feedback, even when the intentions are clear. To extract value from such feedback, consider the following strategies:
- Insist on specific examples — When faced with vague feedback like “your code quality could use improvement,” request specific examples or suggest examining a particular pull request to gain a clearer understanding.
- Clarify the impact — Seek clarification on why the feedback is significant. Ask about the impact it had on the person delivering the feedback and others in the team to better grasp the context.
- Ask for suggestions — Encourage constructive dialogue by seeking suggestions on improvement. Pose questions such as “How could I handle this better?” or “What approach would you recommend?” to foster a collaborative discussion.
- Express disagreement with explanation — Understand that you don’t have to agree with all feedback. If you disagree, provide a thoughtful explanation for your perspective. Be cautious, especially if the feedback comes from your manager, and approach the disagreement with diplomacy.
Feedback is a gift, both when given and received. Even poorly delivered feedback can be seen as a gift, though it may require some effort to transform it into actionable insights that you can effectively act upon.