O hack de solicitação pull · Felix Geisendörfer

O hack de solicitação pull · Felix Geisendörfer


O hack de solicitação pull · Felix Geisendörfer

Publicado:

Depois de escrever sobre código aberto e responsabilidade, gostaria de compartilhar um pequeno hack de colaboração que criei no ano passado. Aqui está:

Sempre que alguém lhe enviar uma solicitação pull, conceda a ele acesso de commit ao seu projeto.

Embora possa parecer incrivelmente estúpido a princípio, usar essa estratégia permitirá que você libere o verdadeiro poder do Github. Deixe-me explicar. No ano passado, percebi que não conseguiria mais alocar tempo suficiente para meus projetos de código aberto. E não estou nem falando sobre consertar bugs ou adicionar recursos, estou falando sobre o acúmulo de pull requests.

Então, por que eu simplesmente não os fundiria? Bem, muitos deles não eram bons o suficiente. Faltavam testes ou documentação, violavam os padrões de codificação ou introduziam novos problemas que o colaborador não havia considerado. Muitas vezes eu explicava os problemas detalhadamente, apenas para descobrir que o colaborador não tinha tempo para fazer as alterações. É claro que eu mesmo poderia fazer esses ajustes, mas isso geralmente levaria tanto tempo quanto se eu mesmo tivesse feito o patch. Então, depois de ver esse padrão acontecer muitas vezes, comecei a negligenciar a maioria das solicitações pull recebidas que não podiam ser mescladas imediatamente.

E então me deparei com o hack que mencionei acima. Eu gostaria de receber o crédito por projetá-lo, mas realmente aconteceu por coincidência. Alguém enviou uma solicitação pull para um projeto que eu não estava mais usando e percebi um problema imediatamente. Porém, como eu não me importava mais com o projeto, e a pessoa que enviou o pull request sim, simplesmente o adicionei como colaborador e disse algo assim: “Não tenho mais tempo para manter este projeto, então dei a você acesso de commit para fazer as alterações que desejar. Seria bom seguir o estilo usado pelo resto do código e adicionar alguns testes a este patch.”

O resultado foi pura magia. Em poucas horas, a mesma pessoa que acabara de enviar um patch bastante medíocre já havia consertado as coisas e feito o commit. Isso era altamente incomum, então comecei a usar a mesma estratégia para alguns outros projetos pequenos que não estava mais interessado em manter. E funcionou, uma e outra vez. É claro que às vezes isso não faria diferença, mas estava claramente funcionando muito melhor do que a minha abordagem anterior.

Dado o sucesso de meus projetos menores, finalmente decidi experimentá-lo também em meus dois projetos mais populares, node-mysql e node-formidable. Inicialmente fiquei muito preocupado em abrir mão do controle desses projetos, mas os resultados falam por si. Ambos os projetos agora são mantidos por um grupo de desenvolvedores incríveis, escrevendo códigos muito melhores do que jamais recebi na forma de solicitações pull antes.

Então, por que isso funciona? Bem, tenho algumas ideias. Depois que as pessoas tiverem acesso de commit, elas não ficarão mais preocupadas com a possibilidade de seu patch não ser mesclado. Eles agora têm o poder de cometê-lo sozinhos, fazendo com que dediquem muito mais trabalho a isso. Fazer o commit/push real também muda seu senso de propriedade. Em vez de entregar uma diferença a outra pessoa, eles agora fazem parte do projeto, possuindo uma pequena parte dele.

Mas a magia não para por aqui. Além do aumento da qualidade de suas contribuições, observei muitas pessoas continuando a ajudar com problemas e patches enviados por outros usuários. É claro que isso é alimentado pelo Github notificando todos os contribuidores em um repositório sobre todas as atividades nele.

Então, você realmente deveria fazer isso para todas as solicitações pull? Provavelmente não. Embora eu tenha dado acesso a vários projetos meus a uma grande quantidade de usuários, ainda estou procurando:

  • Perfil do Github: Este usuário pode perder reputação fazendo algo estúpido?
  • Habilidade: Com base no patch, acho que o usuário poderia ser um bom desenvolvedor?
  • Utilidade: Este patch está resolvendo um problema válido?

Com estas verificações em vigor, penso que esta abordagem é uma forma fantástica de evitar que os projectos fiquem obsoletos, bem como de transformar projectos individuais em pequenas comunidades. No entanto, você está obviamente livre para executar seus projetos da maneira que desejar.

Por último, mas não menos importante, gostaria de agradecer a algumas das grandes pessoas que fizeram contribuições significativas para alguns dos meus projetos recentemente:

Vocês são absolutamente incríveis e não posso agradecer o suficiente por toda a ajuda.

Atualizar: Olhando para trás, conversando com Peter Hintjens no MixIT foi definitivamente uma inspiração para isso.

Atualização 2: Há uma discussão interessante sobre isso no Hacker News agora, parece que outros também usaram essa estratégia com sucesso!

Atualização 3: Há ainda mais discussões acontecendo no Reddit.

— Felix Geisendörfer


Assine este blog via RSS ou e-mail ou receba pequenas atualizações minhas via Twitter.





Source link

