重點摘要#

  • 軟體架構決策具有倫理後果——成功的軟體影響數千甚至數百萬人的生活
  • 每次決定程式的行為方式,其實就是在決定使用者能做什麼和不能做什麼
  • 要從乘數效應的角度思考——小小的不便乘以百萬使用者就是巨大的影響
  • 架構師應願意承擔較大的負擔來減輕使用者的負擔

詳細內容#

軟體中的倫理維度在討論人權、身份竊取或惡意軟體時是顯而易見的。但它們也出現在較不極端的情況中。如果程式成功,它們會影響成千上萬甚至數百萬人的生活。影響可以是正面的也可以是負面的,即使只是微小的程度。

乘數效應#

每次你決定程式如何運作,你實際上是在決定使用者能做什麼和不能做什麼。程式比法律更不可通融——沒有「上訴法院」來處理必填欄位或強制工作流程。

想想乘數效應:假設你有一個功能要做,簡單的方式需要一天,困難的方式需要一週。簡單方式需要四個新的必填欄位,而困難方式讓程式能處理不完整的資料。你應該怎麼選?

必填欄位的代價#

必填欄位看似無害,但它們是對使用者意志的強加。它們迫使使用者在開始工作前收集更多資訊,導致:

  • 使用者將資料記在便利貼上直到湊齊所有資訊
  • 資料遺失
  • 延遲
  • 普遍的挫折感

招牌的比喻#

好比在建築物上掛招牌,把它掛在離地只有六英尺高的地方,迫使行人彎腰或繞道。你省下了一小時的安裝時間,但每個經過你商店的行人都要多花兩秒。長期下來,那些兩秒累積起來遠超過你節省的一小時。

為了讓自己輕鬆而讓他人的生活變得更糟——即使只是一點點——是不道德的。成功的軟體影響數百萬人,你做的每個決定都在對使用者施加你的意志。永遠要注意你的決策對那些人的影響。

— By Michael Nygard