Programmering

12 etiske dilemmaer, der gnaver hos udviklere i dag

Den teknologiske verden har altid været lang på magten og kort på at tænke på konsekvenserne af denne magt. Hvis det kan bygges, vil der altid være nogen, der vil bygge det uden at overveje en mere sikker og sundere måde at gøre det på, endsige om teknologien overhovedet skal bygges. Softwaren bliver skrevet. Hvem er ligeglad med, hvor og hvordan det bruges? Det er en opgave for nogen på et hjørnekontor.

Mere bekymrende: Selvom etiske kurser er blevet en grundlæggende del af fysiske ingeniøruddannelser, forbliver de en modvillig anomali i datalogisk pædagogik. Efterhånden som software overtager mere af vores liv, bliver de etiske konsekvenser af beslutninger truffet af programmører kun større. Nu hvor vores kode findes i køleskabe, termostater, røgalarmer og mere, kan de forkerte træk, manglende fremsyn eller direkte tvivlsom beslutningstagning hjemsøge menneskeheden overalt.

[Hvad er der, og hvad der findes i app-dev: 15 hotte programmeringstendenser - og 15 bliver koldt. | Vis hvor meget du virkelig ved om udvikling ved at følge vores programmerings-IQ-test, runde 3 og vores "Hello, world" -sprogrammeringsquiz. | Arbejd smartere, ikke hårdere - download Developers 'Survival Guide fra for alle de tip og trends, som programmører har brug for at vide. | Hold dig opdateret med de seneste udviklernyheder med 's Developer World-nyhedsbrev. ]

Det følgende er et par af de etiske vanskeligheder, der står over for udviklere hver dag - uanset om de ved det eller ej. Der er ingen nemme svar, i et vist omfang, fordi selve arbejdets natur er så abstrakt. For at gøre tingene værre er forretningen blevet så uløseligt forbundet med computerteknologi, at det er vanskeligt at afveje alle investerede parters behov og motiver for at forsøge at forhindre nutidens business-case-funktion i at blive morgendagens orwellske mareridt.

Tricket er at tænke forbi den nuværende tidsgeist og forudse enhver fremtidig udnyttelse af det, du bygger. Ret simpelt, ikke? Overvej dette mindre af en vejledning til at træffe dine beslutninger og mere af et udgangspunkt for den form for etisk overvejelse, vi skal gøre som en daglig del af vores job.

Etisk dilemma nr. 1: Logfiler - hvad man skal gemme, og hvordan man håndterer dem

Programmører er som pakke rotter. De registrerer alt, ofte fordi det er den eneste måde at fejle et system på. Men logfiler sporer også alt, hvad brugerne gør, og i de forkerte hænder kan de afsløre fakta, som brugerne ønsker holdes hemmelige.

Mange virksomheder bygger på aktivt at beskytte logfiler. Nogle eksterne backup-tjenester lover endda at opbevare yderligere kopier på forskellige geografiske placeringer. Ikke alle virksomheder stræber efter en sådan omhu. Snapchat byggede for eksempel sit brand på at gøre et meget dårligt job med at sikkerhedskopiere data, men dets brugere tiltrækkes af det glemsomme systems frihed.

Den blotte eksistens af logfiler rejser flere etiske spørgsmål. Er de tilstrækkeligt beskyttet? Hvem har adgang? Når vi siger, at vi ødelægger filerne, er de virkelig ødelagt?

Kernen er at fastslå, hvilke oplysninger der er værd at opbevare i betragtning af risikoen ved at gøre det, etisk eller på anden måde. Her komplicerer fremtiden ligningen. I 1960'erne blev rygning bredt omfavnet. Ingen ville have tænkt to gange over at holde styr på folks rygevaner. I dag kan viden om nogens rygeaktivitet imidlertid bruges til at hæve sygesikringsraterne eller endda nægte dækning.

Fremtidige forretningsaftaler; fremtidige regeringsregler; et uforudset, desperat behov for nye indtægtsstrømme - det kan være umuligt at forudsige, hvad tilsyneladende uskyldig logfil vil blive problematisk i fremtiden, men det er vigtigt at overveje etikken i, hvordan du håndterer logfiler undervejs.

Etisk dilemma nr. 2: Om - og hvordan - at omdanne brugere til produkter

Det er et slidt ordsprog fra opstarts æraen: Hvis du ikke betaler for en tjeneste, er du ikke kunde; du er produktet.

På Internettet er der masser af "gratis" tjenester. Faktisk bliver spørgsmålet om, hvor pengene kommer fra, ofte afskrækket, idet det er at sætte ud. Vi bygger bare forbløffelsen, holder øje med adoptionsmålingerne og regner med, at en anden tager sig af det beskidte arbejde med at holde serverens lys tændt. I værste fald er der altid annoncer.

