當前位置:
首頁 > 科技 > 開發者是保護代碼道德的最後防線?

開發者是保護代碼道德的最後防線?

作者 | ádám Sándor,Anne Currie

譯者 | 薛命燈

編輯 | 小智

我們可以將技術道德定義為發現 IT 系統可能出現的問題(如個人或團體的劣勢或傷害),並採取切實步驟避免這些問題。對於開發人員來說,合乎道德行事的關鍵是要保護人們免受軟體系統給我們帶來的危害。複雜的道德問題,比如避免使用有偏見的機器學習訓練數據或讓用戶免於政治操縱,這些都是普通職業行為的延伸。作為工程師,我們有權力有所保留,但這對於推動變革來說作用不大。

3 月份,Stack Overflow 發布了他們的 2018 年開發者調查報告,並首次提出了有關道德的問題。對於「開發人員是否有義務考慮代碼的道德影響」這個問題,有近 80%的人回答「是」。不過,只有 20%的人認為他們最終在為不道德的代碼負責,40%的人會在被要求的情況下寫不道德的代碼(大多數人會說「這取決於」,我姑且把他們的回答解讀為「是的,但我感覺不好」),只有 50%的人表示在發現不道德的代碼時會舉報。調查報告地址:

https://insights.stackoverflow.com/survey/2018/

如果代碼對世界的影響不大,那麼這也許就不成問題。如果我寫了一個對 100 個人不利的演算法,雖然很糟糕,但影響也是有限的。但是,如果我在擁有數十億用戶的 Facebook 或 Google 上做同樣的事情,結果會很嚴重。擴大規模雖然有好處,但也可能帶來同樣多的壞處。

我們大多數人不為超大規模公司工作,但目標通常也是要增長,這樣的文化很難發生改變。在開始時,投機取巧的做法可能有一定作用(例如優步決定測試沒有牌照的自動駕駛汽車),但之後很難讓滑坡的道德歸位。

我們可以做很多事情,作為開發人員,我們設計、編寫和部署代碼。如果我們願意,就可以成為防止不道德代碼上線的最後一道防線。我們都聽到過這樣一句話:「你建造它,你運行它,你擁有它」。那麼我們是否也應該承擔起道德責任?在法律上,我們可能已經這樣做了。我不希望自己在法庭上、在每日郵報的頭條上或其他任何地方說這樣的話:「我只是遵命行事」,但怎樣才能真正避免這樣的情況?

到底什麼是道德?

我們不必拿有軌電車問題來做說明,技術道德並不是哲學的一個晦澀分支。道德代表了專業、合理的行為。我們可以將技術道德定義為發現 IT 系統可能出現的問題(如個人或團體的劣勢或傷害),並採取切實步驟避免這些問題。

這在實際當中意味著什麼?我們親身遇到的這種道德問題通常都是非常普通的:

資源嚴重不足的項目。一個交付的項目不具備過關的質量,因為它沒有得到足夠的資源。

數據安全性不足。保護客戶數據的措施還不夠好,這可能會因為暴露個人信息而傷害了用戶。

過度的數據收集。應用程序保存超出實際需要的用戶數據,因此承擔了不必要的風險。

備份不足。如果發生故障,用戶可能會因為丟失重要數據或服務而受到損失。

這些道德問題都不是什麼深不可測的新生事物。它們不像是邦德勇闖惡棍盤踞的巢穴,也不是要揭穿邪惡的政府計劃。它們是大多數公司每天都在與之鬥爭的問題,沉悶卻無比重要,開發者甚至因此無法睡上一個安穩覺。我敢肯定,我們之前都遇到過這樣的事情,並感覺非常糟糕。

我們不能說出錯就是不道德的——軟體總會出錯。但如果我們不做出合理的努力來避免問題的出現,或者在發生問題時沒有指出來,或者在遇到問題是沒有去解決問題,那就只是不道德的(或者說是不專業的)。

處理更複雜的道德問題只是普通職業行為的延伸,例如避免使用有偏見的機器學習訓練數據或讓用戶不受政治操縱。從我們都有資格討論的一般性問題(如備份)到需要博士學位來解決的哲學問題,它們之間並沒有天壤之別,它們存在於同一個連續的頻譜上。一方面,對於熟悉的問題,我們有定義好的最佳實踐(比如備份),另一方面,我們面臨新的技術,對於它們的故障模式我們並不熟悉,而且缺乏相應的指南(如機器學習)。

例如,讓我們來看看一個真實案例——在星巴克等美國公司中非常流行的 Kronos 調度軟體。 2014 年,紐約時報披露,通過 Kronos 演算法來提升門店效率對員工的生活產生了非常負面的影響。我確信 Kronos 的開發者不是故意要這麼做,他們只是沒有預見到會發生這些問題,也沒有現成的指南可用。

這裡的道德問題並不是開發者的錯。人們沒有意識到,因為沒有歷史可循,所以就有可能會發生錯誤,需要在沒有國家報紙這類實體干預的情況下發現並糾正這些錯誤。就觀察工具來說,紐約時報通常不是最好的選擇。問題不在於開發人員缺乏同理心,而是他們並不知道軟體在已知和未知問題頻譜中處於什麼樣的位置,並據此採取行動。他們沒有進行足夠的測試和監控,所以這屬於專業性問題,而他們原本不需要心理學碩士學位就能完成這些事情。

