程序员:停止致电自己的工程师

2021-05-15 04:25:27

我正在与一位最近离开科技产业回归娱乐的朋友进行勤奋。 “我不是程序员,”他开始,解释他以前的工作场所的一些挫折,在纠正自己“工程师,在Tech-bro说话之前。虽然对我来说,工程师是建造桥梁的人,并出于某种原因遵循相当僵硬的流程。“

他的起诉书接触了一个神经。在硅谷技术场景中,既有使用裸术语“工程师”是共同的,以描述技术人员。不知何故,没有销售,营销或设计的每个人都成为工程师。 “我们正在招聘工程师”,“阅读启动网站,这可能意味着从JavaScript程序员到机器人的任何东西。

该术语可能是“软件工程师”的缩短,但它使用Betrays秘密:“工程师”是软件开发中的一个愿望标题。传统工程师受到监管,认证,并受到学徒和持续教育的监管。工程声称公共安全和可靠性的明确责任,即使它并不总是提供。

近年来在软件中看到了突出的失败。目标,家庭仓库,布鲁斯布鲁斯基尔,国歌,哈佛大学,LastPass和Ashley Madison的大规模数据漏洞只划伤了当今计算机系统所带来的网络安全问题的表面。大众汽车柴油排放爆炸是由软件失败引起的,即使它似乎已经被设计成了,因为它是故意的。

但这些问题只是最紧迫和最令人难忘的。今天的计算机系统构成个人和公共危险,即我们从未接受过更多的混凝土结构,如桥梁,摩天大楼,发电厂和导弹防御系统。据报道,Apple的iOS 9更新了“Bricked”某些手机,使其无法使用。谷歌文档等服务以神秘的原因下降,让那些工作取决于他们的工作。 “您的密码包含无效字符,”来自匿名网站的流行推文报价,在扭曲匕首之前,“否”,您的启动包含不可能的工程师。“

与您的办公楼的结构完整性或我们国家的核武器武器库中的安全性相比,这些可能似乎是较小的事项。但是,请考虑您的后期型汽车未能莫名其妙地或您的办公室电梯在其轴内部捕捉到的频率。计算已成为基础架构,但它不像基础架构一样工作。

当涉及摩天大楼和桥梁和电力设备和电梯等时,工程已经持续,部分地通过专业标准进行管理,部分通过围绕工程师的专业知识和职责的规定。但五十年的尝试将软件开发变为合法的工程实践失败。

正如重工业都可以加工的环境责任,消费者行业的外观可以粉红洗手将自己联系起来销售,所以科技产业可以“工程手机” - 历转工程的遗产,以便使他们的产品和服务出现在公共利益中获得信任,能力和服务。

到20世纪60年代,大型国防系统主要由计算机管理。但是,这种系统的创造是一场灾难 - 几乎所有一切都被迟到了,超过预算和不必要的复杂性。十年后,北约科学委员会赞助了两次会议,致力于建立一种对软件创造的工程方法。 1968年会议报告显示概念仍然是渴望的:

这句话“软件工程”被刻意被选为挑衅性,暗示软件制造需要基于理论基础和实际学科的类型,这是在既定的工程分支中的传统。

商业应用程序意味着为普通人提供服务,从库存控制到航空公司预订,需要可靠。编程仅涉及实施。

在随后的几十年中,软件 - 工程趋势发生了。 20世纪60年代的结构化编程范例,意味着使软件开发更具可预测和更少的风险,让位于“80年代和”90年代的面向对象的范例“,意味着使编程更好地镜像它促进的业务流程。

同时,软件工程的总体挑战变得更加熟悉,更加根深蒂固。在1975年的干预后十年的神话人月:关于软件工程的论文,弗雷德布鲁克斯感叹了很少的变化。作为回应,他提出了增量的发展或原型设计。今天的软件开发是迭代的,充分原因:软件对制造和建设没有真正类似,在初步实施后变化困难或不可能。

但是,软件绝不是制造和建设。北约科学委员会会议近50年,其中一些参与者的警告仍然持有。 “在竞争急于提供最新技术,”“68报告呼吸”,“我们努力在未知宽度和深度的海湾跨越跳跃。”同样的情绪今天仍然持有。

所以发生了什么事?个人计算机革命,一个。在20世纪60年代和70年代,计算机昂贵且稀缺。他们被限制在政府,企业和工业环境中研究。但随着20世纪70年代后期的微型计算机的崛起,任何人都可以拥有,使用和计划一个。

软件开发的民主化点燃了消费者和企业 - 软件革命。但它也改变了软件工程的赌注。开发Microsoft Excel或美国航空公司的后台系统几乎没有迷人或快节奏。像电子表格或预留系统这样的巨型产品仍然像桥梁或建筑物一样:它必须工作,特别是因为补丁和修订是昂贵的并且需要物理干预。这种情况需要一种工程方法,同时尝试一个人的手,用于上传到本地BBS(或现代App Store)。