Udviklere skal være på forhånd med, hvem der vil støtte deres arbejde, og hvor pengene kommer fra. Eventuelle ændringer skal meddeles brugerne på en klar og rettidig måde for at undgå chok og blowback. At omdanne mennesker til produkter er et etisk skift, der ikke skal tages let. Skyggefulde annoncetilbud, lyssky annoncenetværk - vi skal være forsigtige med, hvordan vi håndterer den implicitte tillid fra tidlige adoptere.

Etisk dilemma nr. 3: Hvor gratis vil indhold virkelig være?

En række virksomheder er afhængige af at levere indhold uden at betale dem, der opretter det. Nogle vender rundt og sælger annoncer eller endda opkræver betaling for adgang. Disse virksomheder kunne ofte ikke overleve og kunne ikke prissætte deres materiale så attraktivt, hvis de skulle bære deres rimelige andel af udviklingsomkostningerne. De udvikler detaljerede rationaliseringer om "deling" eller "fair use" for at dække over etisk rystende beslutning.

Udviklere skal spørge sig selv, hvordan deres kode vil støtte alle i fødekæden, fra skabere til forbrugere. Ønsker de mennesker, der opretter indholdet, at deres arbejde distribueres på denne måde? Er de glade for at arbejde for eksponering eller opmærksomhed alene? Får de en rimelig andel af indtægterne?

At ikke overveje disse spørgsmål betyder at vende det blinde øje til piratkopiering. Når alt kommer til alt, ønsker ikke alle oplysninger bare at være gratis.

Etisk dilemma nr. 4: Hvor meget beskyttelse er nok

Nogle siger, at alt skal dobbeltkrypteres med to forskellige algoritmer og låses på en harddisk, der opbevares i et pengeskab. Ak, overhead bremser systemet til en gennemgang og gør udviklingen 10 gange mere belastende. For at gøre tingene værre, hvis en bit bliver vendt, eller en del af algoritmen er forkert, går alle data tabt, fordi krypteringen ikke kan fortrydes.

Andre ønsker ikke at løfte en finger for at beskytte dataene. Det næste team kan tilføje speciel kryptering senere, hvis det er nødvendigt, siger udviklerne måske. Eller de argumenterer måske for, at der ikke er noget følsomt ved det. Hold, der ignorerer dette ansvar, er normalt i stand til at generere masser af anden kode og skabe bunker af vidunderlige funktioner, som folk ønsker. Hvem er ligeglad med, om de er sikre?

Der er ikke noget simpelt svar på, hvor meget beskyttelse der skal anvendes. Der er kun gæt. Mere er altid bedre - indtil data går tabt, eller produktet ikke sendes.

Etisk dilemma nr. 5: At bug-fix eller ikke bug-fix?

Det er svært nok at forhandle de etiske stimer, når de involverer aktive beslutninger, men det er endnu sværere, når problemet kan skubbes til side og mærkes som en fejl, der til sidst løses. Hvor hårdt skal vi arbejde på at løse de problemer, der på en eller anden måde gled ind i kørende kode? Dråber vi alt? Hvordan beslutter vi, om en fejl er alvorlig nok til at blive rettet?

Isaac Asimov konfronterede dette spørgsmål for længe siden, da han skrev sine love om robotik og indsatte en, der forbyder en robot at gøre noget, hvis et menneske ville blive skadet gennem robottens passivitet. Selvfølgelig havde hans robotter positroniske hjerner, der kunne se alle facetter af et problem med det samme og løse dem. Spørgsmålene til udviklere er så komplicerede, at mange bugs ignoreres og ikke løses, fordi ingen selv ønsker at tænke over dem.

Kan en virksomhed prioritere listen retfærdigt? Er nogle kunder vigtigere end andre? Kan en programmør spille favoritter ved at vælge en fejl frem for en anden? Dette er endnu sværere at overveje, når du indser, at det er svært at forudse, hvor meget skade der kommer fra en given fejl.

Etisk dilemma nr. 6: Hvor meget skal kode - eller kompromis - for at forhindre misbrug

Det originale Apple Web-kamera kom med en smart mekanisk ekstra, en fysisk lukker, der blokerede linsen, da den var slukket. Lukkeren og kontakten var forbundet sammen; der var ingen måde at bruge kameraet uden selv at åbne lukkeren.

Nogle af de nyere webkameraer leveres med en LED, der skal lyses, når kameraet aktiveres. Det fungerer normalt, men enhver, der har programmeret en computer ved, at der kan være et sted i koden, hvor kameraet og LED'en kan frakobles. Hvis det kan findes, kan kameraet omdannes til en spionageenhed.

Udfordringen for ingeniøren forventer misbrug og design for at forhindre det. Apple-lukkeren er et af de åbenlyse og effektive eksempler på, hvordan det kan gøres elegant. Da jeg arbejdede på en bog om snyd på SAT, mødte jeg en hacker, der tilføjede netværkssoftware til sin lommeregner. Efter en del overvejelser besluttede han kun at støtte kabelforbundne protokoller, fordi han var bange for, at børn skulle snige en lommeregner med Wi-Fi til en eksamen. Ved kun at understøtte kabelforbundne protokoller sikrede han, at alle i en test skulle have brug for at køre en ledning til deres nabos maskine. Han hadede at springe over de trådløse protokoller, men han følte risikoen for misbrug var for høj.

