Tanggung jawab siapa adalah perbaikan bug?


12

Situasi yang muncul beberapa kali dalam proyek sumber terbuka seperti ini:

  1. Saya melihat ada bug dalam penerapan kami, dan mencari tahu patch hack cepat. (Misalnya, cukup mengomentari kode yang sebenarnya tidak kita butuhkan.)
  2. Saya menghabiskan sedikit usaha ekstra untuk mencari tahu bug yang sebenarnya, membuat patch, dan mengirimkannya melalui permintaan tarik Git, atau serupa.
  3. Permintaan penarikan saya ditolak. Mungkin tambalan itu tidak sempurna (misalnya, termasuk baris yang seharusnya tidak ada), mungkin itu melanggar gaya pengkodean, mungkin memiliki konsekuensi lain. Atau mungkin saya melakukan sesuatu yang salah pada Git - permintaan tarik seharusnya ditata ulang atau sesuatu. Seorang pengelola memberikan umpan balik tentang cara meningkatkan tambalan, dan meminta saya mengirimkannya kembali.

Pada titik ini saya bingung tentang seberapa jauh saya harus melanjutkan. Sejauh yang saya ketahui, saya tidak punya masalah: Saya memperbaikinya kembali pada langkah 1. Saya telah melaporkan masalah ini, saya bahkan telah mengambil langkah-langkah untuk memperbaikinya untuk orang lain. Tetapi saya tidak merasa bahwa itu adalah permintaan tarik "saya", jadi saya tidak merasa bahwa tanggung jawab untuk memperbaiki tambalan harus datang kepada saya.

Satu situasi khusus yang mengganggu saya adalah setelah diskusi tentang kegagalan tambalan saya, kami mencapai persetujuan pada milis tentang apa tambalan yang benar akan terjadi (yaitu, bagaimana seharusnya berperilaku, kadang-kadang termasuk setiap baris kode dijabarkan). Kemudian, masih dianggap sebagai tanggung jawab saya untuk benar-benar menghasilkan dan mengirimkan tambalan.

Apakah ada etika standar dalam situasi ini? Bagaimana mereka diselesaikan? Apakah reaksi saya tidak biasa? Seberapa jauh Anda diharapkan untuk memperbaiki bug Anda?

(Perhatikan ketika saya mengatakan "proyek sumber terbuka", beberapa di antaranya sangat kecil, tetapi mungkin bukan hobi - hanya proyek perangkat lunak kecil yang berguna bagi beberapa organisasi, yang menggunakan sumber daya pengembang untuk mengerjakannya. Jika jawabannya jelas adalah "memperbaiki tambalan dan mengirim kembali", pahamilah bahwa saya memiliki tanggung jawab kepada atasan saya untuk mengerjakan hal-hal yang bermanfaat bagi mereka. Menghabiskan waktu memperbaiki bug yang tidak mempengaruhi kita akan salah ...)

Jawaban:


12

Sejauh yang saya ketahui, jika Anda menemukan bug atau memiliki permintaan tambahan, bukan merupakan kontributor proyek, dan telah mengirimkan laporan kerusakan melalui saluran yang sesuai, Anda selesai. Dalam hal memberikan kembali kepada komunitas, siapa pun yang menggunakan proyek sumber terbuka dan menemukan cacat harus melaporkannya.

Mencoba menemukan solusi, mendesainnya, dan mengimplementasikannya merupakan bonus bagi proyek. Jika Anda telah melakukan ini, mungkin ide yang baik untuk mengirimkannya, baik melalui permintaan tarik atau mungkin mengirim file delta ke tim pengembangan bersama dengan laporan cacat atau permintaan tambahan untuk memberi mereka sesuatu untuk dikerjakan. Namun, mereka tidak berkewajiban untuk menerima kontribusi Anda pada proyek.

Mengharapkan pengguna untuk berkontribusi tambalan tampaknya salah, bagi saya. Cukup mudah untuk berpartisipasi dalam diskusi tentang suatu masalah, tetapi ini merupakan investasi waktu yang jauh lebih besar untuk menghasilkan solusi. Tidak ada proyek yang diharapkan non-kontributor menjadi kontributor hanya untuk memperbaiki satu masalah.