Postagens Similares

  • XOXO এক্সপ্লোর · ব্লগ · XOXO চালু করা হচ্ছে

    2015 সালে, XOXO তৈরির চার বছর পরে, আমরা সিদ্ধান্ত নিয়েছিলাম যে উৎসবের একটি সঠিক ওয়েবসাইট ছিল। ততদিন পর্যন্ত, আমরা প্রতি বছর তিনটি সম্পূর্ণ আলাদা মিনি-সাইট ডিজাইন ও তৈরি করছিলাম: একটি আমাদের তারিখ ঘোষণা করার জন্য, দ্বিতীয়টি আমাদের লাইনআপ প্রকাশ করার জন্য এবং রেজিস্ট্রেশন খোলার জন্য এবং তৃতীয়টি অংশগ্রহণকারীদের সাথে আমাদের সময়সূচী শেয়ার করার জন্য৷ যদিও…

  • すべての選択がすべてを変える: ショー

    約 3 週間前、レオ・ラポルテと私は、TWiT ネットワークの新しい月例番組となるものの最初のエピソードを録画しました。名前を付けるのは難しく、Stack Overflow のときと同じように、名前について投票するところでしたが、すぐに決定しました。 オフ・バイ・ワン with ジェフ・アトウッド – これは非常に多くの理由で面白いですが、主に次のプログラマーのジョークによるものです。 いいえ、古典的な引用のこのバリエーションを私が思いついたわけではありませんが、そうできたらよかったのにと思います。まあ、何はともあれ、こちらがショー 2 です。誰でも無料でご覧いただけます。 ショーは 1 時間 47 分、最後まで純粋な喜びに満ちています。否定的なものはなく、ただ低レベルの狂気だけです、そしてもちろん、 必須の楽しみ。次のエピソードは 4 日後に録画します。Club TWiT メンバー向けのライブ ストリームもあります。 (こうしましょう。もし、そして 場合のみ、エピソード全体を視聴し、見たものが気に入った場合は、このフォームに記入した最初の 10 名に、Club TWiT メンバーシップを丸 1 年間補償しますので、残りの番組を楽しんでいただけたかどうかを確認してください。) 常設番組のホームページは twit.tv/obo にあります。 信じられないほど才能のある人々によるアート クレイグラハマート.com Stack Overflow and Discourse の共同創設者であり、Coding Horror ブログの作成者である Jeff Atwood 氏は、Leo Laporte に毎月参加して、独自のロジックに従った会話を行っています。小道具コメディ、コンピューティングの歴史、オープンウェブ、富の不平等、ヨーヨー。可能な限り最善の方法で、常に 1 つのトピックから離れてください。 これは、レオと私がテクノロジー分野のポジティブなことに対する熱意を共有するもう 1 つの方法であり、共有することが非常に重要であるためです。…

  • 2026-06-04 サシュエスト・ポイント / メモ / ロバート・ジャクソン

    注記 2026 年 6 月 4 日 KX2、KJ6ER チャレンジャーによる US-0516 でのさわやかな Pack Mule アクティベーション、および Sachuest Point の岩場からの 38 回の迅速な CW QSO。 無線ポタフィールドノートCWパックラバ これらの用語に馴染みのないものがありますか? ポタ — Parks on the Air — 認可を受けたオペレーターが指定された公有地 (国立公園、州立公園、野生動物保護区、および同様の地域) から連絡を取るアマチュア無線プログラム。各場所には参照番号が付いています。公園を有効にするには、その境界内から少なくとも 10 件の連絡先を記録します。ハンターは自宅からアクティベーターに連絡するオペレーターです。 パックラバ — ハイキング、サイクリング、パドリング、またはその他の非電動アプローチによって車両から持ち去られたポータブル ステーションに対する POTA ニュース & レビュー アクティベーター賞。資格のあるアクティベーションには少なくとも 22 の QSO が必要で、完全な特典には 100 の資格のあるアクティベーションが必要です。 POTAについてのページ・パックミュール賞・ラジオ用語集 20分38秒 サチューエスト ポイント国立野生生物保護区 (US-0516)…

  • بن کا استعمال کرتے ہوئے خود ساختہ ٹائپ اسکرپٹ پروگرام

    بون خود بخود انحصار انسٹال کرنا اگر آپ مجھ سے اتنا ہی نفرت کرتے ہیں تو شاید انحصار کی وجہ سے۔ وقت کا تقریبا 23 23-319 ٪ ، جب میں ایک ازگر ایپ چلاتا ہوں تو ، یہ انحصار کی وجہ سے کام نہیں کرتا ہے ، اور میں یہ جاننے کی کوشش کرتا ہوں…

  • Avaliações estaduais de prontidão aberta para 31/07/20

    Estas avaliações mostram dados a nível estadual que podem ajudar a avaliar a preparação de cada estado para reabrir. Alasca • Alabama • Arkansas • Arizona • Califórnia • Colorado • Connecticut • Distrito de Columbia • Delaware • Flórida • Geórgia • Havaí • Iowa • Idaho • Illinois • Indiana • Kansas •…

  • Temel dönemin en etkili kitabını güncelleme

    Bir bakıma, bu iki kitap tüm profesyonel kariyerimden sorumludur. Erken bilgisayarlarla, süslü bir schmancy masaüstüne veya parmağınızla kolayca dürtebileceğiniz ve üretebileceğiniz uygulamalarla dolu bir ekrana önyüklemediniz. HAYIR, Bu bilgisayarlar komut satırına kadar önyüklendi. Buradan, şanslıysanız, bir kaset bant sürücünüz olabilir. Doğru komutları biliyorsanız, bunları kaset kasetinden program yüklemek için yazabilirsiniz. Ancak bu, erken kişisel bilgisayarlarla…

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *