Apakah masuk akal untuk TIDAK memberikan dokumentasi teknis dan pengujian unit kepada klien?

8

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?

Bernie
sumber
4
Apa yang menurut kontrak perlu Anda lakukan?
Kontrak saat ini sedang dinegosiasikan, jadi tidak ada yang diputuskan dengan tegas.
Bernie
1
Jika demikian, maka pertimbangkan untuk membiarkan harga mencerminkan apa yang mereka ingin Anda kirim.
1
Saran yang jelas: buat kontrak menjadi sangat jelas sehingga tidak ada keraguan tentang apa yang akan menjadi tugasnya!
Agos
Jika mereka hanya memiliki lisensi penggunaan, maka saya rasa Anda tidak perlu memberikan informasi ini. Mereka tidak boleh memodifikasi kode Anda jika mereka hanya memiliki lisensi penggunaan dan bukan kepemilikan kode atau lisensi untuk memodifikasinya sendiri.
Bill Leeper

Jawaban:

24

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.

JeffO
sumber
Saya tidak berpikir bahwa dia akan memberikan hanya setengah dari dokumentasi, hanya yang penting: Semua dokumentasi pengguna akhir yang dia miliki. Saya akan memanggil meninggalkan arsitektur dan grafik desain dokumentasi "lumpuh"
TheLQ
1
Membangun reputasi untuk melakukan hal-hal yang benar hanyalah taruhan meja. Mengapa tidak membangun reputasi untuk melampaui dan melampaui?
Scott C Wilson
11

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? "

jqa
sumber
1
Bernie menyebutkan bahwa kiriman belum dinegosiasikan. Ketika Anda membayar untuk suatu produk, Anda tidak perlu membayar untuk semua kode sumber, diagram arsitektur, penelitian, IP, dll. Anda membayar untuk menerima kiriman.
Kristofer Hoch
1
membaca editannya, proyek ini bahkan belum disepakati sehingga semuanya akan tergantung pada bagaimana pelanggan bernegosiasi. Umumnya jika SOW dan faktur menyertakan item, pelanggan akan menginginkannya. Pelanggan dapat menggunakan non-pengiriman sebagai alasan untuk menolak pembayaran atau hanya membayar sebagian, tidak peduli apa kata sisa kontrak.
jqa
7

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.

Scott C Wilson
sumber
+1 Saya setuju. Kadang-kadang memberikan sesuatu hari ini, memberi hasil untuk Anda besok. Jelas Anda harus menyimpannya dalam perspektif.
1
Itu benar, tetapi saya bahkan tidak akan menyebut kasus ini benar-benar memberikan sesuatu. Ini harus dianggap sebagai bagian dari seluruh paket yang mereka bayar. BTW, cara super mudah untuk mengetahui apakah ada sesuatu yang tidak etis: bagaimana perasaan Anda jika Anda berada di pihak penerima?
Scott C Wilson
5

Saya akan bertanya yang menurut Anda menggambarkan Anda:

Anda dibayar untuk keahlian Anda dalam merancang dan membuat perangkat lunak, menetapkan apa masalah bisnis itu, dan mengelola proyek secara keseluruhan. Anda membebankan biaya lisensi kepada mereka, mereka tidak memiliki perangkat lunak atau desain, dan Anda memberikan mereka kode sumber hanya untuk membuat mereka merasa lebih baik - mereka benar-benar tidak punya hak untuk menggunakannya.

atau

Anda dibayar untuk waktu Anda merancang dan membuat perangkat lunak untuk mereka. Mereka tahu masalah bisnis dan mereka mengelola proyek. Mereka memiliki desain, perangkat lunak, kode sumber, dan semua produk kerja yang Anda buat selama berjam-jam Anda menagihnya. Mereka memiliki hak penuh untuk menggunakan semua yang mereka inginkan.

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.

Kate Gregory
sumber
Memberi +1 untuk "kami mendapatkan waktu yang berulang-ulang dengan menjadi hebat, bukan dengan menahan informasi." Itu bekerja untuk saya juga, selama bertahun-tahun.
Bob Murphy
3

Saya akan menganggap itu tidak etis, ya.

psr
sumber
3

Sebenarnya ada dua pertanyaan yang perlu dijawab di sini, dan saya akan menjawab keduanya:

  • Apakah saya harus memberikan dokumentasi itu kepada klien?
  • Haruskah saya memberikan dokumentasi itu kepada klien?

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.

Ryan
sumber
1

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.

JoseK
sumber
1

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.

Paul Nathan
sumber
+1: Berdasarkan "faktor bus", saya mengirim dokumen desain yang tidak diminta, dll. Pada klien saya, dan secara aktif mendorong mereka untuk mereplikasi bangunan saya sesekali. "Mengambil jalan besar" telah bekerja dengan sangat baik, saya memalingkan pekerjaan baru sekarang. Juga pengalaman saya bahwa mencoba memeras gonad metaforis seseorang biasanya tidak menghasilkan hubungan saling percaya yang mengarah pada bisnis yang berulang.
Bob Murphy