Etisk dilemma nr. 7: Hvor langt skal kunderne beskyttes mod dataanmodninger

Hvis du indsamler data, er det et sikkert spil, at din organisation en dag bliver fanget mellem at betjene dine kunder og betjene regeringen. Anmodninger om at levere data til juridiske enheder bliver stadig mere almindelige, hvilket efterlader flere og flere software- og serviceorganisationer til at overveje, i hvilket omfang de vil forråde deres kunders privatliv for loven. Du kan undersøge disse anmodninger og endda ansætte dine egne advokater til at bestride, om de virkelig er lovlige, men virkeligheden er, at domstolene vil diskutere legaliteter længe efter din finansiering er løbet tør.

Der er ingen nemme løsninger. Nogle virksomheder vælger at forlade virksomheden i stedet for at lyve for deres kunder. Andre prøver at være mere åbne over for anmodninger, som regeringen ofte prøver at forbyde.

Etisk dilemma nr. 8: Hvordan man håndterer Internets internationale karakter

Internettet kører overalt og undgår mange af de traditionelle barrierer ved grænserne. Dette kan være en opskrift på juridisk hovedpine, når kunder A og B er i forskellige lande. Det er kun begyndelsen, fordi serverne C og D ofte også er i helt forskellige lande.

Dette fører til åbenlyse etiske problemer. Europa har for eksempel strenge love om opbevaring af personlige oplysninger og betragter krænkelser af privatlivets fred som etiske fejl. Andre lande insisterer på, at virksomheder fører rigelige registreringer af deres forretning. Hvilke love skal en virksomhed følge, når kunder er i forskellige lande? Når data findes i forskellige amter? Hvornår data overføres på tværs af internationale linjer?

At holde trit med enhver juridisk beredskab kan være herculean, hvilket efterlader mange organisationer helt sikkert fristet til at begrave hovedet i sandet.

Etisk dilemma nr. 9: Hvor meget at give tilbage til open source

Alle ved, at open source er gratis. Du betaler ikke noget, og det er det, der gør det så vidunderligt og komplekst. Men ikke alle overvejer de etiske problemer, der følger med at bruge den gratis kode. Alle open source-pakkerne leveres med licenser, og du skal følge dem.

Nogle af licenserne kræver ikke meget offer. Licenser som Apache-licensen eller MIT-licensen kræver anerkendelse, og det handler om det. Men andre licenser, såsom GNU General Public License, beder dig om at dele alle dine forbedringer.

Parsing af open source-licenser kan medføre etiske udfordringer. En leder fra et stort offentligt firma fortalte mig: "Vi distribuerer ikke MySQL, så vi skylder ingen noget." Han var ved at indtaste den klausul, der blev skrevet for årtier siden, og som knyttede licensens forpligtelser til at omfordele software. Virksomheden brugte MySQL til sine webapps, så han følte, at det kunne tage uden at give tilbage.

Der er ingen enkle måder at måle de etiske forpligtelser på, og mange programmører har spildt mange tastetryk på at argumentere for, hvad de betyder. Alligevel vil hele bestræbelserne stoppe, hvis folk holder op med at give. Den gode nyhed er, at det ofte er i alles interesse at bidrage, fordi alle ønsker, at softwaren skal forblive kompatibel med deres brug af den.

Etisk dilemma nr. 10: Hvor meget overvågning der virkelig er berettiget

Måske vil din chef sørge for, at kunderne ikke ripper virksomheden. Måske vil du sikre dig, at du får betalt for dit arbejde. Måske siger en uhyggelig fyr fra regeringen, at du skal installere en bagdør for at fange skurke. I alle tilfælde er argumentet fyldt med forsikringer om, at bagdøren kun vil blive brugt, som Supermans kræfter, til at støtte sandhed og retfærdighed. Det vil ikke blive brugt mod politiske fjender eller de mindre heldige. Det sælges ikke til despotiske regimer.

Men hvad nu hvis skurkene opdager den skjulte dør og finder ud af, hvordan man bruger den selv? Hvad hvis din bagdør bruges til at understøtte usandheder og uretfærdigheder? Din kode kan ikke tage etiske beslutninger alene. Det er dit job.

Etisk dilemma nr. 11: Hvor skudsikker skal kode virkelig være

Sikker på, den minimale beregning, enkle datastruktur og brute-force-tilgang fungerer godt i demo, når problemerne er små. Brugerne afprøver koden og siger, "Gosh det fungerer hurtigt." Flere måneder senere, når der er indlæst nok data i systemet, vises de billige algoritmes svagheder, og koden sænkes til en gennemgang.