12 etičkih dilema koje danas grizu programere

Svijet tehnike oduvijek je bio moćan i nije razmišljao o posljedicama te moći. Ako se može graditi, uvijek će se naći netko tko će je graditi bez razmišljanja o sigurnijem, sigurnijem načinu na to, a kamoli treba li uopće uopće graditi tehnologiju. Softver se zapisuje. Koga zanima gdje i kako se koristi? To je zadatak za nekoga u nekom uredu u kutu.

Još je zabrinjavajuće: iako su tečajevi etike postali osnovna diploma inženjerskih znanosti iz fizičkog svijeta, oni i dalje predstavljaju neugodnu anomaliju u pedagogiji informatike. Ipak, kako softver preuzima veći dio našeg života, etičke posljedice odluka koje donose programeri postaju samo veće. Sad kad se naš kod nalazi u hladnjacima, termostatima, alarmima za dim i još mnogo toga, pogrešni potezi, nedostatak predviđanja ili otvoreno sumnjivo odlučivanje mogu proganjati čovječanstvo gdje god stigne.

[Što je u, a što u aplikaciji za razvoj: 15 vrućih trendova programiranja - i 15 hladnih. | Pokažite koliko zaista znate o razvoju sudjelujući u našem Programiranju IQ testa, 3. krug i u našem kvizu o programskim jezicima „Zdravo, svijete“. | Radite pametnije, a ne više - preuzmite Vodič za preživljavanje programera sa svih savjeta i trendova koje programeri trebaju znati. | Pratite najnovije vijesti za programere uz bilten Svijet programera. ]

Slijedi nekoliko etičkih nedoumica s kojima se svakodnevno susreću programeri - znali oni to ili ne. Jednostavnih odgovora nema, u određenoj mjeri, jer je sama priroda posla tako apstraktna. Da stvar bude gora, poslovanje je postalo toliko neraskidivo povezano s računalnom tehnologijom da je teško uravnotežiti potrebe i motivaciju svih uloženih strana u pokušaju da se spriječi da današnja značajka poslovnog slučaja postane sutrašnja orvelovska noćna mora.

Trik je u tome da razmislite o trenutnom zeitgeistu i predvidite svako buduće korištenje onoga što gradite. Prilično jednostavno, ha? Smatrajte ovo manje vodičem za donošenje svojih odluka, a više polazištem za vrstu etičkog promišljanja koje bismo trebali raditi kao svakodnevni dio svojih poslova.

Etička dilema br. 1: Dnevnici - što spremiti i kako s njima postupati

Programeri su poput čopora štakora. Oni vode evidenciju o svemu, često jer je to jedini način za ispravljanje pogrešaka u sustavu. Ali datoteke dnevnika također prate sve što korisnici rade i u pogrešnim rukama mogu otkriti činjenice koje korisnici žele držati u tajnosti.

Mnoge tvrtke temelje se na aktivnoj zaštiti datoteka dnevnika. Neke usluge daljinskog sigurnosnog kopiranja čak obećavaju da će dodatne kopije čuvati na različitim geografskim lokacijama. Ne teži svakom poslu takvoj marljivosti. Snapchat je, na primjer, svoju marku izgradio na vrlo lošem poslu izrade sigurnosnih kopija podataka, ali njegove korisnike privlači sloboda zaboravnog sustava.

Samo postojanje datoteka dnevnika postavlja nekoliko etičkih pitanja. Jesu li adekvatno zaštićeni? Tko ima pristup? Kad kažemo da uništavamo datoteke, jesu li doista uništene?

Bitno je utvrditi koje informacije vrijedi čuvati s obzirom na rizike ako to učinite, etički ili na neki drugi način. Ovdje budućnost komplicira jednadžbu. Šezdesetih je pušenje bilo široko prihvaćeno. Nitko ne bi dvaput razmišljao o praćenju pušačkih navika ljudi. Međutim, danas se znanje o nečijoj pušačkoj aktivnosti može koristiti za povećanje stopa zdravstvenog osiguranja ili čak uskraćivanje pokrivenosti.

Budući poslovni poslovi; budući vladini propisi; nepredviđena, očajnička potreba za novim izvorima prihoda - možda je nemoguće predvidjeti koja će naizgled nevina datoteka dnevnika postati problematična u budućnosti, ali bitno je razmotriti etiku kako s putovanjima rukujete putem.

Etička dvojba br. 2: Da li - i kako - pretvoriti korisnike u proizvode

To je izlizana izreka ere pokretanja: ako ne plaćate uslugu, niste kupac; ti si proizvod.

Na Internetu ima "besplatnih" usluga. U stvari, pitanje odakle će novac doći često se odgađa, jer se odlaže. Samo gradimo nevjerojatnost, pripazimo na mjerne podatke o usvajanju i pretpostavljamo da će se netko drugi pobrinuti za prljavi posao održavanja svjetla poslužitelja. Najgori slučaj, uvijek postoje oglasi.