软件开发的非正式性伴随着Web的崛起,从90年代中期开始并在今天继续进行。随着软件服务移动到网站,智能手机和云,发生了两件事。

首先,在围绕周围的第一次得到释放的压力,因为可以集中应用更新和更改,如主机时代。随着时间的推移,快速修复的易于发展成为快速发展的借口,而Brooks风格的原型突变为我们今天体验的常量软件更新。 Facebook明智地退休了其一次性内部发展哲学,“快速打破事物”,但没有依赖于民事或结构工程的企业将首先采用这种座右铭。

其次,即使它变得更加占主导地位,软件也变得更加孤立。早期的计算系统与商业,行业,政府和社会的其他方面进行了替代。汽车客户管理系统必须与经销商,供应商,托运人,银行和贷方,监管机构,遗产系统和客户集成。但今天的软件大多是单独的。 Instagram,去年价值为350亿美元的照片共享服务,只需上传和下载其服务器和其应用之间的图像。

要确定,今天的云连接工具仍然依赖基础架构,特别是处理数百万用户访问数十亿个文件的物理服务器和网络。但这些活动很大程度上已经外包给基础设施巨头。

同样地,已经抽象了与消息传递,财务和存储的集成,使个人软件开发人员可以将它们视为黑匣子。有时允许软件更好地运行更好,更可靠,但它还允许开发人员避免与其共同工作空间之外的凌乱世界接口。

因此,软件开发已经成为隐密集的。这就是“工程”应该意味着的相反:与世界的合作,而不是超越它的独立领域。

工程 - 民事,机械,航空航天,化工,电气,环境的传统学科,是技术人员。工程师协调桥梁和建筑物的勃起;他们设计车辆和重型机械;他们发明并实现了驱动该设备的能量系统;它们是将所有这些系统连接在一起的方法。

它没有意外的软件工程项目的最真实的工程化延伸超越电脑。自主车型提供最明显的当代示例。当谷歌设计自动驾驶汽车时,它可以让自己的计算系统,如映射和导航。但它还将这些人集成到一个大于浏览器和智能手机和数据中心的世界。自治车辆与人类驱动的汽车,行人和骑自行车的人分享道路。这些道路是管理,维持和监管的。自动驾驶汽车还与联邦机动车标准和规定接口,以及由金属和塑料和橡胶而不是位的机器的所有其他材料需求和脱衣泥。工程解决复杂的大型系统。

这就是为什么它如此烦恼的原因,当优步坚持认为它只是一个技术平台,因此不受运输服务监管的监督。爱或讨厌它,优步不仅仅是一个应用程序开发人员 - 它是由软件激活的汽车服务网络,从而受到公共利益和监督。无论超级所说,该公司仍然在其网站上的“工程,设计和产品”类别中宣布职业。工程角色由盯着两台监视器上的源代码盯着的有胡子的人说明。

其他工程学科须经认证和许可。如果您曾雇用了用​​于建筑或维修项目的民用,结构或液压工程师,则该个人可能必须被认证为专业的工程师(PE)。许可流程因国家而异,但专业的工程师通常需要从其纪律的认可计划中持有4年学位,通过一次或多次考试,并在许可工程师的监督下拥有4年或更长时间的专业经验。并非所有工作工程师都是或需要成为专业的工程师,而是开设工程咨询练习或声称,在正式的背景下是一个“工程师”,通常需要许可证。它在该州的兴趣是确保有人声称成为工程师(或验船师或美容师或按摩治疗师的建筑师)不仅可以弥补他或她的资格。

专业的工程认证通常仅在可能在掌上无法充分的行为者掌握的田野中提供。例如,加利福尼亚州为农业,化工,民用,控制系统,电气,消防,工业,机械,冶金,核,石油工程和交通工程师提供了专业牌照。

2013年,全国审查员的工程师和测量师(NCEES)委员会所有50个用于许可考试的国家,开始为软件工程师提供测试。考试是与IEEE合作生产的,他们维护了一个软件工程知识体(SWebok)。

但是,硅谷工人不太可能追求这样的许可。对于一个,软件工程师不太可能像结构工程师一样开设私人办公室。即使所有工程师都应该在许可工程师下工作以在大公司使用名称,许多人在管理层下做了许多。

信息技术行业根本不重视认证,因为工程确实如此,甚至可以像曾经一样多。像彼得·泰尔这样的硅谷Bigwig多年来一直藐视正式的学位,甚至像谷歌这样的大公司已经表明他们没有重视大学学位,高于谷歌决定的任何工作能力的能力。

