Secret ingredients to quality software

SSW Foursquare

Rules to Better Giving and Taking Feedback - 16 Rules

  1. In any job, you will most likely at some point face some criticism. Someone may be telling you that you’ve done something wrong or just expressing displeasure because you didn’t do something they wanted.

    The best way to take this is to reply to the person and tell them the following 3 A's.

    The 3 A’s: Acknowledge, Apologize, Act

    Acknowledge - The first part of good customer service is acknowledging that something happened. If you don't acknowledge the pain, then another person won't know if you agree or not.

    Apologize - Apologize if you messed up… or even if you didn’t. Just be clear you are sorry for their situation. E.g. "I am sorry for the downtime you have been experiencing today"

    Action - Lastly, explain how you will take action now, and in the future.

    Even if you've been wrongly accused of something, you should still show you understand the other person's frustration and demonstrate initiative. Always have a view of the future and the big picture.

    Warning: When wrongly accused of something, most people get stuck on defending themselves, where customers would prefer to hear you care, will take any ownership of the problem, and tell them your plan asap.

    Next is to see if you can avoid it happening in the first place – you could explain the new steps in the process you’ll add or simply say: "I'll be more diligent testing in the future".

    More: The 3 A’s of Business (a great article from American Express)

    Figure: Make sure you know how to take criticism well

    Defensive behaviour
    Figure: Active listening can help with communication issues


  2. Scrum processes are useful for more than just software development - it’s a great tool for organizing and optimizing all kinds of work, from presentations to meetings to events, sales, and more. A very important part of the Scrum process is the Sprint Retrospective Meeting. It is basically feedback, an important commodity to any professional who wants to improve their game.

    You should get into the practice of having a retro for most tasks. It’s a great way to get feedback while it’s still fresh in people’s minds, and it lets you know what you need to change to be even more successful next time. The guys at SSW jokingly say "you can't eat dinner with Adam Cogan without a retro about the meal".

    Get it in their mind at the kick-off

    Let everyone know from the start that we do a “retro”, and what it entails. This way, they will know to be mindful during the event/task/presentation.

    It is very important that atendees take notes, which will serve as reminders of what happened during an activity. There will be things they like and things they don't.

    Then at the end, remind people: “In the spirit of Scrum, let’s do a retro”. This is the time to discuss what was good and what needs to be improved with people in the room or with the presenter.

    The 3 questions

    Start with “What went well?” - everyone must say one thing.

    Then move onto, “What didn’t go so well?” This part can be painful but it’s important - we need to know these things so that we can make improvements.

    Finally, we ask, “What could we do differently next time?”

    Adam: How was the presentation?
    Eddie: Yeah, it was alright.

    Bad example: This line of questioning doesn’t provide useful feedback

    Adam: What went well with your presentation?
    Eddie: People seemed to really relate to the case studies I presented.
    Adam: What didn’t go so well?
    Eddie: My demo didn’t work. That was really embarrassing.
    Adam: What would you do differently next time?
    Eddie: I’d definitely get there a bit earlier so I’d have time to troubleshoot that pesky demo on their wifi! That would also give me extra time to talk to the audience so I could find out what problems they’re hoping to solve with my session - it’s a good way to get more case studies!

  3. Don’t start thinking that some conspiracy is behind someone's actions.

    American writer William James (born 1842) said:

    "Never attribute to malice that which is adequately explained by stupidity"

    Brian Harry (in 2018) said something similar in Giving feedback:

    "I’ve observed that humans have an inherent tendency to want to ascribe motive – to determine why someone did something."

    “Joe left me out of that important conversation because he was trying to undermine me.”

    Bad example 

    Any time you find yourself filling in the because clause, stop. You don't know why someone does anything. That is locked up securely in their head. When filling in that blank people insert some negative reason that's worse than reality. So, when giving feedback, stick to what you can see.

    “Joe, you left me out of that important conversion.  I felt undermined by that.  Why did you do it?”

    Good example

    In this example, I articulate exactly what I saw happen, how it made me feel and ask Joe to explain to me why. Joe may dispute that he left me out – that's fairly factual and we can discuss evidence and Joe can't dispute how I felt, at least not credibly. Try as hard as you can to stick to things you personally observed and stay away from asserting motive. Have a genuine conversation designed to help you better understand each other’s perspective and what each of you can do better in the future.

  4. When you notice that someone has done something that could have been done better, make sure you are tactful in your correction/suggestions. When you are giving someone a correction or tip, try to include an URL to back up your point.

    For example, if someone sends you an email that should be an appointment:

    Subject: Meeting

    Hi Guys,

    Let's meet on Thursday at 3 PM

    Figure: Someone requests a meeting using a normal email message

    You could reply in different ways:

    Subject: RE: Meeting

    Hi Mary,

    FYI - an appointment would have been better. See rule in Rules to better Email

    Figure: Bad Example - Just pointing the mistake

    Subject RE: Meeting

    Hi Mary,

    I noticed you did not send an appointment for this meeting. I hope you don't mind, but I have gone ahead and created one so we don't all have to set a reminder individually.

    Have a look at our Rules to better Email. We have a number of helpful standards like this if you're interested.

    Figure: Good Example - Being proactive to solve the problem + pointing the mistake in a friendly and polite manner

  5. Brian Harry said in his blog:

    "Examples – When giving feedback, it’s often useful to use examples. Examples help make the feedback concrete. But, don’t allow the conversation to turn into a refutation of every example. I've been in conversations where the person I'm talking with wants to go through every example I have and explain why my interpretation is wrong. Be open to being wrong but don’t let it turn into point/counterpoint. Examples are only examples to support your feedback."

    When receiving a generic criticism, it's natural to sometimes ask for examples to help you understand what type of behaviour is being alluded to, but be careful to not then become defensive or fixated on justifying that instance.

    If you feel you have some vital context to explain about that one example, make sure, as a minimum you end by saying "...but I do take your point in general."

    Jane: I feel like you never reply to my emails, but I see on emails I am cc'ed on your reply to emails from others. Bob: Really? Can you give an example? (pause) Jane: The one about XXX Bob: I didn't reply because I saw Tiago reply. (pause) Jane: And that other one about YYY. Bob: I didn't reply because I thought you're upset and I felt it was a sensitive topic. (pause) Jane: I can't think of any other but it does happen

    Figure: Bad example - Jane runs out of arguments and walks away deflated

    Jane: I feel like you never reply to my emails, but I see on emails I am cc'ed on your reply to emails from others. Bob: Really? Can you give an example? (pause) Jane: The one about XXX Bob: I didn't reply because I saw Tiago reply... however, I do take your point in general. I will try to do better for the next week. Let me know if I've improved.

    Figure: Good example - Jane feels heard

    This will make the person who's giving you the feedback feel heard and that you have taken the criticism constructively. If you are also able to proactively suggest alternative behaviour for the future that would work for everyone, then you will build trust.

    SSW Team 2
    Figure: It's important that the other person knows that they've been heard

    Alternatively, to demonstrate the feedback was understood correctly and to reaffirm your own understanding, it can be useful to offer a brief summary of the feedback provided and any necessary changes in an email or IM to the person. This will in-turn ensure you don’t overlook any feedback when attending to it and the person providing the feedback knows if there may have been any confusion, before the task is completed again.

  6. One of the biggest mistakes people make when giving feedback is giving it when one or the other is stressed, angry, frustrated, or in a hurry – and this is one of the worst times to give feedback because people aren’t in a place to hear it and really think about it. Make sure the recipient of the feedback is in a safe space and prepared to take the feedback, rather than just rattling off everything that’s on your chest the moment you next speak to them.

    Giving feedback should be done in a safe space, so as not to seem like you are directly attacking the feedback recipient. The way you word and give feedback is important and should be considered.

    Consider starting with the following:

    "Hey, can I share something with you?"

    "Hey, have you got time now for a retro?"

    Then start with the good…  before the bad .

    Brian Harry said in his blog:

    "Don’t try to give feedback when you are angry or frustrated. Take the time to digest what you need to say – to separate your frustration from an objective assessment of what happened. Have a calm conversation about what you observed and what could be done differently."

  7. Every day you will probably come across something that could be improved. If you're not making improvements, you're going backwards. But don't make suggestions or criticisms without being specific.

    "Do you know our sales process is pretty bad, what are you going to do about it?"\

    Figure: Bad Example - Nonspecific criticism

    When you find a problem, pinpoint it directly (and recommend a solution):

    "The current sales process is pretty bad. It does not ensure that a prospect is followed up by a phone call within 7 days of an initial meeting. Please create a workflow in CRM, have it tested by the sales manager, and then we will email the sales team to inform them about the improvement."\

    Figure: Good Example - Offering criticism in this way ensures that something will happen to fix the problem

    "Not done, please try again"

    Figure: Bad Example - If they don't immediately know what to fix, this might end up in their "too hard" bucket and never get done

    "Not done, you missed the second requirement"\

    The specific missed requirement lets them quickly fix the mistake

    Of course, there are times that you can 'feel' that a problem exists, but you may not even be sure how are unable to pinpoint it or can't think of a good solution. In this instance you should speak to someone who you think may be able to identify a solution, come to an agreement, and then request that action be taken.

    When criticism is generic, it is impossible to know what to fix.

  8. Avoid curt emails when correcting people. The sandwich rule approach is an effective way to provide feedback to other team members and clients.

    1. Start with positive feedback
    2. Give your recommendations for improvement
    3. End with some additional positive feedback (you may repeat #1)

    This optimistic approach makes the receiver digest the feedback in a better way, allowing you to maintain a healthy relationship with your team members and clients.

    Figure: Bad example - The opposite of the Sandwich Rule

  9. A sentence can be phrased in many ways. It is important to use positive language when speaking to clients. Instead of saying "I will NOT do X until you do Y", you can say "When you do Y, I will be happy to do X".

    We will need your agreement on the mockup, and as soon as you are happy with it, we will develop it to the agreed mockup. We will not be able to change the mockup once made and you are happy with it.

    Bad example

    We will develop the report once you are happy with and have signed off the mockup.

    Good example

  10. Swearing is not acceptable at work. People should not get comfortable with bad language as the work environment would suffer. You should be especially careful when giving and receiving feedback.

    Some good deterrents are:

    • A swear jar
    • To enforce 10 push-ups for every infraction (recommended - this is the same concept as a swear jar but also promotes fitness).

    gordon ramsay
    Figure: Gordon Ramsay - The only man who can get away with professional swearing

  11. According to Sydney Morning Herald's "Flame emails missing the mark":

    "The senders of email messages expected their partners to correctly interpret their tone nearly 80% of the time, but in fact, they only scored just over 50%... Those attempting to interpret the message believed they had scored 90% accuracy".

    Because there is no "tone of voice" in an email, sarcasm can easily be misinterpreted by the receiver. You can use a smiley face or emoji to soften it up a bit.

    Bad example: This is bad because it may seem like John is being reprimanded, even though the sender may just be giving him a "heads up" for next time

    Good example: Be friendly by adding a greeting. When in doubt, use a smiley face at the end of the comment

  12. Usually, when you notice some undesirable behaviour, you would generally give feedback directly, but sometimes there is a better way that can train both the person and also their direct manager:

    You can ask a manager for an "off the record" conversation where you can tell them something you have observed about the person they're managing and suggest that, if they agree, can they say something to the person?

    This teaches the manager to observe these things and also helps the employee not to look bad (or get in trouble) from the boss. Then when/if the employee takes the feedback and it results in better actions in the next meeting, then you can compliment them publicly in the retro.

  13. Do you document "TODO" tasks?

    When you have an idea for content or notice something content is missing and cannot be written straight away, it is important to document it. It should be done by adding the words "TODO:" followed by what you want to be added there.


    For GitHub projects, creating an issue using "TODO" as prefix is the preferred way.

    VS Code Extension

    In VS Code, we recommend using the extension Todo Tree. You can find TODOs and highlight them in open files.

  14. Do you speak up about unfairness?

    Throughout your career, you might come across a scenario that feels unfair. In these situations, communication is vital for resolving conflict and making all parties feel content with the result. Let's take a look at some scenarios that may be perceived as unfair:

    • Someone might get a promotion when you felt you deserved it more
    • A group of employees might be left out of a public yearly bonus
    • A colleague might be put on a project that someone else is more suited to

    There are 3 perspectives to consider and each has different strategies for maintaining a good working environment.


    Managers are human, and sometimes don't make the right decisions.

    • Avoid unfair situations - Steer clear of arbitrary decisions that could be perceived as unfair. For example, if you are going to choose who the best employee is, you better have numbers to back it up.
    • Communicate decisions - By communicating the reasons for every decision you set the right expectations for employees and prevent them from feeling frustrated.
    • Give a heads up - If you know someone might feel a situation is unfair, give them a heads up ahead of time.


    Getting an accolade or present is great but consider your colleagues.

    • Remain humble - You might feel proud of your new accomplishment and that's awesome. However, make sure you don't advertise or boast about it because that may cause resentment among your colleagues and foster a bad working environment.

    Neglected individual

    Missing out on an award can suck. What should you do?

    • Ask questions - Finding out the reasons for decisions will help you understand why it happened. That knowledge will be valuable to you in the future.
    • Speak up - If you feel things are unfair make it known tactfully. If it is bothering you, the longer you wait, the worse it becomes. Speaking up will give the person making the decision a chance to explain or rectify the issue.
    • Be reasonable - Everybody has their day of sunshine. Even if it doesn't totally make sense to you. It would be awesome if you can be genuine and privately send a congrats or even better do it publicly.

      "Always clap for your friends, even if their dreams come true before yours."

    Video: Two Monkeys Were Paid Unequally: Excerpt from Frans de Waal's TED Talk

    Video: Speaking Up about Unfairness - with Adam Cogan and Jean Thirion

  15. Do you find the positive in the decisions?

    Everyone wants a place where people help each other. Unfairness can really impact people in the workplace.

    It all starts with how you approach things, some people are better than others at dealing with unfair situations.

    Lets assume one of these common scenarios:

    • New great project – someone is assigned to it... someone is unhappy
    • New promotion – someone gets it, someone else is unhappy

    These might seem like unfair situations. People don’t want to be unfair... friends don't... bosses don't.

    Here are 10 tips for how you can manage unfairness.

    1. Gotta speak up - See Do you know to speak up?
    2. Happiness is relative - Unhappiness can come from comparisons with others. Instead compare yourself with your day yesterday.
    3. Get one thing in life, lose another - Can't have everything. When you are saying 'Yes' to one thing, you are saying 'No' to another.
    4. The 'Happiness Equation'
      Happiness = Expectations - Reality.
      If you want to be happier, then:

      • Reduce your expectations
      • Increase your reality
    5. Consider luck - Everyone wants to succeed in life. But what causes some of us to be more successful than others? Is it really down to skill and strategy - or something altogether more unpredictable? Sometimes peoples success is simply luck. Read the book "Fooled by Randomness"
    6. Compete with yourself by embracing Scrum – Competing with yourself is the best approach. The same with teams. In software, Scrum is the best way of working as you only compare yourself... or your team with what you did before. Using empirical data is the way to go.
    7. Understand intentions - Try to see yourself in others shoes.
      Understand that people don't want to be unfair. It is common to be assuming the wrong stuff.
    8. Be the 'squeaky wheel'

      "A squeaky wheel gets the most oil."

      Ask questions, and you will understand even better the logic your friend or boss is using. Bonus they now know this is a topic you have interest in... so they'll give you extra information.

    9. Have attainable ambition - You need expectations to be realistic enough to push you, not so much that it makes you unhappy.
      Overly ambitious people are often unhappy... they never get there! Sometimes people find they are never rich or successful enough...
    10. Celebrate other people's wins - Be at peace and in a place where you are pushing each other up, rather than climbing over each other. Everybody gets their days of sunshine. When others achieve a goal, be happy for them, send a nice message, 'like' their posts, etc.

      "Always clap for your friends, even if their dreams come true before yours."

    Do the above and you can have a culture of helping yourself and helping others.

  16. Forms - Do you ask the value they received?

    Microsoft Forms and Google Forms provide an invaluable way of collecting data from your employees, users and other stakeholders. It's important to understand if their experience of providing this feedback is a good or a bad one.

    Therefore, create a last question where they rate the form's questions from their perspective. That way you've got metrics to make better forms in the future.

    Let's take a look...

    There are 2 steps to getting objective data about forms.

    1 - Measure the value

    The best way to measure value is simply to ask your users. Put a question at the bottom of your form and ask them to give it a rating out of 5.

    Figure: Add a question asking your users for the value of the form (make sure the question is always the same)

    For reporting, word this question the same way each time so that you can easily consolidate the results in a reporting platform like Power BI.

    Figure: Using Power BI you can check what value you are getting out of your forms

    2 - Educate the users

    However, simply asking the question is not enough. Most people will answer a form with 4 or 5 by default, so it is important to educate your users and let them know to try and objectively rate it relative to past forms.

    In particular, new people are enthusiastic and want to give everything 5 out of 5. They are often surprised when they find out this isn't helpful

    The general guidance should be to compare the value against previous entries. For example, the scale should be something like:

    • Terrible - 1
    • Poor - 2
    • Okay - 3
    • Good - 4
    • Outstanding - 5

    If you educate the users about this, your data is going to be much more reflective of the actual value each form gives.

We open source. Powered by GitHub