Programeri moraju unaprijed znati tko će podržati njihov rad i odakle će novac doći. O svim promjenama treba obavijestiti korisnike na jasan i pravodoban način kako bi se izbjegli šok i povratne informacije. Pretvaranje ljudi u proizvode etički je pomak koji se ne smije shvatiti olako. Sjenovite ponude oglasa, mutne oglasne mreže - moramo biti oprezni kako se nosimo s implicitnim povjerenjem ranih usvojitelja.

Etička dilema br. 3: Koliko sadržaj stvarno želi biti slobodan?

Brojne tvrtke ovise o posluživanju sadržaja bez plaćanja onima koji ga stvaraju. Neki se okreću i prodaju oglase ili čak naplaćuju pristup. Te tvrtke često nisu mogle preživjeti i nisu mogle tako atraktivno odrediti cijenu svog materijala ako su morale snositi svoj pošten dio troškova razvoja. Razvijaju detaljnu racionalizaciju o "dijeljenju" ili "poštenoj upotrebi" kako bi prikrili etički klimavu odluku.

Programeri se moraju zapitati kako će njihov kôd podržati sve u prehrambenom lancu, od kreatora do potrošača. Žele li ljudi koji stvaraju sadržaj da se njihov rad distribuira na ovaj način? Jesu li sretni što rade samo za izlaganje ili pažnju? Daje li im pošten dio prihoda?

Ne razmatranje ovih pitanja znači zatvaranje očiju pred piratstvom. Uostalom, sve informacije ne samo „žele biti slobodne“.

Etička dilema br. 4: Koliko je zaštita dovoljna

Neki kažu da bi sve trebalo dvostruko šifrirati s dva različita algoritma i zaključati ih na tvrdi disk koji se čuva u sefu. Jao, režijski troškovi usporavaju sustav na puzanje i čine razvoj 10 puta težim. Da stvar bude gora, ako se jedan bit preokrene ili je jedan dio algoritma pogrešan, svi se podaci gube jer se šifriranje ne može poništiti.

Drugi ne žele maknuti prstom kako bi zaštitili podatke. Sljedeći tim može dodati posebnu enkripciju kasnije ako je potrebno, mogli bi reći programeri. Ili bi mogli tvrditi da u tome nema ništa osjetljivo. Timovi koji ignoriraju ove odgovornosti obično su sposobni generirati mnoštvo drugog koda i stvoriti gomilu prekrasnih značajki za kojima ljudi žude. Koga briga jesu li sigurni?

Ne postoji jednostavan odgovor na to koliko zaštite treba primijeniti. Postoje samo nagađanja. Više je uvijek bolje - sve dok se podaci ne izgube ili se proizvod ne pošalje.

Etička dilema br. 5: Ispraviti ili ne ispravljati pogreške?

Dovoljno je teško pregovarati o etičkim plićacima kada uključuju aktivne odluke, ali još je teže kada se problem može odgurnuti u stranu i označiti greškom koja će na kraju biti ispravljena. Koliko bismo se trebali potruditi da riješimo probleme koji su nekako upali u pokrenut kôd? Odbacujemo li sve? Kako da odlučimo je li greška dovoljno ozbiljna da se ispravi? 

Isaac Asimov suočio se s tim problemom davno kada je napisao svoje zakone robotike i ubacio zakon koji zabranjuje robotu da ne radi ništa ako bi čovjeku bilo nanesena šteta nečinjenjem robota. Naravno, njegovi su roboti imali pozitronski mozak koji je mogao odmah vidjeti sve aspekte problema i riješiti ih. Pitanja za programere toliko su složena da se mnoge pogreške ignoriraju i otklanjaju jer nitko o njima ne želi ni pomisliti.

Može li tvrtka pošteno odrediti prioritet na popisu? Jesu li neki kupci važniji od drugih? Može li programer reproducirati favorite odabirom jedne pogreške u odnosu na drugu? To je još teže zamisliti kad shvatite da je teško predvidjeti kolika će šteta nastati od bilo koje dane greške.

Etička dilema br. 6: Koliko kodirati - ili kompromitirati - kako bi se spriječila zlouporaba

Izvorna Apple Web kamera dolazila je s pametnim mehaničkim dodatkom, fizičkim zatvaračem koji je blokirao leću kad je bila isključena. Zatvarač i prekidač bili su povezani zajedno; nije bilo načina da se fotoaparat upotrijebi, a da sami ne otvorite zatvarač.

Neke novije web kamere dolaze sa LED diodom koja bi trebala biti osvijetljena kad se kamera aktivira. Obično radi, ali svatko tko je programirao računalo zna da u kodu može postojati mjesto na kojem se kamera i LED mogu odvojiti. Ako se to može pronaći, kamera se može pretvoriti u špijunski uređaj.

Izazov za inženjera je predviđanje zlouporabe i projektiranje kako bi se to spriječilo. Apple zatvarač jedan je od očitih i učinkovitih primjera kako se to može učiniti elegantno. Kad sam radio na knjizi o varanju na SAT-u, upoznao sam jednog hakera koji je dodavao mrežni softver u svoj kalkulator. Nakon malo razmišljanja, odlučio je podržati samo žičane protokole jer se bojao da će djeca na pregled uvući kalkulator s Wi-Fi mrežom. Podržavajući samo žičane protokole, osigurao je da će svatko na testu morati provući žicu do stroja svog susjeda. Mrzio je preskakati bežične protokole, ali smatrao je da je rizik od zlostavljanja previsok.