Setuju 100%, tidak ada tanggung jawab pada pengguna akhir untuk mengirimkan perbaikan langsung ke repositori sumber, kecuali jika Anda ingin menjadi kontributor reguler untuk proyek. Itulah gunanya milis dan pelacak bug. Spring, Maven, dll. Melakukan model yang tepat ini di mana orang akan menemukan solusinya sendiri, dan mempostingnya ke entri di Jira. Terserah siapa pun yang mengerjakan bug untuk menerima dan menangani kontribusi.
Spencer Kormos

+1 untuk menemukan cacat dan mengirimkan laporan. Anda mungkin tidak mengirimkan perbaikan tambalan tetapi saya tentu merasa bahwa hanya dengan menemukan cacat, meneliti dan mengirimkan informasi yang relevan dalam laporan cacat maka Anda tentu berkontribusi pada proyek.
maple_shaft

Anggaplah saya adalah kontributor proyek secara keseluruhan. Apa yang berubah?
Steve Bennett

@SteveBennett Tanpa mengetahui struktur proyek, saya tidak bisa menjawabnya. Beberapa proyek lebih terstruktur dengan tugas yang ditugaskan, sementara yang lain lebih bebas mengalir.
Thomas Owens

5

Lanjutkan sejauh Anda bersedia untuk bertahan dengan itu. Akan bagus untuk memperbaiki tambalan Anda dan membaginya dengan dunia di bagasi utama, tetapi jika pengelola tidak menginginkannya, angkat bahu. Anda dapat memposting di suatu tempat masalah Anda, dan tambalan untuk mengatasinya, sehingga orang lain di kapal yang sama dapat mencari solusi.

Dan Anda bukannya tanpa masalah. Tambalan Anda tidak akan berada dalam peningkatan berikutnya. Jadi, Anda harus melakukan pengiriman ulang, dan berharap itu berfungsi atau memijatnya, setiap kali Anda mengambil versi baru. Jadi memasukkannya ke proyek utama akan menghemat waktu Anda, dan perusahaan Anda, dalam jangka panjang.

Ini menyakitkan bagi Anda, tetapi Anda berkontribusi pada komunitas. Saya tentu menghargai semua kontributor kerja. Ini tidak seperti perangkat lunak berkualitas yang secara genetis berasal dari massa. Seseorang harus melakukan pekerjaan. (Jadi, siapa yang hebat? Anda luar biasa). Jika Anda merasa tidak nyaman untuk itu, umumkan kepada komunitas bahwa meskipun Anda menghargai diskusi tentang bagaimana seharusnya, Anda terlalu sibuk untuk melakukannya. Maksud saya, apa yang akan mereka lakukan? Potong gajimu?


4

Ada satu prinsip yang membuat budaya open source lebih mudah dipahami: orang yang melakukan pekerjaan memutuskan apa yang harus dikerjakan. Ini adalah salah satu daya tariknya dibandingkan dengan pekerjaan harian pengembang. Prioritas # 1 Anda mungkin # 50 di backlog mereka. Jika Anda tidak memperbaiki permintaan tarik Anda, pada akhirnya itu mungkin akan menetes ke atas dan mereka akan mengurusnya. Namun, jika Anda membuatnya cukup mudah bagi mereka, mereka akan mengurusnya sekarang.

Alasan lain mereka meminta Anda untuk memperbaiki permintaan tarik Anda lebih murah hati. Mereka ingin Anda mendapatkan kredit atas kontribusi Anda, sekecil apa pun itu. Jika Anda melakukan perbaikan, nama Anda adalah yang ada di bidang penulis komit. Sebagian besar orang cukup bangga atas kontribusi mereka hingga ingin melihatnya, sehingga modus operandi default pengelola adalah membiarkan mereka.

Sejauh tanggung jawab Anda kepada atasan Anda, jika bisnis Anda mengandalkan kode ini, Anda tidak merugikan mereka. Pengusaha tahu manfaat dari seorang pekerja meluangkan waktu untuk mempertajam alat-alatnya.


