Bagaimana Anda mengucapkan "itu open source, kirim tambalan" sehingga ramah?

18

Dalam jawaban Apa retort kanonik untuk "itu open source, kirim tambalan"? , banyak orang menyuarakan pendapat bahwa hanya meminta orang untuk mengirimkan tambalan adalah arogan dan kasar.

Tetapi bagi saya tampaknya sebagai pengembang pada proyek open source apa pun, Anda akan melihat lebih banyak permintaan fitur pada milis daripada yang dapat Anda terapkan. Jadi ketika seorang pengguna berkata, "Saya ingin melihat fitur X", kebenaran dari masalah ini biasanya bahwa peluangnya untuk diimplementasikan sangat tipis kecuali mereka mengirimkan tambalan sendiri. Juga, terkadang sedikit dorongan mungkin yang diperlukan untuk mengubah pengguna menjadi kontributor.

Di sisi lain, Anda tidak ingin menakut-nakuti (calon) kontributor dengan mengatakan tidak sopan.

Jadi, bagaimana Anda mengatakan "silakan kirim tambalan alih-alih meminta fitur" dengan ramah?

Perbarui: Terima kasih untuk semua saran! Saya melihat kebanyakan dari mereka membutuhkan penjelasan yang cukup panjang. Tapi karena saya lebih suka menghindari (a) menjelaskan hal yang sama setiap hari (hanya butuh terlalu banyak waktu), atau (b) menggunakan snippet yang saya tempelkan ke email (itu menjadi sangat cepat dan cepat), saya bertanya-tanya: Apakah Adakah yang menulis ini di dokumen yang bisa saya tautkan?

(Hal-hal khusus proyek seperti cara menulis tes, mengkompilasi kode, dan mengirimkan tambalan masih perlu didokumentasikan tentu saja, tapi saya pikir masalah teknis tersebut harus masuk ke CONTRIBUTING.txt.)

Jo Liss
sumber
10
Sangat penting, jika Anda tidak bermaksud menerima tambalan, jangan memintanya! Artinya, jika Anda mengatakan "Kirim tambalan" maka Anda harus bersedia menerima tambalan yang bersih dan ditulis dengan baik.
edA-qa mort-ora-y
1
@ edA-qa - belum tentu setiap tambalan yang bersih dan ditulis dengan baik - tetapi jika Anda cenderung memveto fitur baru, Anda mungkin harus memiliki cara orang dapat mengusulkan fitur-fitur tersebut kepada Anda untuk jawaban yang mungkin / mungkin tidak dijawab sebelum mereka menginvestasikan banyak waktu mengembangkannya.
Steve314
@ Seve, maksud saya bukan tambalan yang tidak diminta , itu adalah cerita yang berbeda. Maksud saya secara khusus seperti dalam pertanyaan, jika Anda memberi tahu seseorang untuk mengirimkan tambalan.
edA-qa mort-ora-y
Itu hanya arogan dan kasar ketika Anda benar-benar bermaksud "itu mungkin atau mungkin bukan ide yang baik, pergi". Jika Anda dengan jujur ​​mengatakan bahwa itu adalah ide yang buruk, katakan saja. Jika yang Anda maksud itu adalah ide yang benar-benar bagus sehingga Anda tidak punya waktu untuk mengimplementasikan, katakan saja. Dan tunjukkan bahwa Anda bersedia menerima tambalan yang menerapkan fitur itu. (Dengan begitu, mungkin seseorang benar-benar akan mengirimkan tambalan.) Masalah dengan hanya mengatakan "kirim tambalan" adalah tidak jelas dan meremehkan.
David Schwartz

Jawaban:

8

Kamu tidak.

Sejauh yang saya alami, kontributor kontributor adalah orang-orang yang bermain-main, dan tidak akan mengirimkan permintaan fitur hanya dengan memintanya. Mereka biasanya akan memintanya dengan beberapa tingkat partisipasi sudah:

  • Bukankah manis jika [...]? Mungkin saja melakukan A, B dan C. (Itu umpan untuk: Saya tidak punya waktu tapi ini ide yang bagus kalau-kalau Anda melakukannya.)
  • Ini tambalan yang harus dilakukan / inilah perbaikan untuk [...].
  • Saya sedang berpikir untuk menulis tambalan untuk dilakukan [...] dan dapat menggunakan umpan balik / siapa pun yang tertarik untuk membantu.
  • Dll

