Jika spec cacat, apakah masih harus diikuti?

28

Saya telah ditugaskan untuk mengembangkan integrasi ke salah satu aplikasi majikan saya ke sistem eksternal yang dikembangkan oleh klien kami. Spesifikasi klien kami untuk integrasi yang memiliki beberapa kelemahan mencolok terkait keamanan. Kelemahan akan memungkinkan pengguna yang tidak sah mengakses sistem untuk melihat data yang dibatasi.

Saya telah menunjukkan kelemahan dan risiko keamanan potensial mereka jika diterapkan sebagaimana dirancang, dan memberikan alternatif tanpa cacat, tetapi (singkatnya) telah diberitahu "lakukan dengan cara yang kami tentukan" oleh klien.

Apakah seorang programmer memiliki tanggung jawab etis BUKAN untuk mengimplementasikan kode dengan risiko keamanan yang diketahui? Pada titik apa persyaratan klien melebihi tanggung jawab etis yang kita miliki sebagai pengembang perangkat lunak untuk membuat aplikasi yang aman?

Nick Orlando
sumber
9
Anda telah menunjukkan risikonya, tetapi apakah Anda juga menunjukkan kemungkinan dan (mungkin lebih penting) dampak risiko ini terhadap beberapa aspek operasi mereka? Apakah Anda yakin bahwa klien sepenuhnya memahami risiko dan memiliki dokumentasi untuk efek itu?
Thomas Owens
7
Saya telah melemparkan ini di kepala saya belakangan ini di beberapa pekerjaan saya. Jika kita membuat perbandingan yang sama relatif terhadap pembangun jembatan, di mana dia diminta untuk membangun jembatan yang tidak memiliki dukungan yang menyebalkan dan mengganggu di bawahnya, atau hanya dapat menanggung berat dua mobil, maka demi reputasinya, dia kemungkinan besar akan menolak. Saya pikir pasti ada titik ketika seorang insinyur / orang berkewajiban untuk menolak. Memang, sebagian besar keluhan desain tidak mendekati risiko cedera / kematian manusia.
Katana314
2
@ Katana314 Jelas tidak ada risiko cedera fisik atau kematian dengan skenario saya saat ini. Yang itu pasti lebih mudah dijawab ... Tapi Anda memukul paku di kepala, saya kira. Pencarian tambahan membawa saya ke Kode Etik ACM , yang tampaknya memperkuat tanggung jawab kami untuk mengidentifikasi dan membuat masalah yang dapat diketahui.
Nick Orlando
3
@TheSoftwareDev Cukup adil, tapi saya hanya akan menambahkan bahwa kadang-kadang risiko manusia bisa lebih dalam dari yang kita sadari. Risiko keamanan yang memungkinkan peretas untuk dengan mudah mengambil info orang dan mencuri identitas mereka, membuat mereka kehilangan tempat tinggal untuk kemudian bunuh diri; Kelemahan jaringan sosial yang memungkinkan penguntit untuk mencegat komunikasi pribadi wanita tentang pertemuan di restoran, kemudian secara fisik mengikuti dan menjebaknya; itu agak tidak wajar untuk berpikir ITU secara kreatif, tapi kadang-kadang kita mungkin lupa seberapa jauh proyek kita bisa digunakan.
Katana314
1
@gnat Bukan duplikat. Pertanyaan terkait adalah tentang pendekatan umum terhadap etika perangkat lunak, yang satu ini menanyakan berapa banyak perlawanan yang harus dilakukan OP sebelum mengatakan 'bukan masalah saya lagi'.
rath

Jawaban:

40

Saya pikir Anda telah melakukan bagian Anda dengan menunjukkan masalahnya dan menyarankan alternatif. Jika mereka bersikeras bahwa Anda melakukan hal-hal yang membuat mereka terekspos pada tingkat risiko tertentu, Anda harus memastikan Anda memiliki jejak kertas (dan cadangannya) yang menunjukkan bahwa mereka secara eksplisit meminta ini, mengetahui risiko yang terlibat. Jika kamu benar - benaryang bersangkutan, Anda dapat memberi tahu mereka bahwa Anda akan dengan senang hati melakukan apa yang mereka inginkan, jika mereka pertama kali menandatangani semacam dokumen hukum / penafian di mana mereka mengakui risiko yang terkait dengan apa yang mereka minta Anda lakukan (dan tentu saja mencari pengacara untuk menyusun dokumen semacam itu). Saya pribadi tidak tahu ada preseden untuk dokumen semacam itu untuk situasi ini, tetapi saya yakin Anda dapat menemukan pengacara untuk membantu Anda dalam hal ini. Jika perusahaan Anda memiliki departemen hukum, itu mungkin sesuatu yang harus mereka terlibat jika ada potensi tanggung jawab perusahaan. Dan tentu saja, jika ini serius, Anda harus mendiskusikan ini dengan manajer Anda juga.

Saya pikir satu-satunya situasi di mana mungkin OK untuk hanya menolak untuk melakukan pekerjaan adalah jika ini adalah perangkat lunak untuk sistem di mana kesalahan yang Anda khawatirkan dapat menyebabkan sistem dikompromikan sedemikian rupa sehingga bisa mengakibatkan dalam kemungkinan besar nyawa / cedera pribadi serius atau semacam kehilangan harta benda yang dahsyat.

FrustratedWithFormsDesigner
sumber
4
Atau pertanggungjawaban pribadi ... yaitu, jika itu akan membuat Anda dipecat atau lebih buruk
Dan Pichelman
5
Tidak ada dokumen yang bisa ditandatangani oleh klien atau majikan yang akan memberikan kekebalan OP dari gugatan perdata. Dia mungkin, tergantung pada sifat pekerjaannya, jatuh di bawah definisi dan perlindungan hubungan keagenan dengan perusahaannya, memberikan perisai kewajiban, tetapi tanpa adanya perisai seperti itu, "Saya hanya mengikuti perintah" bukan pertahanan peduli seberapa baik didokumentasikan. Penggugat / penuntutan hanya dapat mengatakan "Anda bisa saja berhenti; bahkan jika orang lain melakukannya, itu akan ada di kepala mereka sekarang, bukan milik Anda".
KeithS
2
Yang terbaik yang bisa dilakukan perusahaan adalah menjamin pertanggungan tanggung jawab keuangan OP termasuk biaya pengadilan dan hukum. Perusahaan tidak bisa masuk penjara untuknya jika ternyata dia melanggar hukum.
KeithS
1
@BazzPsychoNut: Kedengarannya OP telah mencoba menunjukkan risiko dan menjelaskannya, dan diabaikan. Jika mereka tidak dapat / tidak mau hanya menolak untuk melakukan pekerjaan, saya pikir mereka harus menutupi pantat mereka sebanyak mungkin dan mereka juga harus berkonsultasi dengan pengacara (yang saya curigai akan memberi mereka saran yang lebih spesifik untuk situasi tersebut, dan juga memberi tahu mereka mereka untuk menutupi pantat mereka).
FrustratedWithFormsDesigner
1
+1 untuk jejak kertas, dan juga berhati-hati jika Anda terlibat dalam penyebaran. Meskipun tidak mungkin untuk melakukannya, ada banyak undang-undang (Undang-Undang Perlindungan Data di Inggris misalnya) yang berarti penanganan data pribadi yang lalai dapat menjadi pelanggaran serius.
Matt