Garansi atau klausa jaminan untuk pelanggaran kode

9

Haruskah saya menjamin atau menambahkan klausul garansi untuk kontrak saya dalam kode acara istirahat atau terjadi anomali di luar tangan klien atau tindakan Tuhan?

Jika demikian, apa yang harus dikatakan oleh bahasa itu?

Dan McGrath
sumber
2
apa konsekuensi dari kegagalan kode? perangkat lunak, bahkan perangkat lunak komersial utama, lebih umum disediakan "sebagaimana adanya" tanpa jaminan - pada kenyataannya, pada hampir semua perangkat lunak shrink-wrap EULA akan menolak tanggung jawab penggunaan perangkat lunak. Jadi, saya sarankan Anda pergi ke rute itu. Kalau tidak, Anda membiarkan diri Anda terbuka untuk dituntut atas semua yang Anda miliki dan akan pernah Anda dapatkan karena perangkat lunak Anda memunculkan pesan kesalahan yang mencegah nenek melihat pesan Facebook keturunannya, dan meninggal karena kesusahan yang disebabkan karena diberi tahu bahwa ada sesuatu yang salah.
TZHX
1
... Anda harus memberikan informasi lebih lanjut tentang situasi spesifik sebelum orang dapat memberikan jawaban yang terinformasi, tetapi biasanya dalam skenario kontraktor, bagian dari kontrak akan melibatkan klien "menandatangani" pada perangkat lunak sebelum membayar jumlah akhir . Anda biasanya diharapkan melakukan sejumlah validasi untuk menunjukkan bahwa mereka dapat percaya diri pada produk.
TZHX
Jika sesuatu gagal karena Undang-Undang Tuhan (force majeure) mengapa Anda bertanggung jawab untuk memperbaikinya berdasarkan ketentuan garansi? Ketentuan hukum itu ada untuk membebaskan orang dari yang bertanggung jawab atas peristiwa yang terjadi yang berada di luar kendali mereka - atau siapa pun.
Adam Crossland

Jawaban:

13

Kecuali jika klien Anda menuntut semacam jaminan atau garansi, jangan menawarkannya. Banyak klien yang akhirnya menggunakannya untuk memaksa Anda melakukan perbudakan kontrak.

Bahkan jika mereka memang menuntutnya, konsultasikan dengan pengacara. Kalau tidak, Anda mengatur diri Anda untuk bencana.

Adam Crossland
sumber
3
Inilah sebabnya mengapa hampir semua kode yang Anda temukan secara bebas di web memiliki kata-kata "DISEDIAKAN SEBAGAIMANA ADANYA DAN TANPA GARANSI".
James Love
@ JamesLove: Itu sebagian karena tidak ada yang akan memberikan jaminan apa pun tanpa dibayar. Lihatlah perjanjian lisensi untuk perangkat lunak komersial. Satu-satunya kasus yang pernah saya dengar tentang vendor perangkat lunak yang memperpanjang dan menghormati jaminan adalah TurboTax.
David Thornley
6

Haruskah saya menjamin atau menambahkan klausul garansi untuk kontrak saya dalam kode acara istirahat atau terjadi anomali di luar tangan klien atau tindakan Tuhan?

Tidak, tidak pernah

Jika diperlukan jangan mengambil pekerjaan itu. Ini adalah situasi yang mustahil. Tidak ada akhir dari daftar hal-hal yang dapat diubah yang akan menyebabkan kode Anda rusak atau tidak berfungsi.

Kecuali jika Anda suka bekerja secara gratis, silakan terus.

Josh K.
sumber
3

Cara standar untuk menanggapi hal ini adalah dengan menambahkan klausa dukungan atau pemeliharaan - "10 jam kerja pertama termasuk gratis, sisanya tersedia dengan kecepatan berikut:".

blueberryfields
sumber
3

Saya mengungguli Adam "jangan lakukan itu", tetapi menawarkan garansi untuk produk perangkat lunak komersial mungkin mendapat banyak perhatian yang baik dari pelanggan. Itu juga akan menunjukkan Anda memiliki cojones besar dibandingkan dengan industri lainnya. :-)