Etička dilema br. 7: Koliko daleko braniti kupce od zahtjeva za podacima

Ako prikupljate podatke, sigurno je da će vaša organizacija jednog dana biti zatečena između pružanja usluga svojim kupcima i služenja vlade. Zahtjevi za dostavu podataka pravnim osobama postaju sve češći, što ostavlja sve više organizacija za pružanje softvera i usluga da razmišljaju u kojoj će mjeri izdati privatnost svojih kupaca pred zakonom. Možete pažljivo proučiti te zahtjeve, pa čak i unajmiti vlastite odvjetnike kako bi osporili jesu li doista zakoniti, ali stvarnost je takva da će sudovi raspravljati o zakonitostima dugo nakon što isteknu vaša sredstva.

Nema lakih rješenja. Neke tvrtke odlučuju napustiti posao umjesto da lažu svojim kupcima. Drugi se trude biti otvoreniji prema zahtjevima, što vlada često pokušava zabraniti.

Etička dilema br. 8: Kako se nositi s međunarodnom prirodom Interneta

Internet radi svugdje, izbjegavajući mnoge tradicionalne barijere na granicama. Ovo može biti recept za pravne glavobolje kada su kupci A i B u različitim zemljama. To je tek početak, jer su poslužitelji C i D često i u potpuno različitim zemljama.

To dovodi do očitih etičkih problema. Na primjer, Europa ima stroge zakone o zadržavanju osobnih podataka i kršenje privatnosti smatra etičkim propustima. Druge zemlje inzistiraju na tome da tvrtke vode obilnu evidenciju o poslovanju. Čije zakone tvrtka treba slijediti kada su kupci u različitim zemljama? Kada su podaci u različitim županijama? Kada se podaci prenose preko međunarodnih linija?

Pratiti sve zakonske nepredviđene slučajeve može biti herkulsko, što će mnoge organizacije zasigurno dovesti u iskušenje da zakopaju glavu u pijesak.

Etička dilema br. 9: Koliko vratiti otvorenom izvoru

Svi znaju da je otvoreni izvor besplatan. Ne plaćate ništa i upravo to ga čini tako divnim i složenim. Ali ne razmišljaju svi o etičkim pitanjima koja dolaze s korištenjem tog besplatnog koda. Svi paketi otvorenog koda dolaze s licencama i morate ih slijediti.

Neke licence ne zahtijevaju puno odricanja. Licence poput Apache licence ili MIT licence zahtijevaju potvrdu i to je sve. Ali druge licence, poput GNU General Public License, traže od vas da podijelite sva svoja poboljšanja.

Raščlanjivanje licenci otvorenih izvora može predstavljati etičke izazove. Jedan menadžer iz velike javne tvrtke rekao mi je: "Ne distribuiramo MySQL, pa nikome ništa ne dugujemo." Utvrdio je na klauzuli, napisanoj prije desetljeća, koja je obveze licence vezala za čin preraspodjele softvera. Tvrtka je MySQL koristila za svoje web aplikacije, pa je smatrao da to može potrajati bez povratka.

Ne postoje jednostavni načini za mjerenje etičkih obveza, a mnogi su programeri potrošili mnoge pritiske na tipke raspravljajući se o tome što znače. Ipak, cijeli će se pothvat zaustaviti ako ljudi prestanu davati. Dobra vijest je da je svima često u najboljem interesu dati svoj doprinos jer svi žele da softver ostane kompatibilan s njegovom upotrebom.

Etička dilema br. 10: Koliko je nadzor uistinu zajamčen

Možda vaš šef želi biti siguran da kupci ne otimaju tvrtku. Možda želite biti sigurni da ćete za svoj rad biti plaćeni. Možda neki sablasni momak iz vlade kaže da morate instalirati zaostatak da biste uhvatili negativce. U svakom su slučaju argumenti ispunjeni uvjeravanjima da će se stražnja vrata koristiti, poput Supermanovih moći, samo za potporu istini i pravdi. Neće se koristiti protiv političkih neprijatelja ili manje sretnih. Neće se prodati despotskim režimima.

Ali što ako negativci otkriju skrivena vrata i sami shvate kako ih koristiti? Što ako se vaša pozadinska vrata koriste za podržavanje neistina i nepravdi? Vaš kodeks ne može samostalno donositi etičke odluke. To je tvoj posao.

Etička dilema br. 11: Koliko bi stvarno trebao biti neprobojan kod

Sigurno je da minimalni izračun, jednostavna struktura podataka i grubi pristup dobro funkcioniraju u demonstracijama kad su problemi mali. Korisnici isprobavaju kôd i kažu: "Bože, ovo brzo uspijeva." Nekoliko mjeseci kasnije, kada se u sustav učita dovoljno podataka, pojavljuju se slabosti jeftinog algoritma i kôd usporava do puzanja.