Coder yang mengirimkan permintaan fitur biasanya melakukannya karena suatu alasan. Beberapa di antaranya termasuk (dan saya tahu fakta bahwa dua yang terakhir terjadi di WordPress, misalnya):

  • Mereka jauh di dalam proyek sumber terbuka lainnya, yaitu tidak punya waktu.
  • Mereka adalah penunggang bebas dan berniat menjaga keadaan seperti itu.
  • Itu jauh melampaui tingkat keahlian mereka / ditulis dalam bahasa yang tidak mereka ketahui.
  • Mereka menggunakan perangkat lunak karena kurangnya pilihan yang lebih baik, dan tidak ingin berurusan dengan tumpukan kode batsh * t ^ \ b.
  • Mereka tidak dapat lagi diganggu karena tambalan mereka sebelumnya diabaikan / ditolak, yaitu berpikir mereka akan membuang-buang waktu mereka.

Biasanya, permintaan fitur akan datang dari pengguna akhir yang tidak dapat berkontribusi tambalan meskipun mereka menginginkannya. Apalagi saat diserahkan di luar sistem tiket.


Saya pikir prioritas Anda yang paling penting adalah tidak menunda potensi / kontributor yang ada, daripada mencoba untuk secara aktif merekrut kontributor baru. Ini sangat penting, dan saya mengatakan ini dari pengalaman. Saya punya cara aneh untuk mengambil basis kode baru, yang melibatkan membaca kode secara sepintas untuk mendapatkan beberapa tingkat pemahaman tentang itu, melompat ke sistem tiket, dan memperbaiki bug yang terlihat mudah untuk mempelajari internal secara mendalam (dan pengarsipan yang baru saat saya uji). Selama bertahun-tahun saya telah membanjiri beberapa proyek dengan puluhan tiket dan tambalan. Seringkali tiket-tiket ini tidak mendapat perhatian tepat waktu (bahkan pengakuan, misalnya, teruskan!) - termasuk ketika mereka datang dengan langkah-langkah mendiagnosis dan unit test yang terdokumentasi.

Denis de Bernardy
sumber
1
Saya sangat setuju. Tampaknya ada sentimen umum di antara proyek-proyek F / OSS bahwa siapa pun yang mengajukan permintaan fitur hanya malas dan dapat mengirimkan tambalan / memodifikasi instalasi mereka sendiri jika mereka benar - benar menginginkan fitur itu. Ini sangat memalukan bagi siapa saja yang tidak tahu cara memprogram, atau tidak punya waktu karena mereka terlibat dalam proyek lain. Itu bukan kata-kata "kirim tambalan" yang kasar, tetapi asumsi bahwa pengguna tidak memiliki apa pun di piring mereka.
Shauna
9

Singkatnya, Anda menjelaskan bahwa Anda tidak memiliki waktu tanpa batas untuk melakukan pekerjaan mereka secara gratis. (Anda dapat melewati bagian 'gratis'), dan mereka dapat berkontribusi kapan saja, bukan proyek "Anda", proyek semua orang.

jadi Anda berkata "Kami benar-benar minta maaf, itu ide yang bagus tapi kami terlalu sibuk dengan semua pekerjaan lain yang terjadi, kami akan menambahkannya ke daftar, tetapi jika Anda benar-benar ingin memasukkan ini, dan Anda ingin membantu kami dengan berkontribusi pada proyek maka itu akan luar biasa.kami memiliki beberapa dokumentasi untuk membantu orang-orang membuat perubahan pada proyek, mereka ada di sini, jadi jika Anda memiliki keterampilan dan waktu dan ingin membantu kami, maka silakan pergi dan kirim kami tambalan dengan perubahan Anda. Kami mungkin harus membuat beberapa mod untuk itu ketika kami mendapatkannya sehingga cocok dengan standar proyek, tetapi Anda akan melakukan kami bantuan besar dengan setidaknya memberi kami dukungan untuk pekerjaan ini dan kami akan senang Anda karena membantu kami ".

Tentu saja, begitu Anda mulai meminta tambalan, Anda tidak akan pernah, membiarkannya tergeletak di sistem tiket terlalu lama, jika Anda mendapat banyak, Anda akan mengintegrasikannya lebih dari melakukan pekerjaan yang dulu Anda lakukan. Anda mungkin tidak suka itu, tetapi itu perlu jika Anda ingin tambalan terus datang.

gbjbaanb
sumber
Saya suka ini. Mungkin ini sebenarnya adalah sesuatu yang terbaik dimasukkan ke dalam dokumentasi sehingga Anda tidak memiliki salin dan rekatkan setiap kali Anda perlu menjelaskan ini. Dan kemudian Anda hanya mengatakan "Apakah Anda ingin berkontribusi tambalan? Http: //.../#contributing"
Jo Liss
@ JoLiss: Anda mengkritik jawaban saya karena terdengar tidak pribadi; bagaimana menurut Anda bahwa menyalin dan menempelkan hyperlink ke FAQ lebih baik? Jika Anda akan menggunakan respons kalengan, maka gunakan respons yang menunjukkan empati atau terdengar profesional (atau keduanya). Gagasan untuk pintasan ini bukanlah; bahkan justru jenis kekasaran yang dikeluhkan oleh pertanyaan aslinya.
Aaronaught
Hah, menarik. Saya tidak menyadari bahwa orang-orang akan merasa tidak sopan jika Anda mengirim tautan. Di sisi lain, saya menemukan bahwa tanggapan kalengan datang sangat impersonal. Jadi mungkin yang terbaik adalah mengetikkan penjelasan seperti ini ketika muncul.
Jo Liss
6