Saya mungkin mempertimbangkan untuk menawarkan jaminan dalam kondisi berikut:

  • Ini produk saya, bukan pekerjaan-untuk-menyewa untuk orang lain.
  • Saya memiliki kendali atas seluruh pengembangan perangkat lunak dan proses rilis, termasuk spesifikasi, pemrograman, pengujian, dan dokumentasi.
  • Dengan hati-hati saya menentukan dalam dokumentasi keadaan di mana perangkat lunak itu dapat dijalankan dimana garansi akan berlaku. Misalnya, persyaratan perangkat keras, tidak berjalan di emulator OS, dll.
  • Saya membatasi masa garansi.
  • Saya sangat yakin dengan kualitas perangkat lunaknya

Dalam hal ini, saya mungkin menawarkan garansi sesuatu seperti, "Untuk jangka waktu satu tahun sejak tanggal pembelian, kami menjamin bahwa jika perangkat lunak tidak berjalan secara substansial seperti yang didokumentasikan dalam manual pengguna, kami akan memperbaikinya dan mengeluarkan gratis memperbarui."

Itu tidak terdengar seperti garansi, tetapi jauh lebih banyak daripada yang dimiliki kebanyakan perangkat lunak komersial, meyakinkan pelanggan bahwa Anda akan memperbaiki bug, dan kata "secara substansial" meninggalkan cukup ruang gerak sehingga Anda tidak akan bangkrut.


Jika itu kontrak pemrograman untuk orang lain, lupakan saja. Saya pernah masuk ke situasi yang mirip dengan itu, porting program Windows ke Mac, dan kehilangan puluhan ribu dolar memperbaiki "bug" yang sebenarnya adalah fitur tersembunyi di versi Windows yang gagal disebutkan oleh klien sebelum kami menandatangani kontrak , meskipun kami telah berulang kali meminta spesifikasi. Pengalaman itu adalah salah satu alasan utama saya berhenti melakukan kontrak harga tetap.

Bob Murphy
sumber
Terima kasih atas komentar dan sarannya! Karena kami belum pernah meminta klien untuk ini sebelumnya, ini sangat membantu kami. Pertama kali untuk semuanya.
Masalah dengan jaminan perangkat lunak adalah Anda mengirim versi yang sama, jadi jika Anda membuat satu kesalahan serius, semua orang mengumpulkan pada garansi. Mereka berbahaya.
David Thornley
Oh, tidak, Anda tidak membayar orang dengan jaminan perangkat lunak! Itu harus seperti garansi pada mobil: Anda hanya menjamin untuk memperbaiki masalah. Kecuali dalam hal perangkat lunak, Anda hanya perlu memperbaiki bug. Saya akan memperbarui jawabannya.
Bob Murphy
2

Adalah umum untuk memberikan jaminan yang mencakup perbaikan bug untuk periode tertentu setelah proyek berakhir (misalnya 3-6 bulan). Ini mengatakan kepada klien bahwa Anda berdiri di belakang kode Anda, dan terus terang Anda harus memiliki tanggung jawab terhadap masalah yang Anda berikan dengan kode Anda.

Apa yang biasanya kami lakukan dalam proyek kami adalah menawarkan SLA (perjanjian tingkat layanan) yang mendefinisikan apa bug itu dan jadwal untuk memperbaikinya sesuai dengan tingkat keparahannya. Misalnya, masalah kritis pada proyek langsung harus diselesaikan (setidaknya dicoba) dalam waktu 1 jam setelah menerima laporan. Masalah visual dan bug minor harus diselesaikan dalam waktu 48 jam.

Sangat penting untuk memiliki definisi yang jelas tentang apa itu bug - karena klien akan sering mencoba untuk bekerja dalam fitur-fitur baru sebagai laporan bug (kadang-kadang secara tidak sengaja). Definisi-definisi itu selalu agak terbuka untuk interpretasi, jadi Anda perlu menugaskan seorang arbiter (biasanya otoritas dalam bahasa pengembangan / platform) yang dapat menengahi perselisihan.

Eran Galperin
sumber
0

Kata-kata dalam kontrak harus menyatakan hal-hal yang serupa dengan yang berikut:

  1. Anda tidak boleh memperpanjang kode ini
  2. Anda tidak boleh merekayasa balik kode ini
  3. Anda mungkin tidak mengintegrasikan kode ini ke dalam kerangka kerja Anda (Mirip dengan # 1, tetapi berbeda dalam arti bahwa itu menjadi seluruh lapisan bisnis mereka)
  4. Anda tidak boleh porting kode ini ke sistem operasi lain (IE windows to unix)

Hanya beberapa yang bisa saya pikirkan.

Woot4Moo
sumber