但根据定义,“工程”传统上是必须完成工程和技术(ABET)的认可委员会 - 批准的4年学位。 ABET对计算机科学的认可要求含糊不清,但他们确实期望“在建造不同复杂性的软件系统中施加设计和开发原则的能力”。“

无论如何,认可的计算机 - 科学计划可能正在远离软件工程。敏捷软件开发已成为主要的,专注于快速迭代而不是长期规划和复杂的文件。一种流行的敏捷方法是Scrum,它专注于短暂的“冲刺”朝向一系列变化的目标。

像Scrum这样的轻质方法与计算机技术的快速发展市场更兼容。应用程序或Web服务不是桥梁或建筑物。软件是临时的,临时主义被认为是一个特征,而不是一个错误。但与此同时,软件开发的股份正逐渐成为桥梁和建筑物的赌注。电脑不仅运行我们的汽车和飞机和医疗设备,还不仅是我们的银行系统,医疗保健组织,保险承保实践,电话和通信网络 - 甚至是我们的社会和娱乐活动。即使成功,Scrum等方法也不允许那种基础设施稳定。可以进行一些新的调整,始终可以添加一些新功能。

同时,初创文化无论如何都在改变工程教育。企业家精神被尊重。加速器和孵化器比比皆是。并非所有计算机科学课程的学生都认为他们会成为幸福的亿万富翁......但并非所有人都不这么认为。鼓励是“工程师”,以考虑每个项目,作为潜在的业​​务准备规模和销售,而不是作为社会福利担忧令人担忧的学科的长期培训的过程。工程一直是一大笔付出良好的职业,但计算是将它转化为一种投机性金融,而不是一个呼叫。

美国劳动局和统计局(BLS)呼吁在Google和Uber和Facebook和ILK“计算机程序员”或“软件开发人员”中工作的“工程师”。前写字代码,后者设计系统。没有人必须遵循BLS的定义,你可以理解为什么更多的宏伟冠军将吸引硅谷破坏者。 “工程师”召唤坚硬的帽子顶级设计师 - 建筑师的形象,明天仔细制作。但是通过计算很少实现这种愿望。工程的尊重,这一功能建造了超过数十年的密切控制,教育和学徒和学徒的认证,被重新解释为作为业务的快速和宽松的承诺。

工程手术需要从名词转移到“工程师”的口头感觉。工程师是设计,构建和维护系统的专业人士。但是工程师巧妙地意味着巧妙,甚至甚至鬼都摸不摸。工程师是陪审团钻机,一段时间以更少工作的方式获得更多工作。足够足以使它能够立即明显的目的,但不担心或甚至可能意识到其长寿。在这个意义上的工程体现了Macgyver Scrappiness,一种与今天的创新中断价值兼容的障碍。但是,没有合理的人希望Macgyver构建他们的桥梁或建筑物。或软件!

也许像数据泄露和消亡一样的软件灾难将提高公众的喧嚣,使得软件开发标准将被揭示,并及时改革。但鉴于难以更新,创造或强制对技术产业的更新监管监督,技术工人的职称可能似乎是一个小问题。

就像硅谷一样偏转其业务利益作为“改变世界”的过程,所以它也重新制定了工程作为建立暂时的东西的过程。毕竟,专业人士,如平面设计师和对冲基金经理也建立了东西,但我们通常不会称他们为工程师(品牌工程?猜测工程?)。他们确实可能或可能不是基于基础设施的工作,可能或可能不会以公共利益进行。那些后一种事项是商业或工艺的单独工程。

所有这些都将我们带回了我的朋友对他的“工程师”同事的负面影响的桥梁。在加拿大,许多土木工程师戴铁戒指象征着他们的职业的道德承诺。戒指在一个叫做工程师的仪式仪式的仪式中提供了仪式,其中由Rudyard Kipling的誓言进行了叙述。它读到,部分“我的时间我不会拒绝;我的想法我不会怨恨;我的护理我不会否认我可以召唤我的手的任何作品的荣誉,使用,稳定和完善。“ (工程师的美国订单提供了类似但不那么诗意的誓言和戒指。)

持续的传奇持有的是,从魁北克桥梁回收的钢材锻造,1907年突破灾难性地崩溃,杀死了数十名工人。虽然虚假,但神话仍然寓言地占据了寓言。即使它没有体现它,铁环的钢铁代表魁北克桥,也是如此。工程师对公众负担负担,以及他们的特定专业知识,作为桥梁或建筑物的设计师和建筑物 - 或软件 - 从该责任中发出的软件。只有在回答此呼叫后,工程师会构建任何内容,无论是桥梁还是建筑物或软件。