12 dilema etika yang dirasakan oleh pemaju hari ini

Dunia teknologi selalu berkuasa dan berfikir tentang kesan kuasa ini. Sekiranya ia dapat dibina, akan selalu ada seseorang yang akan membinanya tanpa memikirkan cara yang lebih selamat dan lebih tepat untuk melakukannya, apalagi sama ada teknologi itu harus dibina terlebih dahulu. Perisian ditulis. Siapa yang peduli di mana dan bagaimana ia digunakan? Itu tugas untuk seseorang di pejabat sudut.

Lebih membimbangkan: Walaupun kursus etika telah menjadi jurusan kejuruteraan dunia fizikal, mereka tetap menjadi anomali yang memalukan dalam pedagogi sains komputer. Tetapi apabila perisian mengambil alih sebahagian besar hidup kita, kesan etika keputusan yang dibuat oleh pengaturcara menjadi lebih besar. Sekarang kod kami ada di dalam peti sejuk, termostat, penggera asap, dan banyak lagi, pergerakan yang salah, kekurangan pandangan jauh, atau membuat keputusan yang meragukan benar-benar dapat menghantui umat manusia di mana sahaja ia pergi.

[Apa yang ada dan yang ada dalam aplikasi dev: 15 trend pengaturcaraan yang panas - dan 15 yang akan menjadi sejuk. | Tunjukkan seberapa banyak yang anda ketahui mengenai pembangunan dengan mengikuti ujian IQ Pengaturcaraan kami, pusingan 3 dan kuiz bahasa pengaturcaraan "Hello, world" kami | Bekerja dengan lebih bijak, bukan lebih sukar - muat turun Panduan Survival Pembangun untuk semua petua dan trend yang perlu diketahui oleh pengaturcara. | Ikuti berita pembangun terkini dengan buletin Developer World. ]

Yang berikut adalah beberapa kebiasaan etika yang dihadapi oleh pembangun setiap hari - sama ada mereka tahu atau tidak. Tidak ada jawapan yang mudah, dalam beberapa ukuran kerana sifat karya itu sangat abstrak. Untuk memburukkan lagi keadaan, perniagaan telah begitu erat kaitannya dengan teknologi komputer sehingga sukar untuk mengimbangi keperluan dan motivasi semua pihak yang dilaburkan dalam usaha untuk mencegah ciri kes perniagaan hari ini menjadi mimpi buruk Orwellian esok.

Caranya adalah dengan memikirkan masa lalu zeitgeist semasa dan menjangka setiap penggunaan masa depan dari apa yang anda bina. Cukup sederhana, ya? Anggaplah ini sebagai buku panduan untuk membuat keputusan anda dan lebih merupakan titik permulaan untuk jenis perenungan etika yang harus kita lakukan sebagai bahagian harian pekerjaan kita.

Dilema etika No. 1: Fail log - apa yang hendak disimpan dan cara mengatasinya

Pengaturcara adalah seperti tikus pek. Mereka menyimpan rekod segala-galanya, selalunya kerana satu-satunya cara untuk menyahpepijat sistem. Tetapi fail log juga mengesan semua yang dilakukan pengguna, dan di tangan yang salah, mereka dapat mendedahkan fakta yang ingin dirahsiakan oleh pengguna.

Banyak perniagaan dibina secara aktif melindungi fail log. Beberapa perkhidmatan sandaran jauh bahkan berjanji untuk menyimpan salinan tambahan di lokasi geografi yang berbeza. Tidak setiap perniagaan berhasrat untuk bersungguh-sungguh. Snapchat, misalnya, membina jenamanya dengan melakukan pekerjaan yang sangat buruk dalam membuat sandaran data, tetapi penggunanya tertarik dengan kebebasan sistem pelupa.

Kewujudan fail log hanya menimbulkan beberapa persoalan etika. Adakah mereka dilindungi dengan secukupnya? Siapa yang mempunyai akses? Apabila kita mengatakan bahawa kita memusnahkan fail, adakah fail itu benar-benar musnah?

Inti memastikan maklumat apa yang patut disimpan, memandangkan risiko melakukannya, beretika atau sebaliknya. Di sini, masa depan menyukarkan persamaan. Pada tahun 1960-an, merokok banyak berlaku. Tidak ada yang akan berfikir dua kali untuk memerhatikan kebiasaan merokok orang. Namun, hari ini, pengetahuan mengenai aktiviti merokok seseorang dapat digunakan untuk menaikkan kadar insurans kesihatan atau bahkan menolak perlindungan.

