{"id":434,"date":"2026-02-03T15:20:40","date_gmt":"2026-02-03T15:20:40","guid":{"rendered":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/2026\/02\/03\/jonathan-desrosiers-offering-criticism-in-open-source-projects\/"},"modified":"2026-02-03T15:20:40","modified_gmt":"2026-02-03T15:20:40","slug":"jonathan-desrosiers-offering-criticism-in-open-source-projects","status":"publish","type":"post","link":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/2026\/02\/03\/jonathan-desrosiers-offering-criticism-in-open-source-projects\/","title":{"rendered":"Jonathan Desrosiers: Offering Criticism in Open Source Projects"},"content":{"rendered":"<p class=\"\">A <a href=\"https:\/\/crossword.fm\/s10\/e10\/\">recent episode<\/a> of the <a href=\"https:\/\/crossword.fm\/\">Crossword podcast<\/a> had me thinking about offering criticism constructively in open source projects. <a href=\"https:\/\/jonathanwold.com\/\">Jonathan Wold<\/a> and <a href=\"https:\/\/carb.is\/\">Luke Carbis<\/a> were discussing the <a href=\"https:\/\/wordpress.org\/download\/releases\/6-9\/\">new Notes feature in WordPress 6.9<\/a>, which was added as a building block for real-time collaboration.<\/p>\n<p class=\"\">Luke mentioned how he was curious about the reasoning behind the related technical decisions. He was having some difficulties and was a bit concerned about the choice to use the preexisting Comments APIs with a new comment type to build out the Notes feature. The part of this conversation that I really found interesting was when they discussed how it was unfair to the contributors who did work on the feature for him to complain or criticize without knowing the full background of why it was built in the way that it was.<\/p>\n<p class=\"\">I\u2019ve heavily condensed and paraphrased, so I definitely recommend giving the episode a full listen.<\/p>\n<figure class=\"wp-embed-aspect-21-9 wp-has-aspect-ratio wp-block-embed is-type-rich is-provider-spotify wp-block-embed-spotify\">\n<div class=\"wp-block-embed__wrapper\">\n<\/div>\n<\/figure>\n<p class=\"\">This premise stuck with me and sent me down several rabbit holes, each one leading to a different dynamic within open source communities. When is it acceptable to be critical in open source? Is it fair to offer criticism when you don\u2019t have all of the information? If so, what is the right way to go about sharing? Who is allowed to criticize? When is it appropriate to solely observe rather than attempt to participate? How do you transition from an observer to a participant? Let\u2019s dig into these questions a bit more.<\/p>\n<h2 class=\"wp-block-heading\">Who Can Contribute?<\/h2>\n<p class=\"\">The simple answer to this question is anyone and everyone, of course! It is open source after all! But don\u2019t stop reading because it\u2019s not <em>actually<\/em> that simple.<\/p>\n<p class=\"\">While everyone <em>can<\/em> participate, there are so many forces at play that impact <em>how<\/em> you should contribute. Knowing what these are, understanding them, and being able to recognize them can help make your open source journey a more successful and rewarding one.<\/p>\n<p class=\"\">I won\u2019t be covering contributing from the perspective of specific disciplines (ie. code, documentation, testing, etc.), or even different ways of contributing (ie. financial, time-based, etc.). Instead I\u2019m looking to define two broad \u201cstates\u201d of contributing, how to move back and forth between these two groups, and how to communicate better so that everyone feels welcome to contribute.<\/p>\n<p class=\"\">First let\u2019s establish what these two groups of contributors are.<\/p>\n<figure class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" alt=\"An empty auditorium in a university is furnished with wooden chairs that have blue cushions. The chairs are neatly arranged in rows, facing a stage or a podium that is not visible in the frame. The room is empty of people, and the lighting is relatively bright, daytime or artificial lighting. The overall atmosphere of the scene is academy.\" class=\"wp-image-10599 not-transparent\" height=\"3333\" src=\"https:\/\/jonathandesrosiers.com\/wp-content\/uploads\/2026\/02\/570645e40a6435bc2.81819652.jpg\" width=\"5000\" \/><button class=\"lightbox-trigger\" type=\"button\">\n<p>\t\t<\/p><\/button><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/\">CC0<\/a> licensed <a href=\"https:\/\/wordpress.org\/photos\/photo\/570645e40a\/\">photo<\/a> by <a href=\"https:\/\/blazejzablotny.pl\/\">Blazej Zablotny<\/a> from the <a href=\"https:\/\/wordpress.org\/photos\/\">WordPress Photo Directory<\/a>.<\/figcaption><\/figure>\n<h2 class=\"wp-block-heading\">Passive Contributing<\/h2>\n<p class=\"\">Whether they know it or not, every single user and consumer of an open source project contributes back in some way.<\/p>\n<p class=\"\">When you use a piece of software (whether it\u2019s open source or not), you are using your voice (and in some cases, your wallet) to communicate that the software is valuable to you. \u201cThis piece of software solves a problem that I have.\u201d Over time, continued usage turns into a second layer of feedback. \u201cThis piece of software continues to solve a problem that I have well enough to continue using it.\u201d<\/p>\n<p class=\"\">I like to think of this as \u201cpassive contributing\u201d because it happens naturally through the normal use of software without any additional level of effort required. The examples I gave above are the most simple and pure examples of passive contribution and may not seem that useful. But passive contributions can be quite significant at scale.<\/p>\n<p class=\"\">Every WordPress site checks if there are available updates for plugins, themes, and Core itself every 12 hours. However, a few details are needed to ensure an accurate answer is given, such as the version of WordPress the site is currently running, the site\u2019s PHP and database versions, the PHP extensions loaded, etc..<\/p>\n<p class=\"\">Now consider this happening across tens of millions of WordPress sites. This becomes <a href=\"https:\/\/en.wikipedia.org\/wiki\/Observability_(software)#Telemetry_types\">metric-based telemetry<\/a> and the data helps paint a <a href=\"https:\/\/wordpress.org\/about\/stats\/\">larger picture of what the \u201ctypical\u201d environment is for a WordPress site<\/a>. This data allows contributors to make well-informed decisions about the software itself. What should the <a href=\"https:\/\/make.wordpress.org\/core\/2026\/01\/09\/dropping-support-for-php-7-2-and-7-3\/\">minimum required version of PHP be<\/a>? Should a <a href=\"https:\/\/make.wordpress.org\/core\/2019\/10\/15\/php-native-json-extension-now-required\/\">native PHP extension be required to run WordPress<\/a>?<\/p>\n<p class=\"\">Understanding the actual real-world state is essential before making certain changes, especially in a project so staunchly committed to backward compatibility such as WordPress.<\/p>\n<h3 class=\"wp-block-heading\">Untapped Potential<\/h3>\n<p class=\"\">In many ways, this group is the most exciting one in open source. There is so much potential to tap into! One thing that I\u2019ve learned is that you never know what will inspire someone or how they will discover contributing. This is just one compelling reason to <a href=\"https:\/\/producingoss.com\/en\/producingoss.html#be-open-from-day-one\">underscore the importance of working in the open<\/a>.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<blockquote class=\"wp-block-quote alignwide has-text-align-center is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"is-style-text-title is-style-text-title--1\">\u201cEach interaction with a user is an opportunity to get a new participant.\u201d<\/p>\n<p class=\"\"><a href=\"https:\/\/producingoss.com\/en\/managing-participants.html#users-to-participants\">Producing Open Source Software<\/a> \u2013 Carl Fogel<\/p>\n<\/blockquote>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<p class=\"\">As maintainers of open source, we need to consider this group as much as possible. Since most passive contributors are simply users, the <a href=\"https:\/\/wordpress.org\/about\/philosophy\/\">user-focused philosophies<\/a> of the WordPress project help to keep this group front of mind.<\/p>\n<figure class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" alt=\"A man in a white shirt and black backpack leans against a chrome railing inside a building while looking at his phone. The man appears relaxed, with his weight resting on one leg and his other foot crossed over it. He holds the phone in one hand and seems to be scrolling through its contents.\" class=\"wp-image-10597 not-transparent\" height=\"4128\" src=\"https:\/\/jonathandesrosiers.com\/wp-content\/uploads\/2026\/02\/53645e3e76c13ed0.89060804.jpg\" width=\"6192\" \/><button class=\"lightbox-trigger\" type=\"button\">\n<p>\t\t<\/p><\/button><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/\">CC0<\/a> licensed <a href=\"https:\/\/wordpress.org\/photos\/photo\/53645e3e76\/\">photo<\/a> by <a href=\"https:\/\/blazejzablotny.pl\/\">Blazej Zablotny<\/a> from the <a href=\"https:\/\/wordpress.org\/photos\/\">WordPress Photo Directory<\/a>.<\/figcaption><\/figure>\n<h2 class=\"wp-block-heading\">Active Contributing<\/h2>\n<p class=\"\">Conversely, if someone contributes to an open source project knowingly, they fall into the second type: active. These contributors are the backbone of every open source software project. They\u2019re intentionally spending their time filing bug reports, building out new features and APIs, reviewing patches, translating strings, writing documentation, and so much more.<\/p>\n<p class=\"\">In an ideal world, many more passive contributors are activated than the number of active ones who leave a project to ensure growth. But be warned, if you\u2019re ill-prepared to support newly activated contributors, they can <a href=\"https:\/\/jonathandesrosiers.com\/2025\/07\/the-ghosts-of-unactivated-contributors\/\">easily become ghosts that quietly haunt the halls of your project<\/a>.<\/p>\n<hr class=\"is-style-default wp-block-separator alignwide has-alpha-channel-opacity\" \/>\n<h2 class=\"wp-block-heading\">Some Additional Considerations<\/h2>\n<p class=\"\">I tried to clearly define these two buckets to encompass everyone. But like the question of \u201cwho can contribute?\u201d, there is additional nuance to be aware of.<\/p>\n<h3 class=\"wp-block-heading\">Awareness Of Passivity<\/h3>\n<p class=\"\">One important thing to note is that individuals may not even be aware of the fact that they are passively contributing. Some (likely most) have no idea about what contributing is or how it works. In other cases, someone can be aware and intentionally choose to remain passive.<\/p>\n<p class=\"\">This was the case with Luke and the concerns he expressed about the implementation of the Notes feature. He is familiar enough with open source communities to understand that <a href=\"https:\/\/maintaine.rs\/desrosj#the-value-of-presence\">decisions are made by those who show up<\/a>, but was also self-aware enough to recognize he was not properly prepared to engage. He intentionally chose to remain passive until he felt he had enough context to engage thoughtfully (which <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/64377\">he has since<\/a>).<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<blockquote class=\"wp-block-quote alignwide has-text-align-center is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">By participating in discussions, contributing code, submitting bug reports or feature requests, or testing proposed changes, any individual can influence the direction of an Open Source project. By showing up, you ensure that your voice will be heard. But be aware, with presence comes responsibility. Showing up means being prepared, doing research, actively listening, and being thoughtful in your communication.<\/p>\n<p class=\"\"><a href=\"https:\/\/maintaine.rs\/desrosj#the-value-of-presence\">Maintainers in the WordPress Project<\/a> \u2013 <a href=\"https:\/\/maintaine.rs\/\">maintaine.rs<\/a> \u2013 Jonathan Desrosiers<\/p>\n<\/blockquote>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<p class=\"\">As contributors gain experience, they\u2019re often active in some ways and passive in others. For example, someone who spends their time creating patches is still contributing by passing the PHP version their site is using when sending update requests. Contributors also tend to find the areas of a code base that they enjoy working the most and to focus their efforts there. When this happens they choose to be passive for the rest of the code.<\/p>\n<h3 class=\"wp-block-heading\">Transitioning Unknowingly<\/h3>\n<p class=\"\">It\u2019s also common for someone to be completely unaware of the fact that they have \u201cactivated\u201d. Let\u2019s say you are experiencing a problem with your site and open a support ticket. On the surface it may seem like you are just seeking help with the issue that\u2019s affecting your site. But it\u2019s actually pretty common that support requests are the first sign of a larger bug or edge case affecting many users.<\/p>\n<p class=\"\">This is a great opportunity to help them recognize that they\u2019re contributing. \u201cThank you for taking the time to create this report!\u201d Be transparent about the process and answer any questions they have. Where can they follow along with the process? What is the process? And continue to engage with this person throughout the lifecycle of the report.<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"\">\u201cThis seems to be due to X and as a result Y happens.\u201d \u2013 Explain the concept behind what\u2019s going on to pique their interest.<\/li>\n<li class=\"\">\u201cIt\u2019s likely that any site using feature Z is experiencing this.\u201d \u2013 Shows them the importance of their report. It\u2019s not just you, and you\u2019ve helped the software improve for many other users.<\/li>\n<li class=\"\">\u201cThere is a fix available in the form of a patch\/hotfix plugin\/nightly build. Would you be able to test using that to confirm the issue is resolved for you?\u201d \u2013 Bring them along on the journey and show them how the sausage is made.<\/li>\n<li class=\"\">\u201cThanks again for the report and helping to improve PROJECT.\u201d  \u2013 Their time was valuable and the result was meaningful.<\/li>\n<\/ul>\n<p class=\"\">If you spend any time talking to contributors, you\u2019ll find that this is a <em>very<\/em> common path for discovering how to contribute to open source. Make this second nature and weave it into the culture of your project to ensure that no opportunity to grow the contributor base is missed.<\/p>\n<h3 class=\"wp-block-heading\">A Healthy Balance<\/h3>\n<p class=\"\">Even when maintainers have invested a considerable amount of time and effort into creating forms of passive contribution, <strong>passive contribution has a very low ceiling and will never sustain a project by itself<\/strong>.<\/p>\n<p class=\"\">In education there is a metric called the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Student%E2%80%93teacher_ratio\">student-teacher ratio<\/a>, which is a way to estimate the number of students per teacher in each classroom within a school. Though it doesn\u2019t always work out this way, the idea is that a lower student-teacher ratio will result in a higher quality education.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<blockquote class=\"wp-block-quote alignwide has-text-align-center is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">Classes with too many students are often disruptive to education. Also, too many students in a class results in a diverse field of students, with varying degrees of learning ability. Consequently, the class will spend time for less academic students to assimilate the information, when that time could be better spent progressing through the curriculum. In this way, student\u2013teacher ratios are compelling arguments for advanced or honors classes.<\/p>\n<p class=\"\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Student%E2%80%93teacher_ratio\">Student-teacher ratio \u2013 Wikipedia<\/a><\/p>\n<\/blockquote>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<p class=\"\">There are several variations of this concept at play within open source.<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"\">The ratio of users to contributors.<\/li>\n<li class=\"\">The ratio of active to passive contributors.<\/li>\n<li class=\"\">The ratio of active contributors to those <em>trying<\/em> to become more involved (seeking mentorship).<\/li>\n<li class=\"\">The ratio of mentors who are actually <em>available<\/em> to those seeking to be mentored.<\/li>\n<li class=\"\">The ratio of contributors who have write access (Core Committers) to those who don\u2019t.<\/li>\n<\/ul>\n<figure class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" alt=\"Rockhounding and colorful rocks on a southern Oregon beach.\" class=\"wp-image-10601 not-transparent\" height=\"576\" src=\"https:\/\/jonathandesrosiers.com\/wp-content\/uploads\/2026\/02\/41964067404569fe1.10957269-1024x576.jpg\" width=\"1024\" \/><button class=\"lightbox-trigger\" type=\"button\">\n<p>\t\t<\/p><\/button><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/\">CC0<\/a> licensed <a href=\"https:\/\/wordpress.org\/photos\/photo\/4196406740\/\">photo<\/a> by <a href=\"https:\/\/jenniferbourn.com\/\">Jennifer Bourn<\/a> from the <a href=\"https:\/\/wordpress.org\/photos\/\">WordPress Photo Directory<\/a>.<\/figcaption><\/figure>\n<p class=\"\">Each of these ratios could help shine a light on an area of a project that is struggling. Just like there\u2019s no widely accepted student-teacher ratio that every school should strive for, there\u2019s no one-size-fits-all formula for the ideal ratio of each of these. It\u2019s safe to say that the actual ratio is often nowhere close to an appropriate level. Unfortunately, this often results in maintainer burnout.<\/p>\n<h3 class=\"wp-block-heading\">Equal Opportunity vs. Equal Outcome<\/h3>\n<p class=\"\">Open source is at its best when opportunity is equal, but not necessarily contributions or outcomes. Every contribution is different, and that\u2019s a <em>good<\/em> thing. But when everyone has the same opportunity to contribute, the number of participants will increase along with the diversity of experience, knowledge, and thought. This will naturally result in better solutions.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<blockquote class=\"wp-block-quote alignwide has-text-align-center is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"is-style-text-title is-style-text-title--2\">\u201cGiven enough eyeballs, all bugs are shallow.\u201d<\/p>\n<p class=\"\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Linus%27s_law\">Linus\u2019s Law<\/a><\/p>\n<\/blockquote>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<p class=\"\">I understand that a state of true equity of opportunity is utopian. There will always be differences in socioeconomic, cultural, familial situations, etc. But as maintainers, we need to remain vigilant to ensure everyone has the opportunity they deserve. After all, that\u2019s what open source is all about: a chance to participate.<\/p>\n<h3 class=\"wp-block-heading\">Encouraging A Fluid State<\/h3>\n<p class=\"\"><a href=\"https:\/\/www.selectsoftwarereviews.com\/blog\/employee-retention-statistics#strongstatistics-on-the-cost-of-employee-turnoverstrong\">Many studies have found<\/a> that the cost of replacing an employee could cost upwards of 300% <em>more<\/em> than the previous employee\u2019s salary. This includes the cost to terminate the employee, recruitment, hiring, on-boarding, lost opportunity while the position is vacant, and the loss of productivity as the new hire goes through a learning curve.<\/p>\n<p class=\"\">Consider this concept in the context of open source. The majority of OSS projects barely have enough resources to keep things running smoothly. Dealing with a 300% cost increase can be very detrimental, if not lethal, to the overall health of the project. It\u2019s in everyone\u2019s best interest to retain active contributors instead of dealing with the high costs of finding and training new contributors.<\/p>\n<p class=\"\">Allowing, encouraging, and respecting when contributors ebb and flow between an active and passive state is one way to help lower the risk of someone churning out of your project completely. Yes, they are not actively contributing when choosing to be passive. But when they feel entrusted to adjust their contributing patterns any time they need or want to, they still feel like part of the project. They are capable and knowledgeable enough to return anytime they choose, and that is much easier than a brand new contributor starting from scratch.<\/p>\n<p class=\"\">That\u2019s not to say all on-boarding is bad! It\u2019s usually a <em>good<\/em> sign when new contributors are joining a project. But it\u2019s a concerning signal when it\u2019s consistently a net-negative, or even a net-neutral pattern.<\/p>\n<h3 class=\"wp-block-heading\">Non-human Contribution<\/h3>\n<p class=\"\">Though there\u2019s no human requirement to contribute, <a href=\"https:\/\/jonathandesrosiers.com\/2025\/07\/implementing-ai-in-open-source-without-losing-the-human-touch\/\">open source communities flourish because of community and strong human connections<\/a>. Right now, AI is a passive <em>consumer<\/em> of software (or at least the documentation and other related materials). But since AI tools don\u2019t actually <em>use<\/em> the software, they bypass passive contribution and <a href=\"https:\/\/dri.es\/ai-is-a-business-model-stress-test\">exclusively extract value in a one-way transaction<\/a>.<\/p>\n<p class=\"\">I also think it\u2019s fair to say AI tools cannot actively contribute on their own. They require a human to make use of them while actively contributing. That said, these tools have the potential to amplify someone\u2019s abilities and capacity. <\/p>\n<h3 class=\"wp-block-heading\">A Note About Makers And Takers<\/h3>\n<p class=\"\">A disproportionate number of passive contributors can be extremely damaging to an open source project. This is especially true when organizations and companies who are generating revenue purposefully choose to remain passive. <a href=\"https:\/\/dri.es\/\">Dries Buytaert<\/a>, the creator of <a href=\"https:\/\/www.drupal.org\/\">Drupal<\/a>, has described this as the \u201c<a href=\"https:\/\/dri.es\/balancing-makers-and-takers-to-scale-and-sustain-open-source\">maker-taker problem<\/a>\u201c.<\/p>\n<p class=\"\">As I defined what active and passive contributions are to provide context, I came to the realization that in many ways I\u2019m trying to describe a similar problem. However, there are some key differences to what I\u2019m exploring here. Dries explores project sustainability and what that means under a financial and governance lens. While the background I\u2019ve shared so far may resemble the maker-taker problem, I\u2019m focused on how and when to participate when you have criticism. <\/p>\n<h2 class=\"wp-block-heading\">Criticism As A Contribution<\/h2>\n<p class=\"\">So let\u2019s return to the questions from the beginning: When is it acceptable to be critical? Is it fair to offer criticism when you don\u2019t have all the information? Just like telemetry can help paint the full picture using data points, criticism can help maintainers understand what\u2019s working and what\u2019s not. The more feedback loops that exist between maintainers and different stakeholders, the better. It\u2019s natural to be apprehensive about coming forward to condemn the work that has been done. But if something concerns you or doesn\u2019t fit your use cases, it\u2019s important to speak up.<\/p>\n<p class=\"\">Here are some tips to help you have the right mindset so your insight can have the most impact.<\/p>\n<h3 class=\"wp-block-heading\">Silos Help No One<\/h3>\n<p class=\"\">Learning together is better than learning in a silo. When you voice concerns or questions publicly, you\u2019re not just advocating for yourself. You\u2019re likely representing many others who share the same confusion or frustration but haven\u2019t spoken up yet.<\/p>\n<p class=\"\">Luke is an experienced community member, so his bar for what constitutes a \u201cquality\u201d contribution is quite high. But his hesitation on the podcast actually illustrates an important point: by discussing his concerns openly (even while acknowledging his incomplete knowledge), he invites others into the learning process. The conversation itself becomes valuable, prompting everyone to explore technical decisions together.<\/p>\n<figure class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" alt=\"Looking through a rock formation at a seaside fisherman courageously casts his line as a storm approaches Beavertail Lighthouse in Rhode Island.\" class=\"wp-image-10528 not-transparent\" height=\"4000\" src=\"https:\/\/jonathandesrosiers.com\/wp-content\/uploads\/2026\/01\/61365a83787ce7b45.52175946.jpg\" width=\"6000\" \/><button class=\"lightbox-trigger\" type=\"button\">\n<p>\t\t<\/p><\/button><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/\">CC0<\/a> licensed <a href=\"https:\/\/wordpress.org\/photos\/photo\/61365a8378\/\">photo<\/a> by <a href=\"https:\/\/wordpress.org\/photos\/author\/maverick3x6\/\">Jeff Golenski<\/a> from the <a href=\"https:\/\/wordpress.org\/photos\/\">WordPress Photo Directory<\/a>.<\/figcaption><\/figure>\n<p class=\"\">When you keep your criticism private or wait until you have \u201ccomplete\u201d knowledge, you miss opportunities for collaborative problem-solving. Sometimes the act of asking \u201cwhy was it built this way?\u201d in public forums leads to documentation improvements, clearer architectural decision records, or simply helps other contributors understand the reasoning.<\/p>\n<h3 class=\"wp-block-heading\">Research Is Not Everything<\/h3>\n<p class=\"\">I mentioned above that showing up comes with the responsibility to be prepared. While it\u2019s true that researching before engaging can be very helpful, it\u2019s not a steadfast requirement, provided you approach the conversation with humility, genuine curiosity, and the desire to help.<\/p>\n<p class=\"\">There\u2019s a balance to strike here. Some research shows good faith and respect for the contributors who came before you. It demonstrates you\u2019ve tried to understand the context. But perfectionism about having complete knowledge can become a barrier to participation.<\/p>\n<p class=\"\">The key is being transparent about what you do and don\u2019t know: \u201cI\u2019ve looked through the related tickets on Trac and the PR where the feature was built, but I\u2019m not seeing where the decision about using the Comments API was discussed. Can someone point me to that conversation?\u201d is far more productive than either staying silent or declaring \u201cThis was obviously the wrong choice.\u201d<\/p>\n<p class=\"\">Your questions and criticisms are still valuable even when they come from incomplete understanding, as long as you frame them as questions and criticisms, not pronouncements.<\/p>\n<h3 class=\"wp-block-heading\">A Voice, Not A Vote<\/h3>\n<p class=\"\">Showing up does not grant you a vote, no matter how prepared, informed, or experienced you are. This can be a difficult reality to accept, especially if you\u2019ve spent considerable time researching an issue or crafting a well-reasoned argument.<\/p>\n<p class=\"\">But understanding this distinction is liberating. Your goal in offering criticism isn\u2019t to force a particular outcome. It\u2019s to ensure your perspective is heard and considered. Decisions in open source are ultimately made by those who do the work and maintain the code. Your criticism contributes valuable perspective to that decision-making process, but the decision itself belongs to the maintainers who will live with the consequences.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<blockquote class=\"wp-block-quote alignwide has-text-align-center is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"\">When a change is made to a code base, the committer making that change is taking on a lot of extra responsibility. In some ways, they now own that change and any resulting test failures, bugs, features built on top of the change, or even security issues that may follow. They must be willing to stand behind the changes they make until new rationale is presented.<\/p>\n<p class=\"\"><a href=\"https:\/\/maintaine.rs\/desrosj#maintainers-are-the-code-they-commit\">Maintainers in the WordPress Project<\/a> \u2013 <a href=\"https:\/\/maintaine.rs\/\">maintaine.rs<\/a> \u2013 Jonathan Desrosiers<\/p>\n<\/blockquote>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<p class=\"\">This is why the <em>how<\/em> of criticism matters so much. Criticism framed as demands or accusations puts maintainers on the defensive. Criticism framed as genuine questions and concerns begins a dialogue. \u201cI\u2019m worried this approach will cause problems with X\u201d invites discussion. \u201cYou should have done Y instead\u201d closes it.<\/p>\n<h2 class=\"wp-block-heading\">The Responsibility of Voice<\/h2>\n<p class=\"\">Luke eventually did engage with his concerns about the Notes feature, and the WordPress community is better for it. His journey from hesitation to informed participation is a model worth emulating: acknowledge what you don\u2019t know, do some research, but don\u2019t let the pursuit of perfect knowledge stop you from contributing your perspective.<\/p>\n<p class=\"\">The next time you find yourself frustrated with a technical decision or concerned about a direction your favorite open source project is taking, remember: your criticism is a contribution. The question isn\u2019t whether you have the right to speak (you do). The question is how you\u2019ll use that voice to make the project stronger for everyone.<\/p>\n<p class=\"has-text-align-right has-small-font-size\"><em>Featured image credit: <a href=\"https:\/\/creativecommons.org\/publicdomain\/zero\/1.0\/\">CC0<\/a> licensed <a href=\"https:\/\/wordpress.org\/photos\/photo\/4086355e20\/\">photo<\/a> by <a href=\"https:\/\/naoko.blog\/\">Naoko Takano<\/a> from the <a href=\"https:\/\/wordpress.org\/photos\/\">WordPress Photo Directory<\/a>.<\/em><\/p>\n<p>The post <a href=\"https:\/\/jonathandesrosiers.com\/2026\/02\/offering-criticism-in-open-source-projects\/\">Offering Criticism in Open Source Projects<\/a> appeared first on <a href=\"https:\/\/jonathandesrosiers.com\/\">Jonathan Desrosiers<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>A recent episode of the Crossword podcast had me thinking about offering criticism constructively in open source projects. Jonathan Wold and Luke Carbis were discussing the new Notes feature in WordPress 6.9, which was added as a building block for real-time collaboration. Luke mentioned how he was curious about the reasoning behind the related technical [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":435,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-434","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/wp-json\/wp\/v2\/posts\/434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=434"}],"version-history":[{"count":0,"href":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/wp-json\/wp\/v2\/posts\/434\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/wp-json\/wp\/v2\/media\/435"}],"wp:attachment":[{"href":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xn--mnchen-3ya.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}