Tetap sopan, dan jelaskan situasinya dengan jelas. Bagaimana dengan sesuatu seperti:

Terima kasih atas tanggapan Anda. Kami menemukan fitur Anda sangat menarik, tetapi meskipun kami berupaya untuk mengimplementasikan fitur yang paling banyak diminta dalam produk kami, kami tidak memiliki cukup waktu untuk mengimplementasikan semuanya. Jika Anda seorang pengembang, Anda dapat bergabung dengan kami dengan berkontribusi pada proyek ini, karena merupakan sumber terbuka.

Lihat, Anda tidak bisa hanya mengatakan, "Mengapa Anda mengganggu saya dengan permintaan Anda? Saya di sini tidak bekerja untuk Anda secara gratis; jika Anda menginginkan fitur ini, pergi dan terapkan sendiri". Orang tersebut mungkin bukan pengembang, mungkin tidak tahu bahasa yang digunakan untuk mengembangkan produk, dll.

Jadi, alih-alih bersikap kasar, Anda mungkin menyarankan untuk berpartisipasi dalam proyek ini, dan juga menjelaskan mengapa Anda mungkin tidak dapat mengimplementasikan fitur itu sendiri.


Cara lain untuk tidak bersikap kasar adalah dengan tidak perlu mengatakan apa-apa. Jika Anda memiliki situs web di mana pengguna aplikasi Anda dapat menyarankan fitur baru dan melaporkan bug, Anda mungkin ingin mengurutkan item berdasarkan prioritas mereka: misalnya jika suatu fitur diminta oleh 10.000 pengguna, dan satu lagi diminta hanya oleh 10 , ada kemungkinan bahwa yang pertama akan diimplementasikan terlebih dahulu.

Di situs web semacam itu, Anda selalu dapat memberikan saran "implementasikan sendiri" untuk fitur-fitur yang, setelah beberapa hari atau minggu, belum menerima cukup upvotes dari pengguna lain.

Arseni Mourzenko
sumber
5

Terima kasih atas permintaan Anda. Kami telah menambahkannya ke dalam simpanan proyek kami dan akan segera memeriksanya.

Harap dicatat bahwa karena volume permintaan, kami tidak dapat menjamin bahwa setiap permintaan akan dilaksanakan. Kami mengandalkan sukarelawan, jadi jika Anda seorang pengembang, silakan pertimbangkan untuk menyumbangkan sebagian dari waktu Anda dan mengirimkan tambalan . Jika tidak, ketahuilah bahwa kita semua bekerja keras untuk melewati backlog dan akan menerima permintaan Anda sesegera mungkin.

Sungguh, apakah itu sangat sulit?

Aaronaught
sumber
+1 luar biasa; bagus, respons profesional. @ Jo Liss: ingatlah bahwa kebanyakan orang hanya ingin menggunakan perangkat lunak, tidak mendedikasikan hidup mereka untuk itu.
Steven A. Lowe
Saya suka esensi dari itu, tetapi saya pribadi berpikir nadanya agak terlalu pribadi. Anda biasanya bukan perusahaan yang melakukan layanan pelanggan, Anda hanya pengembang berbicara dengan rekan. Bahkan orang-orang di sinyal menghindari jenis bahasa ini .
Jo Liss
@JoLiss Anda sedang melakukan layanan pelanggan, apakah Anda ingin percaya atau tidak. Dan Anda tidak mengatakan apa-apa tentang "teman". Mungkin saja orang yang Anda ajak bicara adalah pengembang, tetapi kecuali Anda tahu bahwa sebenarnya, saya pikir itu bukan asumsi yang tepat untuk dibuat (kecuali jika Anda mengerjakan alat pengembang, tetapi Anda tidak menentukan itu dalam pertanyaan). Akhirnya, orang-orang di 37 sinyal berbicara tentang apa yang merupakan omong kosong ... ironis, untuk sedikitnya.
Aaronaught
Hm Saya tidak yakin saya ingin memberi kesan bahwa saya melakukan layanan pelanggan ... Maksud Anda bahwa pengguna belum tentu teman sebaya diambil dengan baik. Kembali sinyal, di sini ada posting blog lain yang berbicara tentang nada - saya pikir intinya tidak begitu banyak bahwa Anda tidak boleh omong kosong, tetapi bahwa Anda tidak boleh keluar seperti perusahaan berwajah. Dalam pandangan saya ini adalah strategi yang baik, dan itu bahkan lebih benar untuk proyek-proyek open source.
Jo Liss
2
@ JoLiss: Jika Anda ingin menjadi lebih pribadi dari ini, bagus, semua kekuatan untuk Anda - ini, bagi saya, adalah standar minimum yang harus Anda penuhi dalam hal kesopanan. Jangan hanya mengatakan "kirim tambalan" - jelaskan bahwa Anda sibuk, tidak malas atau tidak tertarik; mengakui bahwa mereka mungkin tidak benar-benar dapat mengirimkan tambalan, dan bahwa bahkan jika mereka, mereka masih akan membantu Anda dengan mewajibkan.
Aaronaught
4

