<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Feedback - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Feedback - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 26 May 2026 04:44:18 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/feedback/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Give Good Feedback for Effective Code Reviews ]]>
                </title>
                <description>
                    <![CDATA[ Hey, open sourcer! 😊 I’ve heard through the digital webs that you’ve become quite the wordsmith when it comes to giving feedback on pull requests and want to learn something new.  No worries, I’ve been there myself when I started getting more comfor... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/code-review-tips/</link>
                <guid isPermaLink="false">66b904f807654d99f7424c45</guid>
                
                    <category>
                        <![CDATA[ code review ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Feedback ]]>
                    </category>
                
                    <category>
                        <![CDATA[ GitHub ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Christine Belzie ]]>
                </dc:creator>
                <pubDate>Mon, 03 Apr 2023 16:49:44 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/04/Cover-for-first-FCC-article.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Hey, open sourcer! 😊 I’ve heard through the digital webs that you’ve become quite the wordsmith when it comes to giving feedback on pull requests and want to learn something new. </p>
<p>No worries, I’ve been there myself when I started getting more comfortable in the open source world. So, grab a chair, your favorite snack or beverage (I highly recommend water. It’s fresh and good for you! 😉), and your notebook (or in this case, your laptop). Because I’m about to share five techniques that will have you reviewing pull requests like a boss.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/neil-encouragement.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Neil deGrasse Tyson says "Let's Do This!" to give you confidence!</em></p>
<h2 id="heading-feedback-technique-1-the-show-and-tell-review">Feedback Technique 1: The “Show and Tell” Review</h2>
<p>For this technique, you provide screenshots or links to other sources that help explain the benefit of the new approach that you’re suggesting to your fellow contributor. Here's how it's done:</p>
<p>First, take a screenshot of the thing you want to convey in your feedback. I highly recommend using <a target="_blank" href="https://getfireshot.com/using.php">Fireshot</a>. It's an easy way to take screenshots on your computer.  </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/screenshot-Gif.gif" alt="Image" width="600" height="400" loading="lazy">
<em>This is a GIF of someone taking a screenshot of an image via a Mac</em></p>
<p>Then, go to the repository of your choosing and click on <strong>Pull Requests</strong> </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/repo-tabs.png" alt="Image" width="600" height="400" loading="lazy">
<em>A yellow circle surrounds the third tab called "Pull Requests". Click there to pick the PR you want to review.</em></p>
<p>Once you pick the pull request you want to review, click on <strong>Files Changed</strong>: </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-1-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Add your comments, then drag and drop your image in the textbox. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/chameleon-example.png" alt="Image" width="600" height="400" loading="lazy">
<em>In a textbox,</em></p>
<p>Click <strong>Submit review</strong> and volià you're done! 😊  </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Submit.png" alt="Image" width="600" height="400" loading="lazy">
<em>There's a green button saying "Submit Review". Click on it after you finish your review.</em></p>
<p>In my experience, this type of review is helpful when giving feedback on pull requests that require adding a feature to an open source project's website (for example a logo) or an image on one of its Markdown files. It can help the person see how their contribution impacts the overall project. </p>
<p>It's like if you were watching a commercial for a facial soap and you see the scenes where they show close ups of how the product makes your skin healthier. Showing someone an image of what needs fixing can help convey what's going on more clearly.</p>
<p>Speaking of skin, here's another strategy where your shifting powers, I mean adaptability skills, can be helpful.   </p>
<h2 id="heading-feedback-technique-2-the-chameleon-review">Feedback Technique 2: The “Chameleon” Review</h2>
<p>The “Chameleon” is a feedback giving technique where you adapt your PR review based on the type of contribution that your peer is making. It's like how a chameleon changes their skin color to fit in with their surroundings (minus the hiding from predators part of course 😉). </p>
<p>For example, if you’re reviewing a pull request that's text-based like the one in the image below, I highly recommend giving feedback via dialogic questions (for example, how does this resource stand out from other courses that teach JavaScript?). </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Chameleon-example.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>This technique is helpful because it encourages the recipient of your review to think deeply about their contribution. It also teaches you how to tailor your feedback based on the type of pull request that you are reviewing.  </p>
<p>Now that you know the Chameleon, the next technique you'll learn is one that can help you swipe through fields, I mean, long lines of code.   </p>
<h2 id="heading-feedback-technique-3-two-peas-in-a-pod">Feedback Technique 3: Two Peas in a Pod</h2>
<p>The “Two Peas in a pod” is a PR review technique where you comment on one line of code in the conversation while another contributor gives feedback on another line code in the same pull request.  </p>
<p>Here's an example:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/two-peas-in-a-pod-one.png" alt="Image" width="600" height="400" loading="lazy">
<em>Two contributors comment on one line of code</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/two-peas-in-a-pod.png" alt="Image" width="600" height="400" loading="lazy">
<em>My comment on a different line of code on the same pull request</em></p>
<p>As shown in the first picture, it's helpful to point out why certain methods won't work and discuss some alternatives the pull requester can use. Additionally, consider commenting on a different way to improve the PR once you picked the line of code you want to improve. </p>
<p>When using this method, I highly recommend encouraging you and your fellow reviewer to pick a line of code that suits your strengths because it'll make giving feedback easier. </p>
<p>Since my background is in writing and education, I decided to comment on the text-based line that you see in the second picture whereas the other contributors focused on improving the image element due to being more experienced in coding. </p>
<p>This method helps you develop your written communication skills and ultimately makes reviewing pull requests less stressful. That's two benefits for the price of one! 😊 Cool right? 😉 </p>
<p>Speaking of lessening  your stress, I have another strategy that will have you reviewing pull requests like <a target="_blank" href="https://dcau.fandom.com/wiki/Flash">the Flash from <em>The Justice League</em></a>!</p>
<h2 id="heading-feedback-technique-4-teachem-review">Feedback Technique 4: Teach’em Review</h2>
<p>This “Teach’em” review is a PR review technique where you pretty much instruct your peer on how to improve their PR instead of just pointing out the issues in the PR. </p>
<p>Here are some examples:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Teach-em-example-2-jpg.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>My suggestion: turning the &lt;div&gt; element into a more semantic HTML element.</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Teach-em-example-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>I give tips to the contributor how to make their code-based contributions more accessible</em></p>
<p>When using this technique, I highly recommend pointing out an area of improvement.  Then, you can briefly teach a strategy they could use in the future. </p>
<p>This approach can help improve your coding skills and develop your written communication skills, which is very useful in the world of tech.  </p>
<p>Now, there’s just one more technique that will help you upgrade your PR reviewing skills. </p>
<h2 id="heading-feedback-technique-5-the-suggestion-review">Feedback Technique 5: The “Suggestion” Review</h2>
<p>If you're focusing on other open source projects, have a deadline for an assignment, or you're just tired from a long day at work but want to review pull requests, this feedback giving technique will be the ultimate tool in your open sourcer kit. It focuses on giving constructive feedback through your review.</p>
<p>Here's how it's done: </p>
<ol>
<li>Click on the <strong>Files Changed</strong> tab of a person’s pull request:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>There are four tabs underneath a person's pull request. The final one "Files changed" is circled in yellow. That's the tab you pick in the first step</em></p>
<ol start="2">
<li>Hover over the line of code you want to review and click on the blue plus sign:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-2.png" alt="Image" width="600" height="400" loading="lazy">
<em>There is a blue plus sign over the line code that has a yellow covering. This indicates that you have picked a line of code you want to review.</em></p>
<ol start="3">
<li>Click on the file icon that has a plus on top and a minus sign on the bottom:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-3-2.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="4">
<li>Rewrite the line of code, improving it as you think is necessary:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-4.png" alt="Image" width="600" height="400" loading="lazy">
<em>There's a yellow arrow point to an area that says ```suggestion. This where you rewrite the line of code that you choose to review.</em></p>
<ol start="5">
<li>Click on <strong>Add Single Comment</strong></li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Suggestion-Step-5-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>There is a yellow arrow pointing at the "Add single comment" button. This is what you click on to insert your suggestion into the person's line of code.</em></p>
<ol start="6">
<li>Write your comment in the textbox, click on <strong>Request Changes</strong>, and <strong>Submit Review</strong>.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/Final-Suggestion-Step-2.png" alt="Image" width="600" height="400" loading="lazy">
<em>The first arrow points to a textbox, the place where type your comment. The second arrow points the last radio button labeled "Request Changes". The final arrow points at a green button labeled "Submit review".</em></p>
<p>I highly recommend using this feedback technique for pull requests that are text-based because it will show your suggestion to the person who made the pull request, which is especially helpful if you are too tired or don't have time to give a brief grammar lesson (trust me, I've been there). </p>
<p>Like the other feedback techniques I previously mentioned, the suggestion review can also help you improve your detail-oriented skills as it encourages you to think of the best way to convey your feedback. It's pretty awesome! 😊</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Congratulations, you now have five feedback giving techniques in your Open Sourcer toolkit!  </p>
<p>Before I let you go, I want you to remember this. Open source contributions begin and end with you, so use your powers wisely. Now, go out there and be the best pull request reviewer in open source! </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/04/deadpool.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Deadpool and his crew is walking slowly towards their next challenge. Be like Deadpool with your pull request reviews! :)</em></p>
<h2 id="heading-credits">Credits</h2>
<p>Let's Do This GIF by <a target="_blank" href="https://giphy.com/gifs/natgeochannel-startalk-JykvbWfXtAHSM">National Geographic</a></p>
<p>Super Hero Walking GIF by <a target="_blank" href="https://media.giphy.com/media/l0Iy6hheGg52GcJt6/giphy.gif">20th Century Fox Home Entertainment</a></p>
<p>Screenshot GIF from "How to Take a Screenshot on a MacBook" by <a target="_blank" href="https://smallpdf.com/blog/how-to-screenshot-on-mac">Hung Nguyen</a> </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The Art of Asking For Intentional Product Feedback ]]>
                </title>
                <description>
                    <![CDATA[ By Adam Naor Would you use product X? Do you like product X? What do you enjoy most about the user experience? These questions all elicit feedback. However, these questions are broad. If you want more specific feedback that you can transform into cha... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-art-of-asking-for-intentional-product-feed-back/</link>
                <guid isPermaLink="false">66d45d7b768263422736e8a3</guid>
                
                    <category>
                        <![CDATA[ Feedback ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Product Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 19 Jan 2021 17:42:33 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/6006618d0a2838549dcb49e6.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Adam Naor</p>
<p>Would you use product X?</p>
<p>Do you like product X?</p>
<p>What do you enjoy most about the user experience?</p>
<p>These questions all elicit feedback. However, these questions are broad. If you want more specific feedback that you can transform into changes to your product, you will want to ask questions that elicit more details.</p>
<p>If this insight seems obvious, why do we - as builders, designers, and coders - all too often ask for product feedback that leaves us no better off than we were before asking?</p>
<p>I believe - and will provide examples to support in the article that follows - that by asking probing questions, we can collect actionable feedback that leads us to make worthwhile product improvements. </p>
<p>But only by asking the right questions, at the right time and in the right way, can this value be unlocked. If you need help learning to ask the right questions (and follow-up questions), this article is for you. </p>
<p>I have learned how to ask questions through a mixture of patience, practice, coaching, and building.</p>
<p>First, some relevant stories from my past missteps.</p>
<h2 id="heading-how-my-firsthand-experiences-building-led-me-to-ask-different-types-of-questions">How my firsthand experiences building led me to ask different types of questions</h2>
<p>When I started a FinTech company to help kids and parents learn about financial education at home, I asked parents if they thought financial education was important to the well being of their children. </p>
<p>What do you think these parents said? As a matter of fact, nearly 100% said that “yes” such education was important. </p>
<p>Guess how many of these parents went on to use the product I built? Only a fraction.</p>
<p>This short example illustrates the importance of asking the right questions. I asked the wrong one. Perhaps I should have asked the following:</p>
<ul>
<li>What tools do you use today to teach your children about financial education?</li>
<li>Why do you value teaching your children about money?</li>
<li>How are you planning to educate your children about money?</li>
</ul>
<p>All three of these questions probe the same assumption as the first question: namely, that parents will want to teach their children about financial literacy. </p>
<p>But these questions are fundamentally better because they probe deeper and give the user room to explain their logic and rationale. </p>
<p>This qualitative feedback - where we can go deeper beyond assumptions and platitudes - is where insights exist to shape better product experiences. And that is a central goal for builders.</p>
<p>A second aim of builders is to not only build products that people use, but to build products that people find uniquely valuable. </p>
<p>When I was starting my career I had aspirations of being a Product Manager. A friend, who was a successful Senior Product Manager at Google, challenged me with a simple assignment: build a product that 10,000 people use.</p>
<p>I thought deeply about the challenge and looked into tools to help with student loans and Mapping APIs. Ultimately I decided that I would build a tool that helped solve various problems in my own life. I sat down and thought through these questions:</p>
<ul>
<li>What is a problem I currently have that technology can help address?</li>
<li>Can I build a solution?</li>
<li>Do I know how to build the technology?</li>
<li>If I build a product, can others benefit from it too?</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/01/Screen-Shot-2021-01-18-at-8.40.21-PM.png" alt="Image" width="600" height="400" loading="lazy">
<em>If you build it they may come...but you need to ask what your users want and need first.</em></p>
<p>I decided to build a Chrome extension that enabled users to quickly switch between tabs. After roughly 6 months on the Chrome store the free extension passed 10,000 active users. </p>
<p>I sat down with friends and started asking them how they used the tool and what they needed the tool to do to add more value in their lives.</p>
<p>I honed in by asking very specific questions:</p>
<ul>
<li>How many times do you use the tool (and I would cross reference this with internal data)?</li>
<li>What does the tool not help you do that you need it to do?</li>
<li>Can I join you at your workstation or desk and observe you using the tool?</li>
</ul>
<p>These questions led to new insights. </p>
<p>Ultimately I decided that the improvements users wanted were beyond my technical capacity.</p>
<p>So I let the tool sustain itself without further coding improvements.</p>
<h2 id="heading-what-did-i-learn-from-this-experience">What did I learn from this experience?</h2>
<p>Firstly, building is rewarding. Solving your own problems with small tools and hacks can be great fun and also educational.</p>
<p>Secondly, when you build something that has utility, and others start to use it, you have a unique opportunity to learn from users to make improvements.</p>
<p>These improvements, in turn, can yield even better product features, designs, and outcomes. These enhancements can better satisfy and align with the needs of your users. </p>
<p>Hence a small flywheel can be set in motion.</p>
<p>And lastly, it’s ok to build and push the limits without committing to further releases and development work. It’s ok to say “no” and allocate your time and technical resources elsewhere.</p>
<h2 id="heading-by-asking-the-right-questions-you-can-unlock-real-value">By asking the right questions you can unlock real value.</h2>
<p>But this value does not need to be applied just to development cycles. It can also make you realize you are headed down a path you don’t want to be on. </p>
<p>And you can use insights from users - and gleaned from the questions that you ask - to make better informed decisions.</p>
<p>I had a product manager who once noted: “if the feedback is not a strong yes, then it's a no.” I think about this belief system a lot because I am always looking for perspectives that can help shape, inspire, and influence the products I design and build.</p>
<p>I would challenge that product manager - and you - to amend that quote: “If the feedback is not a strong yes, ask why not. If you can’t glean insights from users, then it’s a no.”</p>
<h2 id="heading-the-art-of-intentional-product-feedback-starts-with-you-the-builder-and-an-open-mind">The art of intentional product feedback starts with you - the builder - and an open mind.</h2>
<p>But tied closely to an open mindset is the ability to ask the right questions. It is healthy to say “in the spirit of open-mindedness, I’m striving to learn and I am learning by asking questions.”</p>
<p>There are many educational tools, online schools, engineering communities with online coding tests, and communities like freeCodeCamp to help you learn to engineer, design, wireframe, and deploy products. </p>
<p>But how many of these tools teach you how to ask questions, think critically about the replies, and then circle back with relevant follow up questions?</p>
<p>When building anything for others - a tool, a website, an app, or highly specialized software (like a QR Code Generator) - you need to know what people want, need, and most strongly value. </p>
<p>Only by asking questions can you learn these things. Only by asking questions can you produce a product that gets your users to a “strong yes.”  </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to skyrocket quality: focus on attitude ]]>
                </title>
                <description>
                    <![CDATA[ By Harshdeep S Jawanda When it comes to discussing quality and how we can improve, the most common things that come to peoples minds are tests, processes, procedures, QA departments, and so on. But they leave out the most important, basic thing, the ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-skyrocket-quality-focus-on-attitude-bd5fadc4dc7f/</link>
                <guid isPermaLink="false">66c354c4e9895571912a0c90</guid>
                
                    <category>
                        <![CDATA[ customer service ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Feedback ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 25 Jun 2018 16:39:05 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/0*FHCUEdThiMwqOoXB." medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Harshdeep S Jawanda</p>
<p>When it comes to discussing quality and how we can improve, the most common things that come to peoples minds are tests, processes, procedures, QA departments, and so on. But they leave out the most important, basic thing, the pre-requisite for achieving high quality: <strong>the right attitude</strong>. Quality is all about having the right attitude. That’s the starting point.</p>
<p>Sure, you need all the other things mentioned above — tests, processes, and procedures — to achieve and maintain a high quality standard. But if you and/or your people don’t have the right attitude, all of the aforementioned things can just become a bullet list on a presentation slide. People can go through the motions of running the relevant tests and following the prescribed processes, but <strong>without the right attitude</strong> it all becomes a farce of <strong>ticking off checkboxes</strong>. ?</p>
<h3 id="heading-pursuing-perfection">Pursuing perfection</h3>
<p>When it comes to the pursuit of perfection, I’ve always had the belief that:</p>
<p>That’s my <strong>mantra</strong> and I swear by it. So much so, that I even have it as part of my <a target="_blank" href="https://twitter.com/hsjawanda">Twitter profile</a>. ?</p>
<p>The <strong>first part</strong> simply means that no matter what you may think, nothing is ever really, truly perfect. If you think something is perfect, wait for five minutes, or two days, or two weeks, and you’ll start to see the small imperfections.</p>
<p>However, this does not mean that you should lose hope or become disheartened. Just because your <strong>thing</strong> (product, process, art, whatever) is not perfect doesn’t mean that it can’t be improved upon. This is where the <strong>second part</strong> comes in: by <strong>pursuing perfection</strong> you can move closer towards achieving perfection. And eventually, you’ll progress to such a state that you’ll surprise yourself by the progress made.</p>
<blockquote>
<p><em>Psst. It <strong>still won’t be perfect</strong>, so what?</em></p>
</blockquote>
<p>This line of thinking has grown out of my background as a computer engineer/scientist. With every passing day, I find many more examples that make me think that it is generally applicable. Unless you can disprove this mathematically, I am going to claim that my <strong>mantra</strong> is universally true. ?</p>
<p>This <strong>mantra</strong> is the basis for developing the right attitude, achieving high quality, and continuing to improve upon it. Never be satisfied with the quality you have, always be trying to improve.</p>
<h3 id="heading-to-improve-be-pessimistic">To improve, be pessimistic</h3>
<p>Strange as it may sound, I find this an invaluable attitude to have towards the quality of whatever it is that you are doing.</p>
<p><strong>Assume</strong> that whatever you have made is not going to work, or that it is of low quality. <strong>Be pessimistic about the quality of your work.</strong></p>
<p>Then — systematically — <strong>prove your pessimism wrong</strong>!</p>
<p>Yeah, that’s right (can’t help but picture David Puddy). ?</p>
<p>You may think of this as a roundabout way of doing things, but it works! It ensures that in working to overcome your pessimism (even if it’s a manufactured one) you’re actually improving/ensuring quality.</p>
<p>For a developer, this means writing tests to prove that the code actually works. For an author, this could take the form of soliciting feedback from an experienced editor. Tailor the <strong>prove-your-pessimism-wrong</strong> step to your particular situation, but do it.</p>
<p>All too often, I have seen (and occasionally been a victim of it myself) people suffering due to <strong>overconfidence</strong> in their work. “It’s just a one-line code change, not even going to create a ripple in the pond”!</p>
<p><strong>Wrong!</strong> Unless you have regression-tested and proven that everything still works, assume that even your tiny change is going to wreak havoc on the larger system. <strong>Be pessimistic!</strong></p>
<h3 id="heading-feedback-is-golden">Feedback is golden</h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*KW0gXb3jwy64qMGF" alt="Image" width="800" height="533" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@jasonrosewell?utm_source=medium&amp;utm_medium=referral" rel="noopener" target="_blank" title=""&gt;Jason Rosewell on &lt;a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral" rel="noopener" target="<em>blank" title=")</em></p>
<p>This may come as a surprise to many, but you get <a target="_blank" href="https://www.helpscout.net/75-customer-service-facts-quotes-statistics/"><strong>feedback from only 4%</strong></a> <strong>of dissatisfied customers</strong>! Putting it another way, for every customer that bothers to complain, <strong>26 others are quietly unhappy</strong> and at high risk of leaving without giving you the chance to improve. As you can imagine, unless you listen very carefully to what little feedback you get and take heed, you run a very high risk of living in a fool’s paradise.</p>
<p>That’s why customer feedback is pure gold. I can’t stress enough that you’ve got to <strong>really</strong> listen to it!</p>
<h3 id="heading-listen-and-internalize-even-if-it-hurts">Listen and internalize, even if it hurts</h3>
<p>As a creator, it may hurt to listen to people criticize one of your creations. But think of it as invaluable feedback (we know how important that is ?). The feedback may come from a customer, or it may come from within your organization. Either way, it’s an opportunity to learn, improve, and grow.</p>
<p>Creators who take umbrage at feedback and become <strong>defensive and non-receptive</strong> will never be able to achieve the highest quality standards. These are the people who will either:</p>
<ul>
<li>start looking for excuses as to why the failure happened (with the basic theme being “It wasn’t me”), or</li>
<li>become non-receptive and internally keep insisting there’s nothing to improve and that nothing could have been done any better.</li>
</ul>
<p>These are the sorts of people who will not deliver good quality and will continue to fall further behind their peers in terms of expertise and skill.</p>
<h3 id="heading-the-flip-side-of-the-coin">The flip side of the coin</h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*495UhWmJfABehWIV" alt="Image" width="800" height="533" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@ryanthomasang?utm_source=medium&amp;utm_medium=referral" rel="noopener" target="_blank" title=""&gt;Ryan Thomas Ang on &lt;a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral" rel="noopener" target="<em>blank" title=")</em></p>
<p>On the other hand (you knew this was coming, right? ?), don’t let a single-minded focus on quality give you tunnel vision and make you blind to everything else.</p>
<h4 id="heading-be-practical">Be Practical</h4>
<p>One has to balance the need and desire for quality against other factors like cost and time.</p>
<p>As an example, let’s say your company already has an electrical switch that can take a million on/off operations without failing. You want to improve this switch so that it can handle 10 million operations. But the development, usage of newer and more expensive materials, and testing combined will take an additional two years, with the resultant switch costing 3x that of the million-operation switch. Considering all that, is that quality improvement still worth it?</p>
<p>In most cases, the answer would be a resounding <strong>“no”</strong>. Maybe your time will be better spent developing a version that is water-resistant, making it more suitable for outside use, and opening up your product to a whole new market.</p>
<h4 id="heading-beware-of-the-outliers">Beware of the outliers</h4>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*tKtDOqUR8_Y3UD53" alt="Image" width="800" height="533" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@rupert_britton?utm_source=medium&amp;utm_medium=referral" rel="noopener" target="_blank" title=""&gt;Rupert Britton on &lt;a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral" rel="noopener" target="<em>blank" title=")</em></p>
<p>The “listen to your customer feedback” advice also comes with a caveat: “Beware of the outliers”. These are the people who will never be satisfied, will always be complaining, and will make you run around trying to satisfy their every whim. Such customers will increasingly start complaining about super-specific scenarios (things that affect a very small percentage of users) or about things that are very subjective (specific to personal taste).</p>
<p>If you try to satisfy these outliers, you might end up spending time on features (for example, adding “skins” to your software) that do not have universal appeal. In the process, you’ll take resources away from developing the product in directions that will give the greatest benefit to the greatest number of people.</p>
<p>In the end, this often comes down to a judgement call about when to de-prioritize a customer’s feedback. There’s no sure-shot formula to get it right every time.</p>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Adjust your attitude to enable you to pursue perfection relentlessly, with eyes on practicality and ears receptive to feedback.</p>
<p>If you found this article helpful, please don’t forget to clap! ?</p>
<p>In keeping with with spirit of this article, constructive discussions and corrections are most welcome!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Learning from a whopping 17 users ]]>
                </title>
                <description>
                    <![CDATA[ By Jacob Evelyn I have an open-source project. It has 17 users. It actually has somehow scraped together a few hundred stars on GitHub, managing to be the most-starred repository for a few wildly popular tags like [relationships](https://github.com/t... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/learning-from-a-whopping-17-users-50ddfe748c26/</link>
                <guid isPermaLink="false">66c359f7c13ebcbf60172090</guid>
                
                    <category>
                        <![CDATA[ development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Feedback ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                    <category>
                        <![CDATA[ user experience ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sun, 28 Jan 2018 16:39:37 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*czNA6aEvNmZCjdPWCCWiHg.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Jacob Evelyn</p>
<p>I have <a target="_blank" href="https://github.com/JacobEvelyn/friends">an open-source project</a>. It has 17 users.</p>
<p>It actually has somehow scraped together a few hundred stars on GitHub, managing to be the most-starred repository for a few wildly popular tags like <code>[relationships](https://github.com/topics/relationships)</code>, <code>[human-readable](https://github.com/topics/human-readable)</code>, and <code>[journaling](https://github.com/topics/journaling)</code> (but, alas, not <code>[journal](https://github.com/topics/journal)</code>). You’re probably very impressed. You may be thinking something like, “What useless piece of code could possibly be at the intersection of those things?” or “GitHub has tags?”</p>
<p>But don’t be intimidated by my extraordinary success. Three years ago, all this was just a few lines of code and an idea. I wanted to see if I could visualize the ebbs and flows of my relationships with the people I care about.</p>
<p>I also wanted to have a program tell me who I haven’t talked to in a while, so I could be better at staying in touch. Okay, and I also wanted to store all of this information in a way that was easy to see, edit, and play with. I guess it was more than one idea after all.</p>
<p>That should have been the first clue that I didn’t have the clearest idea what I was doing. But I’m strong-willed and felt confident that I’d figure out the details later.</p>
<p>So I hacked together a program that I called <code>[friends](https://github.com/JacobEvelyn/friends)</code> (tagline: <em>Spend time with the people you care about. Introvert-tested. Extrovert-approved.</em>) and used it regularly for a year, at which point I assumed that its (minimal) featureset was complete. On a whim, I <a target="_blank" href="https://news.ycombinator.com/item?id=10830799">posted it to Hacker News</a>, where it briefly made the front page for the first and only time in my life. (Side note: if you ever see a post on Hacker News in which a calm comment reads something like, <code>Maintainer here. I'm glad to see this on the front page, and happy to answer any questions.</code> don’t believe for a second that that person isn’t shaking with uncontrollable nervousness and excitement.)</p>
<p>And then an interesting thing happened. I got suggestions.</p>
<h3 id="heading-lesson-1-users-have-really-good-ideas">Lesson 1: Users have really good ideas</h3>
<p>My friends and coworkers, bless them, will tell you I have no problem “sharing my opinion.” Translation: I usually think I’m right and can have a hard time accepting input from others. (Not cookies though, I accept those fine.)</p>
<p>I thought I knew about my own project. However, my pompousness disappeared pretty much immediately when I started reading users’ suggestions. To date, I’ve had 16 (!!!) GitHub issues opened by someone other than me. (Out of a total of <a target="_blank" href="https://github.com/JacobEvelyn/friends/issues">110</a>. I need to get out more.) And almost every one of those has been a suggestion that I would never have thought of and that makes <code>friends</code> unequivocally better. In fact, counter-intuitively, these new features have been so spot-on that they’ve often led to much simpler code.</p>
<p>What has amazed me the most is how these users often seem to “get” the idea of <code>friends</code> better than I do.</p>
<p>I consider <code>friends</code> to only have 17 users despite all of its downloads and GitHub stars. This is because only 17 people have cared enough to share their feedback with me or offer to contribute a pull request. I don’t know if others are using it in perfect bliss or downloaded it once and then forgot about it. But 17 people have dedicated time and energy to show they care. I love every single one of them.</p>
<h3 id="heading-lesson-2-being-nice-pays-off">Lesson 2: Being nice pays off</h3>
<p>From the beginning, I wanted to be a friendly, supportive, patient, mentoring maintainer. Not the gruff maintainer who says “this feature should not be added” with no further explanation.</p>
<p>So I added this friendly note to the <a target="_blank" href="https://github.com/JacobEvelyn/friends/blob/master/README.md">top of the <code>README</code></a>:</p>
<blockquote>
<p><strong>NOTE: Participation is encouraged! Make issues, ask questions, submit pull requests (even if it’s your first time contributing to open-source — you’ll get lots of help), and give feedback!</strong></p>
</blockquote>
<p>I adopted the <a target="_blank" href="https://www.contributor-covenant.org/adopters.html">Contributor Covenant</a>. I added friendly <a target="_blank" href="https://github.com/JacobEvelyn/friends/blob/master/CONTRIBUTING.md">contribution instructions</a>. I made sure <code>friends</code> followed all of <a target="_blank" href="https://github.com/JacobEvelyn/friends/community">GitHub’s best practices</a>.</p>
<p>And I put in the time and effort to be friendly when responding to users. I knew that was the right decision when users started leaving comments like:</p>
<blockquote>
<p><a target="_blank" href="https://github.com/JacobEvelyn/friends/pull/75#issuecomment-171971075">“Excellent. Thanks for your patience and suggestions. I’m pretty green with this stuff.”</a><br> — codyjroberts</p>
<p><a target="_blank" href="https://github.com/JacobEvelyn/friends/pull/45#issuecomment-169355402">“This my first pull request to an open source. I learn Many things from your Comments. Thank you So much for that.”</a><br> — sivakb</p>
<p><a target="_blank" href="https://github.com/JacobEvelyn/friends/pull/180#issuecomment-323148839">“Thanks for the explanation! … Also, I gotta say, your cheeriness is great! ?”</a><br> — greyhillman</p>
</blockquote>
<p>Being nice doesn’t feel like work to me (though I get that it can for others) but either way, it pays off. It lets me have deeper conversations with my users. Discussing their suggestions often reveals other ideas they have but didn’t think to bring up. I even had a video call with a user halfway across the world!</p>
<p>Being nice also lets me ask users unsolicited questions, which at first I was afraid to do. Maybe they’d be annoyed that I’m bothering them? That fear was silly. People like sharing their opinions!</p>
<h3 id="heading-lesson-3-users-can-be-anywhere">Lesson 3: Users can be anywhere</h3>
<p>I’m not sure why I expected this (other than my apparent geocentrism) but I’d assumed my users would all live in my home country. Not even close! My 17 users don’t even all live in countries where my native language is particularly common. (And why should they?)</p>
<p>My 17 users live on four different <em>continents</em>.</p>
<p>That humbling fact boggles my mind.</p>
<h3 id="heading-lesson-4-making-money-is-hard">Lesson 4: Making money is hard</h3>
<p>I was spurred by success stories of open source projects being sustained by donors. So I recently put up <a target="_blank" href="https://github.com/JacobEvelyn/friends/blob/master/README.md">a few donation badges</a> onto the project <code>README</code>. I’d love to be able to spend more time with <code>friends</code>, and even a small amount of money is a clear signal that it’s worth my time.</p>
<p>So how many donations has GitHub’s most-starred <code>[human-readable](https://github.com/topics/human-readable)</code> project received? Exactly zero. (And honestly, I’m not sure how to change that.) It is, I admit, a little discouraging.</p>
<p>Still, if I was in it for the money I wouldn’t have spent so much time building, well, <em>this</em>. And donations are just one way to contribute. If you give me as much feedback, love, and help as my 17 users, you don’t need to give me a cent.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