Tawaran perniagaan masa depan; peraturan kerajaan masa depan; keperluan yang tidak dijangka dan terdesak untuk aliran pendapatan baru - mungkin mustahil untuk meramalkan fail log yang nampaknya tidak bersalah akan menjadi masalah pada masa akan datang, tetapi sangat mustahak untuk mempertimbangkan etika bagaimana anda mengendalikan log di sepanjang jalan.

Dilema etika No. 2: Sama ada - dan bagaimana - untuk mengubah pengguna menjadi produk

Ini adalah pepatah yang baik dari era permulaan: Sekiranya anda tidak membayar perkhidmatan, anda bukan pelanggan; anda produk.

Di Internet, perkhidmatan "percuma" banyak. Hakikatnya, persoalan dari mana wang itu akan datang sering ditangguhkan, dan bukannya diletak. Kami hanya membina kehebatan, mengawasi metrik penerapan, dan menganggap orang lain akan mengurus kerja kotor untuk terus menyalakan lampu pelayan. Paling teruk, selalu ada iklan.

Pembangun perlu mengetahui terlebih dahulu mengenai siapa yang akan menyokong pekerjaan mereka dan dari mana wang itu akan datang. Sebarang perubahan harus disampaikan kepada pengguna secara jelas dan tepat pada masanya untuk mengelakkan kejutan dan kejutan. Mengubah orang menjadi produk adalah perubahan etika yang tidak boleh dipandang ringan. Tawaran iklan yang suram, rangkaian iklan yang teduh - kita harus berhati-hati bagaimana kita menangani kepercayaan tersirat dari pengguna awal.

Dilema etika No. 3: Sejauh mana kandungan benar-benar bebas?

Sejumlah perniagaan bergantung pada penyediaan kandungan tanpa membayar mereka yang membuatnya. Ada yang berbalik dan menjual iklan atau bahkan mengenakan bayaran untuk akses. Perniagaan ini seringkali tidak dapat bertahan dan tidak dapat menarik harga bahan mereka dengan menarik jika mereka terpaksa menanggung bahagian pembangunan yang sewajarnya. Mereka mengembangkan rasionalisasi yang terperinci mengenai "berkongsi" atau "penggunaan yang adil" untuk menutup keputusan yang tidak beretika.

Pembangun mesti bertanya kepada diri sendiri bagaimana kod mereka akan menyokong semua orang dalam rantai makanan, dari pencipta hingga pengguna. Adakah orang yang membuat kandungan mahu karya mereka diedarkan dengan cara ini? Adakah mereka senang bekerja untuk pendedahan atau perhatian sahaja? Adakah mereka diberi bahagian yang adil dari hasilnya?

Tidak mempertimbangkan soalan-soalan ini sama sekali dengan menutup mata terhadap pembajakan. Lagipun, tidak semua maklumat hanya "mahu bebas."

Dilema etika No. 4: Berapa banyak perlindungan yang mencukupi

Ada yang mengatakan bahawa semuanya harus dienkripsi dua kali dengan dua algoritma yang berbeza dan dikunci dalam cakera keras yang disimpan dalam peti keselamatan. Sayangnya, overhead melambatkan sistem untuk merangkak dan menjadikan pembangunan 10 kali lebih membebankan. Untuk memburukkan lagi keadaan, jika satu bit dibalik atau salah satu bahagian algoritma salah, data akan hilang kerana penyulitan tidak dapat dibuat asal.

Yang lain tidak mahu mengangkat jari untuk melindungi data. Pasukan seterusnya dapat menambahkan enkripsi khas kemudian jika perlu, kata pemaju. Atau mereka mungkin berpendapat bahawa tidak ada yang sensitif mengenainya. Pasukan yang mengabaikan tanggungjawab ini biasanya dapat menghasilkan banyak kod lain dan mencipta banyak ciri menarik yang sangat diminati orang. Siapa yang peduli jika mereka selamat?

Tidak ada jawapan mudah untuk berapa banyak perlindungan yang harus digunakan. Hanya ada dugaan. Lebih banyak selalu lebih baik - sehingga data hilang atau produk tidak dihantar.

Dilema etika No. 5: Untuk memperbaiki pepijat atau tidak untuk memperbaiki pepijat?

