繁体
首页

第90章 职业道德和责任(2)(1 / 3)

在某些应用中,专注于特定观众或忽略一些特殊的观众可能是有意义的,但这样的选择应该是有意识的(并且是合理的)。这些例子表明,我们很容易就会使所开发的系统在无意中排斥了一些人,因此在设计和测试系统时,把思想跳出一个人自己的群体之外是多么重要。除了妇女和惯用左手的人,其他需要考虑的群体包括非技术用户、不同民族的人、残疾人、老年人(例如,他们可能需要大字体的选项)和儿童。

在这些例子中,这样做在社会意义上的“对”或“错误”,也就是说注意不要强化排斥特定的人群,恰好与生产好的产品并扩大其潜在的市场是一致的。

为真实用户进行设计。在许许多多的案例中,只是因为有人打字输入不正确,就会导致计算机崩溃。在一个案例中,因为技术人员没有按“Enter”键(或按得力度不够狠),就造成了整个寻呼系统的关闭。真实的人会写错别字,会感到困惑,或是刚刚加入他们的工作。系统设计师和程序员有责任提供明确的用户界面和包含适当的输入检查。要让软件来检测所有不正确的输入是不可能的,但是,已有技术可以捕获许多类型的错误,并减少了因为错误造成的损害。

不要假设现有软件是安全的或正确的。如果你使用了其他应用中的软件,一定要验证是否适合当前项目。如果该软件是为一个应用设计的,而在该应用中故障带来的伤害程度可能较小,那么它的质量和测试标准可能不会达到在新的应用程序所必需的程度。该软件可能有混乱的用户界面,在原来的应用中可以忍受(虽然并不是很令人喜欢),但是可能在新的应用中却会造成严重的负面后果。我们在第8章看到,完整的安全评估是很重要的,即使是同一个应用的早期版本的软件,如果出现故障,也可能产生严重的后果。(回想一下Therac-25和阿丽亚娜5号火箭的例子。)

对于软件的能力、安全性和限制要保持公开和诚实。在第8章描述的几个案例中,有较强的论据说明对待客户是不够诚实的。销售人员的诚信并不是一个新问题。强调你最好的品质和不诚实之间的界限并不总是很清楚,但有一点很明确:隐藏已知的、严重的缺陷和对客户说谎,一定是站在了错误的一边。

诚信包括对他人造成的损害或伤害承担责任。如果你在打球时打破了邻居窗户的玻璃,或是砸了谁的车,你有义务赔偿他们的损失。如果一个企业发现其产品造成了伤害,它也不应该隐瞒事实,或试图把责任推给别人。

关于系统限制的诚信对于专家系统来说尤其重要,专家系统也被称为决策系统,它是使用模型和启发式规则,结合专业知识来指导决策的系统(例如,医疗诊断或投资计划)。开发人员必须把系统的局限性和不确定性解释给用户(包括:医生、财务顾问等,并且在适当的时候向公众进行解释)。用户也不得推卸理解它们并正确使用该系统的责任。

对于安全性,需要一个令人信服的理由。在安全攸关的系统中,最棘手的伦理问题是决定多大的风险是可以接受的。我们重复第8.3.1节讲过的一个准则:对于道德的决策者来说,采取的政策应当是在没有令人信服的安全性时,暂停或延迟使用该系统,而不是在没有令人信服的理由会发生灾难时,就继续使用该系统。

注意默认设置。似乎一切都是可以定制的:在手机或无线网络的加密级别;消费者在一个网站买东西之后,是否会被加入到一个发送广告的电子邮件列表中;一个电脑游戏的难度级别;你最喜欢的新闻网站为你展示的新闻报道的类型;垃圾邮件过滤器会过滤掉哪些邮件;你在社交网络上向谁分享了哪些内容。所有默认设置可能似乎并不重要。的确是这样。很多人不知道自己可以控制哪些选项。他们不明白安全问题。他们往往也不花时间来更改默认设置。系统设计者应对默认设置认真加以思考。有时候,保护(例如保护隐私权或免受黑客攻击)在道德上应该优先考虑。有时候,易用性和与用户期望保持一致应该优先。有时候优先级会产生冲突。

培养沟通技巧。一位计算机安全顾问告诉我,很多时候,当他与客户谈论安全风险和可以用来防止这些风险的产品时,他看到了客户的目光呆滞。对于他来说,需要说多少客户才能真的听明白并且吸收这些内容,是一个棘手的伦理和职业困境。