面對不道德的要求，軟件工程師如何是好？
過去一年，我們看著人工智能、機械人技術崛起，紛紛討論科學家和軟件工程師是否自掘墳墓，創造工具毀滅人類。人工智能會為世界帶來甚麼影響，目前仍是未知之數，可是工程師的道德難題，遠在人工智能普及之前已經出現。
多年前，比爾·蘇魯爾（Bill Sourour）仍然是一位從事網站開發的年輕人，有一次，他承接了一個製藥公司的網站項目，後來他發現這個網站是向年輕婦女宣傳某種會使抑鬱症惡化的藥物。有人因為服用此藥而自殺，連蘇魯爾的妹妹也有服用這種藥，幸好被他及早發現並嚴加警告，才能避過危險。時至今日，蘇魯爾仍然對此事感到內疚，機緣巧合下他讀到羅拔·馬丁（Robert Martin）一篇名為「編程的未來」的演講文章，於是在網絡論壇發起了一場「引以為恥的程式碼」的討論，想不到惹來極大的迴響。
馬丁的文章提出業界應該定義何謂專業的工程師，並且及早思考一套自我約束的道德標準。工程師在文明發展有很大的貢獻，只是社會很多人尚未察覺。科技改變了我們的生活習慣，人們也同時把生命交托給科技背後的工程師，過去有很多人因為交通工具的軟件故障而意外死亡，馬丁形容這些情況令工程師有一種「沒打算當殺手，卻殺了很多人」的感覺。
這個說法聽起來很誇張，但我們從前的確很少討論工程師的道德責任。大眾美國公司（Volkswagen America）被揭發於2009年至2015年生產的汽車安裝了軟件刻意規避美國的排放規例，部分汽車排放量高達法定標準四十倍。大眾美國公司的首席執行官邁克爾·霍恩（Michael Horn）在國會聽證會上指責軟件工程師需要為事件負責，認為是工程師因「不明原因」而自把自為修改軟件標準。檢察當局最後認為事件牽及大眾美國的最高層決定，促使霍恩辭職。可是，工程師在事件中有沒有責任？他們知道自己在執行一個違法的指令嗎？
當你被要求犯法的時候，你有勇氣說「不」嗎？
科技無孔不入地滲透到我們生活的每一個角落，從違法污染空氣、意外殺人到編寫操縱股票報價的軟件，愈來愈多工程師被要求做不道德，甚至是非法的事情。有一個工程師曾替公司編寫代碼，專門收集那些拒絕訂閱電子報的用家資料，幫助銷售人員接觸這些用家（此舉應該違反了美國的聯邦法律）。這位工程師曾經向上司反映問題，但被要求沉默；另一位工程師為無線電設備編寫軟件，為了使設備運行更快，公司要求他使用「應急頻道」。使用這些頻道雖然可以令軟件運作更流暢，但會阻礙緊急通信，而且是非法行為。這位工程師斷然拒絕，但他深知最後會有其他工程師願意執行這個不道德的命令。
類似的故事在無限加班的工程師生活裡時有發生，無論是替客戶更改公司數據企圖逃稅、把賭博遊戲偽裝成戰略遊戲銷售給小孩子，這些故事的共通點都是如果開發商拒絕請求，公司或客戶就會找別人去做，而重賞之下必有勇夫，最後不道德或非法的事情仍然會發生。
馬丁認為有些老闆、領袖以為自己在統治世界，寫下規則並交由工程師去執行，但其實真正統治世界的是工程師自己，因為他們才是最後把命令輸入電腦執行的人。如果工程師看輕自己的角色，若然真的因而發生了大型災難，立法者就會插手干預，為工程師帶來更嚴厲的約束。要解決這個問題，他提出工程師要學習倫理課程，並強制計算機科學學生修讀。
然而，現時很多軟件工程師都是自學成才，或透過所謂的「編碼訓練營」（Coding bootcamps）學習，這些人很可能不願意或者接觸不到倫理課程，而且相關行業近年求才若渴，市場更在意是找到足夠的編碼人才。因此，與其要求坊間的自學課程多一點談及工程師的道德責任，更務實的做法是成立組織，像其他行業一樣管理和規範專業人才，目前計算機機械協會和電機電子工程師學會（IEEE）已經開始編寫工程師倫理文件和開辦培訓課程，長路漫漫，但這個問題必定要好好解決，否則科技便會成為罪惡溫床，為禍人間。