Cukup sukar untuk merundingkan etika ketika mereka melibatkan keputusan aktif, tetapi lebih sukar lagi apabila masalah itu dapat ditolak dan dilabelkan bug yang akhirnya akan diperbaiki. Seberapa sukar kita berusaha untuk menyelesaikan masalah yang entah bagaimana masuk ke dalam menjalankan kod? Adakah kita menjatuhkan semuanya? Bagaimana kita memutuskan sama ada bug cukup serius untuk diperbaiki? 

Isaac Asimov menghadapi masalah ini sejak lama ketika dia menulis undang-undang robotiknya dan memasukkan undang-undang yang melarang robot melakukan apa-apa jika manusia akan dirugikan melalui tindakan tidak robot. Sudah tentu robotnya mempunyai otak positronik yang dapat melihat semua aspek masalah dengan segera dan menyelesaikannya. Soalan untuk pembangun begitu rumit sehingga banyak pepijat diabaikan dan tidak diperbaiki kerana tidak ada yang mahu memikirkannya.

Bolehkah syarikat mengutamakan senarai dengan adil? Adakah sebilangan pelanggan lebih penting daripada yang lain? Bolehkah pengaturcara memainkan kegemaran dengan memilih satu bug daripada yang lain? Perkara ini lebih sukar untuk difikirkan apabila anda menyedari bahawa sukar untuk menjangkakan berapa banyak bahaya yang akan timbul dari bug yang diberikan.

Dilema etika No. 6: Berapa banyak kod - atau kompromi - untuk mengelakkan penyalahgunaan

Kamera Apple Web yang asli dilengkapi dengan alat tambahan mekanikal yang pintar, rana fizikal yang menyekat lensa ketika dimatikan. Pengatup dan suis dihubungkan bersama; tidak ada cara untuk menggunakan kamera tanpa membuka rana sendiri.

Beberapa kamera web yang lebih baru dilengkapi dengan LED yang semestinya menyala ketika kamera diaktifkan. Ia biasanya berfungsi, tetapi sesiapa yang telah memprogram komputer tahu mungkin ada tempat dalam kod di mana kamera dan LED dapat dipisahkan. Sekiranya itu dapat dijumpai, kamera dapat diubah menjadi alat pengintip.

Cabaran bagi jurutera adalah menjangkakan penyalahgunaan dan merancang untuk mencegahnya. Pengatup Apple adalah salah satu contoh jelas dan berkesan bagaimana ia dapat dilakukan dengan elegan. Semasa saya mengerjakan sebuah buku mengenai menipu SAT, saya bertemu dengan seorang penggodam yang menambahkan perisian rangkaian ke kalkulatornya. Setelah beberapa pertimbangan, dia memutuskan untuk hanya menyokong protokol berwayar kerana dia takut anak-anak akan menyelinap menggunakan kalkulator dengan Wi-Fi ke dalam ujian. Dengan hanya menyokong protokol berwayar, dia memastikan bahawa setiap orang yang berada dalam ujian perlu menggunakan wayar ke mesin jiran mereka. Dia benci melangkau protokol tanpa wayar, tetapi dia merasakan risiko penyalahgunaan terlalu tinggi.

Dilema etika No. 7: Sejauh mana mempertahankan pelanggan terhadap permintaan data

Sekiranya anda mengumpulkan data, pertaruhan selamat bahawa organisasi anda suatu hari nanti akan terperangkap antara melayani pelanggan anda dan berkhidmat dengan pemerintah. Permintaan untuk menyampaikan data kepada entiti undang-undang menjadi semakin umum, sehingga semakin banyak organisasi perisian dan perkhidmatan merenungkan sejauh mana mereka akan mengkhianati privasi pelanggan mereka di hadapan undang-undang. Anda boleh meneliti permintaan ini dan bahkan mengupah peguam anda sendiri untuk bertanding sama ada ia benar-benar sah, tetapi kenyataannya adalah bahawa mahkamah akan membahaskan kesahihan lama setelah dana anda habis.

Tidak ada jalan penyelesaian yang mudah. Sebilangan syarikat memilih untuk meninggalkan perniagaan daripada berbohong kepada pelanggan mereka. Yang lain berusaha untuk bersikap lebih terbuka mengenai permintaan, yang sering dilarang oleh pemerintah.

Dilema etika No. 8: Cara menangani sifat internet antarabangsa

