亲爱的 KV,
我在加利福尼亚州的一所学校向本科生教授计算机科学,而我一位在英语系的朋友,真是出乎意料,前几天对我提出了一个有趣的评论。他想知道我的学生是否读过弗兰肯斯坦,以及我是否认为这会让他们成为更好的工程师。我问他为什么认为我应该布置这本书,他说他觉得一本书可以改变人们思考他们与世界,特别是与技术关系的方式。他不是在 condescending;他是认真的。鉴于似乎有许多像弗兰肯斯坦一样的项目是用信息技术构建的,也许向计算机科学本科生教授这些课程,让他们意识到自己负有社会责任,这并不是一个坏主意。你同意吗?
计算机科学教授
亲爱的计算机科学教授,
虽然我总体上同意讲述和复述故事是教导人们的好方法,但我不得不说,使用玛丽·雪莱的小说来达到这个目的的想法非常过时,并且不太可能在计算机科学课程中有效。我本人曾经被迫修读大学里的“计算机与社会”课程,虽然我们没有读弗兰肯斯坦,但一位教授向我们灌输了计算机和技术对社会有多么糟糕的思想,而这位教授很容易被操纵。我所要做的就是同意她的每一句话,并为她的课写抨击技术的文章,就能得到 A。这是有效的时间利用吗?
当然不是,那只是一场表演。如果你真的想接触到受众,你必须用你理解的故事来吸引他们,并且这些故事能够与他们的经验相关联。当我想象我想向本科生讲述的故事类型时,我想到了瓦萨号,一艘船和一个故事,我认为工程师们应该更了解它。
我第一次了解到瓦萨号是在 1990 年一次会议上的一件 T 恤衫上。一家朋友创办的公司使用这艘船的横截面来讽刺 ISO OSI 在网络协议方面的工作。“又一个失败的七层模型”,标题上写着。联系是 ISO 有七层,瓦萨号有七层甲板,但是当我发现瓦萨号悲剧性失败的原因时,我变得着迷了,因为它是一个经典的工程失败故事。
瓦萨号是在 1626 年至 1628 年间为瑞典国王古斯塔夫·阿道夫建造的,当时他正试图统治波罗的海。在 17 世纪,统治者被期望不仅仅有能力发号施令,所以阿道夫不仅组织战争,他还帮助设计了他的海军舰队的船只。当时,瑞典军舰每侧都有一层炮甲板,可以向敌舰发射连珠炮,有时甚至击中并损坏其他船只。当瓦萨号被委任建造时,这单排火炮被认为是当时最先进的技术。
在造船期间的某个时候,阿道夫发现波兰人的船只装有两层火炮,因此他修改了瓦萨号的设计,使其拥有第二层炮甲板。这将使其成为当时最强大的海军舰艇,能够发出毁灭性的舷侧炮击。他聘请建造船只的人试图解释说,这艘船的压舱物太少,无法支撑两层炮甲板,因此建造出的船只可能不安全。国王坚持——就像许多项目经理一样——他的命令应该被执行。在软件项目中,你可以辞职,但如果国王是你的老板,你可能会失去的不仅仅是你的工作——你可能会,比如说,掉脑袋——所以项目继续进行了下去。
1628 年,这艘船终于准备好进行 QA(质量保证)测试。十七世纪对船只的 QA 测试与今天可能发生的情况有点不同。三十名水手被选中,并被要求在船的甲板上来回跑动,从左舷到右舷。如果船没有倾覆和沉没,那么这艘船就通过了测试。你不会想在 1628 年加入 QA 团队。在甲板上只跑了三趟之后,瓦萨号开始剧烈倾斜,测试被取消了。测试可能被取消了,但项目没有。毕竟,这是国王的船,它会航行。而且它确实航行了。
1628 年 8 月 10 日,在微风中,瓦萨号起航了。她离码头不到一英里时,一阵强风将她吹向一侧。她开始进水,并在成千上万的旁观者面前沉没。大约 30 到 50 名水手在被困在船上或无法游到岸边时丧生。
为了应对这场灾难,国王写了一封信,坚称无能是造成这场灾难的原因。他当然是正确的,但并非他可能设想的那样。进行了一次调查,并询问了幸存的船员、船长和造船商在事件发生时船员和船只的状况。调查结束时,大多数人没有明说的看法是,设计是失败的,设计师没有听取建造者关于设计缺陷的意见。当然,国王不能被追究责任,所以最终的结论是“天意”。顺便说一句,这场灾难也给瑞典带来了巨大的经济损失。
现在,这个故事可能没有弗兰肯斯坦写得那么好,但它对工程失败提出了更直接的警告。我认为这个故事最有趣或最可悲的部分是它的现代性。自 1628 年以来,一切都没有改变。人们仍然无法沟通,导致灾难性的失败。自我阻碍了前进的道路,神秘的超自然力量被归咎于人类的失败。这一切都以一种非常悲伤的方式变得显而易见。
在 20 世纪 60 年代,瓦萨号从它沉没的海湾底部被打捞起来,最终被放置在斯德哥尔摩的一家博物馆中。2000 年,我作为 SIGCOMM 会议的一部分参观了瓦萨号。整个故事都写在挂在墙上的牌匾上。这是一个所有工程师都应该至少参观一次的博物馆。
KV
KODE VICIOUS,在凡人世界中被称为 George V. Neville-Neil,为乐趣和利润从事网络和操作系统代码方面的工作。他还教授与编程相关的各种主题的课程。他的兴趣领域是代码探险、操作系统和重写你的烂代码(好吧,也许不是最后一个)。他获得了马萨诸塞州波士顿东北大学的计算机科学学士学位,并且是 、Usenix 协会和 IEEE 的成员。他是一位狂热的自行车爱好者和旅行家,目前居住在纽约市。
最初发表于 Queue 第 7 卷,第 1 期—
在 数字图书馆 中评论本文
Ellen Chisa - 产品经理的演变
软件从业人员都知道,产品管理是软件开发的关键组成部分。产品经理与用户交谈,以帮助确定要构建什么、定义需求和编写功能规范。他们在整个软件构建过程中与工程师密切合作。他们充当想法的共鸣板,在出现技术挑战时帮助平衡进度 - 并在需要技术修订时向执行团队施压。产品经理从编写第一行代码之前就参与进来,一直到代码发布之后。
Jon P. Daries, Justin Reich, Jim Waldo, Elise M. Young, Jonathan Whittinghill, Daniel Thomas Seaton, Andrew Dean Ho, Isaac Chuang - 社会科学中的隐私、匿名和大数据
开放数据对科学具有巨大的潜力,但是,在人体受试者研究中,隐私和发布高质量的开放数据之间存在着张力。管理学生隐私和学生记录发布的联邦法律表明,匿名化学生数据可以保护学生隐私。在这一标准的指导下,我们对来自 edX 平台上 MITx 和 HarvardX 的 16 个 MOOC(大型开放式在线课程)的数据集进行了去标识化并发布。在本文中,我们表明,这些和其他去标识化程序需要对数据集进行更改,这威胁到基线分析的复制和扩展。为了平衡学生隐私和开放数据的好处,我们建议将重点放在保护隐私上,而不是匿名化数据,而是扩展政策,迫使研究人员维护开放数据集中受试者的隐私。
Michael J. Lutz, J. Fernando Naveda, James R. Vallino - 本科软件工程:满足专业软件开发的需要
1996 年秋季学期,RIT(罗切斯特理工学院)在美国启动了第一个本科软件工程项目。该项目是五年规划、开发和审查的结晶,从一开始就旨在培养毕业生在商业和工业软件开发领域担任专业职位。