我們最終將為機器學習、個性化演算法等技術總結出最佳實踐。只是現在我們還沒有這麼做,暫時還處在混亂的狀態。這與 20 年前剛出現安全性或可訪問性時的情況並沒有本質的區別,但在數量上卻十分不同,因為如果現在搞錯一些東西,就會有很多人受到影響。這意味著我們需要更快地採取行動,並定義和分享好的行為。自我監管的能力必須趕上創新的速度。

作為開發者,關鍵在於保護人們免受軟體已知問題的傷害。無論這種傷害是來自可怕的 AI 還是未經測試的備份操作,我們都需要最佳實踐來指導我們。目前,關於軟體工程師的道德或專業行為準則應該按照自上而下(政府立法或專業團體)還是自下而上(自主發起)的方式來定義存在很多爭論。在我看來,最重要的是我們能夠快速創建、分享和遵循指導方針,並快速解決問題,因此我們需要由軟體工程師自己推動一種開創性的方法。自上而下的方式效率太低了。

當然,說起來容易做起來難。過去,我們都接受不道德的東西。如果我們總是無法獲得足夠的災難恢復預算,那麼我們將如何確保有足夠保資源來監控具有種族偏見的演算法?更何況我們有可能不知道如何做到這些!或者說服我們的僱主為我們提供源源不斷的資金?這似乎是不可能的事情!這些事情已經註定了!

任何事情都比「註定的」要好,我傾向於從最簡單的事情開始。很多公司都可以保證做到最基本的道德,如應用安全補丁,因此要強制推行責任行為不是不可能的。那麼在現實中,開發人員可以做哪些道德的行為?

釋放你的力量

如果一個軟體工程師看到某些不道德的東西或者某些可能不道德且缺乏監管的東西,他可以做些什麼?當你這樣問一個典型的工程師時,可能會得到三個答案:

發出警報,然後繼續工作(警報可能無效,因為管理層已經知道它們的行為存在問題)。

離開項目(或業務)!

成為一名舉報人(最難的選擇,你可能會獲得一些感激,但可能需要在俄羅斯度過餘生)。

所以,開發者認為其中的一種選擇不太可能(成為舉報者),而另外兩項代價也很高,他們也不太可能接受。這些就是 Stack Overflow 問卷調查的結果嗎?難怪他們都是失敗主義者。

當然,上述這些並非唯一的選項。開發人員比我們意識到的要強大得多。具體來說,我們有消費權力和專業力量。我為什麼這麼說?

消費者權力

所有工程師都有權力保留他們的預算(消費者權力)。如果你對此持懷疑態度,請想想那些技術大會上的女性演講者。十年前,幾乎沒有女性在大型科技會議上發言。而現在,該行業中女性的比例佔到大約 15-20%。這並不是因為會議組織者是一群嬉皮士,也不是因為她們可以輕而易舉地贏得話語權。會議委員會之所以接受女性演講者,是因為如果他們不這麼做,就會遭到與會者的投訴。這是一個簡單的例子,開發者購買了大會門票,那麼就有權獲得他們想要的東西。

消費者權力是推動變革最簡單的方式。只要工程師購買或使用高科技產品和服務,他們就可以行使這項權力。例如,開發人員詢問雲供應商的可再生能源政策,以此來改善它們,或者從一個你認為不道德的供應商轉換到另一個你認為相對較好的供應商——只要你告訴他們為什麼要這麼做!

專業力量

開發者擁有的第二種力量就是他們的專業知識。技術人員供不應求,公司熱衷於僱用他們,並且想方設法留住他們。如果工程師期望僱主具備明確的道德技術流程,他們就會如願以償。

什麼是道德技術流程?

我已經說過,我們應該對道德技術流程有所期待,但到目前為止還沒有這樣的流程!我們需要與軟體工程師一起來制定這樣的流程,原因有三:

我們可以知道和避免其他人已經遇到的問題。

通過一個清晰的流程,可以更容易地確認一個功能及其監控級別是否符合道德標準。

一旦達成一致的流程,我們就可以對它們進行自動化。

讓我們從定義一些簡單的檢查清單開始,並嘗試實施它們,看看它們是否有效。檢查清單雖然技術含量低,但在航空業,它們在提高安全性方面卻非常有效。學習現有的最佳實踐是一個很好的策略。

因為必須擴展到我們正在構建的所有新事物上,所以我們需要在前期和回顧過程中思考如何在新領域中應用最佳實踐,並分享我們的想法。考慮使用測試驅動開發,並儘早考慮故障模式,這樣做通常都很有效。我們不喜歡在不經測試的情況下使用開源代碼,不過我們目前允許在沒有作者或其他用戶給出道德指南的情況下使用開源代碼。也許我們不應該這樣?

英文原文

https://www.infoq.com/articles/developers-tech-ethics

InfoQer 怎麼看?

你認同技術無罪的觀點嗎?

你覺得開發人員應該去保護代碼道德嗎?

在你看來,怎麼解決代碼道德與工作收入之間的衝突?

歡迎在評論區留言告訴我們!

今日薦文


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

Kubernetes!我要用這樣的姿勢擁抱你
重磅!谷歌Fuchsia操作系統將支持運行Linux應用程序

TAG:InfoQ |