Internet berjalan di mana-mana, mengelakkan banyak halangan tradisional di sempadan. Ini boleh menjadi resipi sakit kepala ketika pelanggan A dan B berada di negara yang berbeza. Itu hanya permulaan, kerana pelayan C dan D juga sering berada di negara yang berbeza.

Ini membawa kepada masalah etika yang jelas. Eropah, misalnya, mempunyai undang-undang yang ketat tentang menyimpan maklumat peribadi dan menganggap pelanggaran privasi sebagai kegagalan etika. Negara-negara lain menegaskan syarikat-syarikat menyimpan rekod yang banyak mengenai urusan. Undang-undang siapa yang harus dipatuhi oleh syarikat ketika pelanggan berada di negara yang berbeza? Bilakah data berada di daerah yang berbeza? Bilakah data dipindahkan ke peringkat antarabangsa?

Mengikuti setiap kemungkinan hukum dapat menjadi Herculean, menyebabkan banyak organisasi pasti tergoda untuk menguburkan kepala mereka di pasir.

Dilema etika No. 9: Berapa banyak yang harus diberikan kepada sumber terbuka

Semua orang tahu bahawa sumber terbuka adalah percuma. Anda tidak membayar apa-apa dan itulah yang menjadikannya sangat indah dan kompleks. Tetapi tidak semua orang memikirkan masalah etika yang disertakan dengan menggunakan kod percuma itu. Semua pakej sumber terbuka disertakan dengan lesen dan anda perlu mengikutinya.

Beberapa lesen tidak memerlukan banyak pengorbanan. Lesen seperti Apache License atau MIT License memerlukan pengakuan dan itu sahaja. Tetapi lesen lain, seperti Lesen Awam Umum GNU, meminta anda untuk berkongsi semua peningkatan anda.

Menghuraikan lesen sumber terbuka boleh menimbulkan cabaran etika. Seorang pengurus dari syarikat awam besar memberitahu saya, "Kami tidak menyebarkan MySQL, jadi kami tidak berhutang apa-apa kepada siapa pun." Dia memperhatikan klausa, yang ditulis beberapa dekad yang lalu, yang mengikat tanggungjawab lesen dengan tindakan menyebarkan perisian. Syarikat itu menggunakan MySQL untuk aplikasi Webnya, jadi dia merasa dapat mengambilnya tanpa memberikan kembali.

Tidak ada cara mudah untuk mengukur kewajiban etika, dan banyak pengaturcara telah membuang banyak penekanan berhujah mengenai maksudnya. Namun, keseluruhan usaha akan berhenti jika orang berhenti memberi. Berita baiknya adalah bahawa sering kali menjadi kepentingan semua orang untuk menyumbang kerana semua orang mahu perisian tersebut tetap serasi dengan penggunaannya.

Dilema etika No. 10: Berapa banyak pemantauan yang benar-benar diperlukan

Mungkin atasan anda ingin memastikan pelanggan tidak membebaskan syarikat. Mungkin anda ingin memastikan anda dibayar untuk kerja anda. Mungkin ada orang menakutkan dari pemerintah yang mengatakan anda mesti memasang pintu belakang untuk menangkap orang jahat. Dalam setiap kes, argumen dipenuhi dengan jaminan bahawa pintu belakang hanya akan digunakan, seperti kekuatan Superman, untuk menyokong kebenaran dan keadilan. Ia tidak akan digunakan untuk menentang musuh politik atau yang kurang bernasib baik. Itu tidak akan dijual ke rezim yang penuh dengan pemerintahan yang penuh kejiwaan.

Tetapi bagaimana jika orang jahat menemui pintu tersembunyi dan memikirkan cara menggunakannya sendiri? Bagaimana jika pintu belakang anda digunakan untuk menyokong kebenaran dan ketidakadilan? Kod anda tidak dapat membuat keputusan etika dengan sendirinya. Itu tugas anda.

Dilema etika No. 11: Betapa kalis peluru seharusnya betul

Pasti, pengiraan minimum, struktur data sederhana, dan pendekatan brute-force berfungsi dengan baik dalam demo ketika masalahnya kecil. Pengguna mencuba kod dan berkata, "Astaga ini berfungsi dengan cepat." Beberapa bulan kemudian, apabila cukup data dimuat ke dalam sistem, kelemahan algoritma murah muncul dan kodnya melambat.