Nah, alih-alih hanya mengatakan "kirim tambalan", Anda harus sedikit lebih rumit.

  • Jelaskan, bahwa Anda tidak punya waktu untuk itu sekarang atau di masa mendatang, jadi jika orang lain ingin segera menerapkannya, tidak ada jalan lain selain menyediakan tambalan.
  • Luangkan waktu untuk menilai fitur. Jika Anda benar-benar menyukainya, tidak ada salahnya mengatakan itu. Dorong orang. Atau jika Anda berpikir fitur tersebut sebenarnya buruk, maka luangkan waktu untuk menjelaskannya.
  • Berikan bantuan awal. Tidak ada yang tahu basis kode seperti Anda. Anda tidak punya waktu untuk melakukannya, tetapi Anda mungkin tahu persis bagaimana melakukannya dan dari mana Anda akan mulai. Dalam 5-10 menit Anda dapat berbagi pengetahuan bahwa orang lain akan membutuhkan waktu berjam-jam untuk mencari tahu. Ini juga membantu gambaran besar Anda untuk menang. Alih-alih memiliki fitur asing melesat ke proyek Anda, Anda dapat memandu kontributor untuk integrasi yang bagus.
back2dos
sumber
Saya setuju dengan ini, tetapi saya akan menambahkan bahwa Anda memerlukan panduan yang sangat jelas tentang apa yang Anda harapkan dari sebuah tambalan. (misalnya sesuai dengan standar kode, unit diuji, didokumentasikan). Ini penting, karena sangat mungkin bahwa Anda akan menjadi orang yang harus mendukung fitur - patch submitter sangat jarang tinggal untuk memperbaiki bug mereka atau menawarkan dukungan kepada pengguna lain dari perpustakaan Anda.
Mark Heath
3

Inilah yang biasanya saya katakan ...

"Itu saran yang menarik dan akan keren jika FooBarLib bisa melakukan itu. Sayangnya, FooBarLib hanyalah proyek waktu luang bagi saya sehingga tidak mungkin saya akan mendapatkan putaran untuk melakukan itu dalam waktu dekat. Saya menyambut pengiriman ke FooBarLib, jadi jika Anda dapat menerapkan ini sendiri, jangan ragu untuk mengirimkan tambalan (pastikan Anda membaca "cara berkontribusi pada FooBarLib" pedoman kami terlebih dahulu). "

Mark Heath
sumber
2

Selain cara-cara yang bagus untuk mengatakan "Kirim tambalan", juga menyediakan dokumentasi yang berorientasi pada pengembang sehingga orang lain yang benar-benar ingin fitur tersebut dapat mempercepat proyek Anda dengan mudah. Banyak proyek yang tidak ramah bagi pengembang dan membutuhkan berhari-hari minimal membaca ribuan baris kode dan berton-ton kasus uji kecil yang muncul di berbagai bagian sistem untuk memperbaikinya.

Jika Anda memberikan bantuan kepada pengembang yang mungkin, mereka akan lebih dari bersedia untuk memberikan bantuan. Ini berarti dokumentasi kode yang baik, halaman wiki yang bagus menjelaskan alur (atau diagram UML / papan tulis yang baik), dan cara mudah untuk mendapatkan tambalan yang diterima.

TheLQ
sumber
-2

Saya sangat suka cara github mendorong orang lain untuk membayar proyek. Beberapa versi dari proyek yang sama dapat ada di bawah akun pengguna yang berbeda. Jika Anda tidak menyukai arahan yang saya ambil dari proyek ini, tolong tolong. Anda dapat dengan mudah mengirimkan permintaan tarik tetapi tidak terjebak menunggu saya menerimanya.

Jadi jawaban saya sering, cukup pertahankan.

mcotton
sumber