Sebagai vendor independen yang dikontrak untuk menulis produk untuk sebuah perusahaan, apakah masuk akal untuk mengirimkan hanya kode sumber dan dokumentasi pengguna sambil meninggalkan dokumen desain, diagram arsitektur, tes unit dll (pada dasarnya hal lain yang tidak diperlukan untuk menjalankan produk atau memperpanjangnya)?
Tujuannya adalah membuat produk akhir dapat dikembangkan untuk klien sehingga mereka dapat mengembangkannya secara internal, tetapi tidak gratis. Mereka akan menggali lebih dalam ke sumber untuk memahami beberapa keputusan desain dll, dan mereka akan bertanggung jawab untuk menulis tes komprehensif mereka sendiri untuk menjaga terhadap regresi yang diperkenalkan.
Idenya di sini bukan untuk membuat kode tidak dapat dipahami. Saya hanya ingin menciptakan peluang di masa depan untuk dikontrak untuk menulis ekstensi berdasarkan "pengetahuan orang dalam" dan keahlian yang saya miliki dari menjadi penulis asli.
Apakah ini dianggap tidak etis?
Sunting: Kontrak saat ini sedang dinegosiasikan, sehingga masalah apa yang merupakan hasil akhir belum diputuskan dengan tegas. Selain itu, saya harus menyebutkan bahwa saya akan mempertahankan kepemilikan produk. Saya hanya akan memberikan lisensi penggunaan kepada klien. Apakah detail ini membuat perbedaan dalam apakah ini dianggap sebagai bentuk yang buruk?
sumber
Jawaban:
Secara kontrak mereka akan pintar untuk memasukkan semacam klausa tentang ruang lingkup dokumentasi yang mereka inginkan. Mereka harus memberi kompensasi kepada Anda karena menyajikannya dalam format yang dimengerti dan profesional (ulangi sketsa serbet).
Bukanlah tidak etis untuk hanya melakukan apa yang diminta dan dibayar, tetapi pergi keluar dari jalan Anda untuk menyembunyikan informasi itu salah.
Jika Anda memberi saya aplikasi yang tidak terdokumentasi dan berbelit-belit yang tidak dapat saya kerjakan, saya lebih cenderung berpikir Anda seorang programmer yang buruk daripada semacam genious yang tidak bisa dilakukan oleh perusahaan saya. Bangun reputasi untuk melakukan sesuatu dengan benar.
sumber
Apakah Anda menagih mereka untuk mengembangkan unit test dan dokumen? dan apakah mereka membayar faktur? Jika demikian, maka mereka berhak menerima apa yang mereka bayar kepada Anda.
Kalau tidak minggu depan kita akan melihat pertanyaan di sini di p.se.com berjudul 'Bagaimana kita memaksa kontraktor kita untuk memberi kita semua dokumentasi teknis dan unit test yang kita bayar untuk mereka? "
sumber
Anda hanya menyakiti diri sendiri. Jika staf internal mereka terlihat apa yang telah Anda lakukan dan menemukan kurangnya lengkap dokumentasi, mereka akan berpikir Anda goofball dan akan lebih cenderung untuk mempertahankan Anda di masa depan.
sumber
Saya akan bertanya yang menurut Anda menggambarkan Anda:
atau
Jangan mencoba mencampur dan mencocokkan kedua pengaturan tersebut. Anda mungkin mengenakan biaya lebih banyak untuk yang pertama (karena Anda membawa lebih banyak keterampilan untuk itu, dan mengambil lebih banyak risiko) atau kurang (karena mereka akhirnya memiliki lebih sedikit) atau sama (jika Anda berpikir hal-hal itu seimbang.) Kami biasanya melakukan yang pertama, dan kami mendapatkan kembali waktu dengan menjadi hebat, bukan dengan menyimpan informasi. Jika Anda telah menjalani kehidupan dengan cara kedua dan ingin pindah ke cara pertama, ada banyak hal selain tidak berbagi dokumen desain Anda.
sumber
Saya akan menganggap itu tidak etis, ya.
sumber
Sebenarnya ada dua pertanyaan yang perlu dijawab di sini, dan saya akan menjawab keduanya:
Apakah saya harus memberikan dokumentasi itu kepada klien?
Anda harus memberi mereka apa yang menurut kontrak Anda akan Anda berikan. Menurut pendapat saya, itu berarti bahwa jika kode sumber tidak dapat dipertahankan / dimodifikasi secara wajar tanpa juga menyediakan dokumentasi, maka Anda juga perlu memberikan dokumentasi yang sesuai.
Anda mungkin ingin melihat Pekerjaan yang Dibuat untuk Dipekerjakan Berdasarkan Undang-Undang Hak Cipta 1976 oleh Kantor Hak Cipta AS untuk melihat apakah dokumentasi, pengujian unit, dll. Sebenarnya dimiliki oleh klien Anda. Jika ya, Anda pasti ingin memberikannya kepada mereka.
Haruskah saya memberikan dokumentasi itu kepada klien?
Jika Anda pernah ingin berbisnis dengan mereka lagi, atau jika Anda ingin mereka merekomendasikan Anda kepada orang lain, maka Anda perlu melakukan pekerjaan apa pun yang diperlukan untuk mengubahnya menjadi penggemar mengoceh dari bisnis Anda.
Itu berarti bahwa Anda perlu menyerahkan kepada mereka kode sumber kualitas tertinggi, cukup komentar, dan apa pun yang mereka tertarik untuk memilikinya. Saran saya adalah ketika Anda bertemu dengan mereka untuk menyerahkan barang kiriman, bersiaplah untuk memberikan mereka tes unit, dll. Setelah Anda mempelajari semua hal penting yang besar, maka katakan sesuatu seperti, "Ngomong-ngomong, Saya juga membuat unit test untuk komponen-komponen ini. Apakah Anda menginginkannya juga? "
Berusahalah untuk menghasilkan loyalitas dengan pelanggan Anda, dan Anda akan mendapatkan bisnis mereka lagi di masa depan.
sumber
Saya berasumsi pada titik ini akan ada kontrak atau perjanjian / dokumen tertulis di tempat daftar semua dokumentasi yang harus Anda berikan kepada mereka.
Jika tidak, Anda dapat menjelaskan kepada mereka bahwa penyesuaian produk - di luar yang ada dalam panduan pengguna - akan membutuhkan pengetahuan tambahan tentang cara kerja kode internal. Dan jika Anda dalam posisi negosiasi, Anda dapat meminta mereka untuk menghubungi Anda untuk peningkatan lebih lanjut dan mendapatkan bayaran untuk itu.
Dari apa yang saya mengerti, Anda sudah dibayar untuk menulis kode untuk produk mereka , yaitu mereka memilikinya. Jadi mereka dapat menganggapnya tidak etis jika Anda pergi tanpa mendokumentasikan semuanya.
Saya akan menyarankan Anda menulis kerangka kerangka dokumen dengan arsitektur tingkat tinggi dan petunjuk tentang di mana mencari peningkatan fitur utama. Yang mana file-file kuncinya dan sebagainya. Jika pekerjaan Anda baik, mereka dengan senang hati akan kembali kepada Anda untuk tugas lebih lanjut.
sumber
Saya suka artikel ini: http://unixwiz.net/techtips/be-consultant.html
Apa yang Anda gambarkan tidak akan memberi saya Perasaan Fuzzy Hangat tentang pernah bekerja dengan Anda lagi.
Anda mungkin jenius, tetapi jika Anda jatuh mati dari A Bus , saya perlu mempertahankan apa yang saya beli dari Anda.
Jika Anda tidak memberi saya kemampuan itu, saya tidak akan pernah lagi mempekerjakan Anda atau merekomendasikan untuk mempekerjakan Anda untuk apa pun yang saya tangani.
Sekarang, jika Anda menjual biner , misalnya, "custom shrinkwrap" di mana Anda dapat menjual produk yang sama ke perusahaan lain, maka lebih masuk akal untuk menggunakan model "informasi kurang", karena sekarang Anda menjual produk.
Perbedaannya adalah bahwa dengan sumber, saya membeli kemampuan untuk mengubah kode sumber di jalan. Namun, dengan biner, saya hanya membeli kemampuan untuk menjalankannya.
sumber