2

AFAIK, cara open source adalah bahwa responsabilitas memperbaiki bug diserahkan kepada orang yang cukup peduli dengan bug untuk menangani beban untuk memastikan itu diperbaiki. Bergantung pada situasinya, saya telah melakukan segalanya mulai dari sekadar mengabaikan masalah hingga berjuang (menyediakan tambalan dan berdebat agar diterima) untuk memastikannya diperbaiki.

Semuanya benar, tapi jangan biarkan orang yang mengelola proyek mengharapkan hal yang salah dari Anda (yaitu memberi mereka harapan bahwa Anda akan memperbaiki masalah dengan opsi diskusi dan kemudian tidak melakukan apa-apa), mereka mungkin menyadari lebih banyak masalah daripada mereka dapat menangani diri mereka sendiri dan akan mencoba membuat kontributor berulang dari Anda jika mereka bisa.


1

Bug asli hanya dapat memengaruhi Anda, jadi sangat penting bagi Anda untuk mengirimkannya dengan melakukan apa pun yang diperlukan untuk memastikan kepatuhan Anda. Kalau tidak, versi berikutnya yang Anda tarik (karena Anda membutuhkan perbaikan lain) akan hilang perbaikan Anda.

Anda tidak ingin mempertahankan daftar tambalan yang perlu Anda terapkan setiap kali Anda menarik salinan baru proyek - itu terlalu banyak kesulitan. Ambil sedikit waktu ekstra dan perbaiki secara permanen sehingga Anda tidak perlu menghadapinya lagi.


1

Untuk pengembang open source, ada dua jenis masalah:

  • (a) masalah tanpa tambalan
  • (B) masalah yang disebabkan oleh patch

Saya pikir sebagian besar pengelola paket open source / pengembang MENCINTAI ide untuk membantu meningkatkan non-inti-kontributor dengan patch mereka.

Namun, tujuan utama mereka adalah meminimalkan jumlah masalah tipe-b. Itu sebabnya bilah diatur cukup tinggi.

Beberapa orang mengatasinya. Mereka menjadi kontributor, atau bahkan kontributor inti. Yang lain menyerah. Ada sifat Darwinian tertentu pada Open Source - kelangsungan hidup yang terkuat.

Saya mendorong Anda untuk menekan dan memuntahkan kontribusi Anda ke titik di mana tim menerimanya. Setelah Anda melakukan beberapa kontribusi, mereka akan mempercayai Anda lebih lanjut, tetapi Anda tetap harus memastikan bahwa kontribusi Anda tidak tercela.

Hasil akhirnya sangat berharga. Hal-hal seperti bisa mengatakan, "Apakah saya kode? Ya ... Anda menjalankan sesuatu yang saya tulis, setiap hari."


Ok, tapi apa level yang diperlukan untuk melompat-lompat? Agaknya ada perbedaan antara pengelola meminta sedikit usaha untuk mendapatkan kepercayaan, dan hanya menjadi sulit dan tidak masuk akal. Dan lagi, pertanyaan saya adalah: apa yang ingin saya capai? Apakah memasukkan perbaikan bug saya ke basis kode lebih untuk kepentingan mereka daripada di tambang?
Steve Bennett

Sudah disebutkan bahwa rilis berikutnya tidak akan menyertakan tambalan lokal Anda - jadi sebaiknya Anda perbaiki perangkat lunaknya. Dari segi perusahaan - ini juga demi kepentingan terbaik perusahaan - suatu hari Anda mungkin pergi dan tidak ada yang ingat untuk selalu menambal ulang aplikasi XYZ dengan perbaikan lokal Anda. Coba ini: mengerjakan ulang tambalan, tetapi jangan kirimkan. Kirim ke pengelola melalui email atau sebaliknya - dan TANYAKAN untuk umpan balik mereka - seperti, "Saya rasa saya mendapatkan semua yang Anda sebutkan - dapatkah Anda membantu saya memastikan ini benar?"
pbr
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.