那一次,我失去了作為一個(gè)程序員的道德底線
本文講述了一段并不違法,但是違背了作者自己內(nèi)心道德準(zhǔn)則的開發(fā)經(jīng)歷。作為開發(fā)人員,有時(shí)需要做出一定的權(quán)衡,正如作者本人所說,我們通常是防范潛在危險(xiǎn)和不道德行為的最后防線。
讓我至今仍引以為恥的編程經(jīng)歷
如果你以編程為生,那么在職業(yè)生涯中可能會遇到某些人,要求你寫些騙人的、不道德的代碼。
在 2000 年的時(shí)候,我身上就發(fā)生過這種事。這件事我永遠(yuǎn)都忘不了。
我在 6 歲的時(shí)候就開始了自己的第一行代碼。但我并不是個(gè)神童,當(dāng)時(shí)我爸爸幫了我很多忙。但自從那時(shí)起我就迷上了編程。我 15 歲時(shí),在我爸爸的咨詢公司做兼職,在周末和暑假給業(yè)務(wù)應(yīng)用寫些網(wǎng)站和小組件。我得到的報(bào)酬少得可憐。但就像我爸爸現(xiàn)在仍掛在嘴邊的,我得到了免費(fèi)的住所和非常寶貴的工作經(jīng)驗(yàn)。之后我通過一些自由職業(yè)的編程工作,比如給當(dāng)?shù)氐男」緦憥讉€(gè)早期的電子商務(wù)網(wǎng)站,來設(shè)法儲備自己的技術(shù)知識。
21歲時(shí),我在加拿大多倫多的一家互動營銷公司開始全職工作。這家公司由一位醫(yī)學(xué)博士創(chuàng)辦,許多客戶都是大型的醫(yī)藥公司。加拿大對醫(yī)藥公司怎樣向消費(fèi)者宣傳處方藥有很多嚴(yán)格的限制。
因此,這些公司建的網(wǎng)站會先對旗下藥物針對的癥狀給出總說明,然后若訪問者能夠證明自己有處方,那么就可以進(jìn)入患者門戶網(wǎng)站查看藥物的具體信息。
分配給我的一個(gè)項(xiàng)目中有一款針對女性的藥物。網(wǎng)站的圖表和整體風(fēng)格表明客戶是想要特別針對年輕女孩的。這個(gè)網(wǎng)站的一個(gè)特點(diǎn)是有個(gè)小測試題(quiz),問女孩們一系列的問題,然后根據(jù)她們的答案推薦一款藥物。注意,這個(gè)網(wǎng)站是個(gè)總說明性的網(wǎng)站,不是某一特定藥物的廣告。
當(dāng)我接到需求時(shí),客戶給出了測試題以及每個(gè)問題的幾個(gè)答案選項(xiàng)。但是需求中并沒有說明在測試完成后怎樣處理答案。那么決定測試推薦什么療法的規(guī)則是什么呢?
我把這個(gè)問題和客戶經(jīng)理說了,她給客戶發(fā)郵件詢問后給了我相應(yīng)的需求。拿著這份需求我開始編寫小測試的代碼。在網(wǎng)站提交給客戶前,我的項(xiàng)目經(jīng)理決定先試試網(wǎng)站。她試了試測試題,然后走到我的桌子前:
她說:“測試題有問題吧。”
我問:“怎么了?”
“好像無論我答什么,測試題都會把客戶的藥推薦為最佳的治療方式。除非我說我對它過敏或已經(jīng)在服用這款藥物了。”
“沒錯(cuò),需求就是這么要求的。最后都會推薦客戶的藥。”
“好吧。”
之后她離開了。
我得說,當(dāng)我第一次看到這些需求時(shí)我也覺得很迷惑。在編寫基本上就是故意欺騙女孩的代碼時(shí),我也覺得不太好。但實(shí)際上我那時(shí)并沒想太多。只是有項(xiàng)工作要完成,而我做完了。
我們做的事情并不違法。作為我們團(tuán)隊(duì)最年輕的程序員,就年紀(jì)來講,我掙得挺多的。最后,我明白了這個(gè)網(wǎng)站的目的就是推廣某款藥物。所以,我把這種手段看成是“營銷”。
客戶對網(wǎng)站很滿意,甚至他們代表請我和整個(gè)團(tuán)隊(duì)去吃了頓昂貴的牛排晚餐。吃飯那天,在我離開辦公室前,一個(gè)同事給我發(fā)了條網(wǎng)上新聞報(bào)道的鏈接,是關(guān)于一個(gè)女孩服用了這個(gè)網(wǎng)站推廣的藥物的。她自殺了。
原來那款藥物的主要副作用之一是重度抑郁癥和自殺傾向。給我發(fā)郵件的那個(gè)同事沒有出席當(dāng)天的飯局。
我還是去了,我感到艱難、尷尬。我自始至終沒有提新聞的事,只是靜靜地吃著我的牛排,強(qiáng)顏歡笑。
第二天,我給妹妹打了電話,她當(dāng)時(shí)19歲。進(jìn)行項(xiàng)目時(shí)我們發(fā)現(xiàn),她的藥方中就有那個(gè)網(wǎng)站推廣的那款藥物。第一次談起時(shí),我們以為這純屬巧合?,F(xiàn)在我們談話的氛圍截然不同。我建議她盡快的停用那款藥。謝天謝地,她聽進(jìn)去了。
我有無數(shù)方法在之后的自殺和重度抑郁癥事件中給自己脫罪。直到今天還有之前的患者仍在起訴。要辯解我在此事中根本沒有參與很容易。但是我從不認(rèn)為編寫了那段代碼是正確的。
那頓晚餐后沒多久,我辭職了。作為程序員,我們通常是對抗?jié)撛谖kU(xiǎn)和不道德業(yè)務(wù)最后防線的一員。
軟件會開車將一家人送去足球場,我們正向著這樣的時(shí)代邁進(jìn)。幫助醫(yī)生確診的 AI 程序已經(jīng)面世了。不難想象它們不久也會推薦處方藥。軟件越滲透我們生活的方方面面,程序員表明立場、保證代碼中的倫理標(biāo)準(zhǔn)就越重要。
那天起,我寫代碼前總會反復(fù)思考這樣寫會產(chǎn)生什么樣的影響。我希望你也這樣。如果你和我一樣相信,程序員不只是語法和算法打交道,那就把本文擴(kuò)散出去,讓更多的人看到。