写点什么

采访与书评——《软件工程的技术与社会化历史》

  • 2014-04-16
  • 本文字数:3898 字

    阅读完需:约 13 分钟

Capers Jones 是《软件工程的技术与社会化历史》一书的作者,他在本书中为读者介绍了信息技术与软件开发的进化概况。

本书的开始部分首先描述了人类对于更快的计算速度的渴求,接下来的 9 章内容则涵盖了从 1930 至 2010 年间软件工程的发展状况。

本书还专门用了一章的篇幅来讲述近年来在软件开发上遇到的一些主要问题。而全书的最后一章则描述了当前的软件工程发展状况,并对到 2019 年为止的发展进行了一番展望。

InfoQ 有幸与 Capers 进行了一番对话,谈论了软件工程的发展动力和重大事件,以及它们对我们的社会所带来的影响。

InfoQ:促使你撰写这本书的动机是什么?

Capers2006 年时我曾经写过一本书——《纳拉甘西特湾的历史与未来》,当时我已经在罗德岛居住了 6 年,这本书描述了从最后一个冰河时期之前一直到当今社会为止的纳拉甘西特湾的历史。这本书的写作经历非常愉快。由于我本人从 1965 年起就从事于软件行业,我觉得能够写一本关于软件工业历史的书会非常有趣,我也能够从中获得很大的乐趣。在我总共编写的 16 本书中,有 14 本是和软件管理话题相关的技术书籍,还有两本是历史书,即《纳拉甘西特湾》与《软件工程的技术与社会化历史》。我可能还会再写一本关于“失落的技术”的历史书籍,例如印加石(Inca Stone——一种古老的建筑材料与技术)的工艺技术,以及安提基特拉机械(Antikythera Mechanism——古代计算天体位置的青铜机器)等等。

InfoQ:为什么你的书籍会专注于讨论“技术”与“社会”,为什么选择了这两方面?

Capers我的书很大程度上受到了 Paul Starr 在 1982 年的著作《美国医学的社会转型》(The Social Transformation of American Medicine)的影响,这本书获得了 1982 年的普利策奖。读过他的书之后,我才了解到早先医学界的混乱和不专业程度比起软件业有过之而无不及。当时的医学院总共只有两年的课程,而且就读条件宽松,学生不需要提供大学、甚至是高中毕业的证明。学院中的学生们从来不会进入医院实习,当时也没有就医执照或证件一说,而且也没有办法对医疗事故进行鉴定。当时病人的处方中甚至可以包括砒霜或鸦片等有害物质。而在软件工业中,我们也遇到了类似的问题。与其它形式的工程相比,软件开发有着丰富的社会化历史,并且在性别平等这一方面也走在了前面。许多重要的社交组织就是围绕着软件而建立的,例如 ACM、IEEE 软件与计算小组、SHARE、GUIDE、COMMON,还有包括 Facebook 和 Twitter 在内的社交网络,以及其它许多组织。

InfoQ:让我们回顾一下历史,最早的软件程序是什么时候产生的,它看上去是什么样的呢?

Capers回答这个问题有些难度,因为其实串行指令早在几百年前的机械设备,例如提花机(Jacquard loom——一种纺织机器)上就已经得到应用了。而模拟序列则已经应用了几千年时间了。说起来,Ada 语言的创始人 Ada Lovelace 或许算得上是应用现代化程序的鼻祖,是她编写了第一个串行指令,该指令是为了 Charles Babbage 在 1842 年设计的分析引擎(analytical engine)计算机所编写的。Ada 还是诗人 Lord Byron 的女儿。当我初次接触计算机编程时,当时的人们还在使用打孔卡或纸带,而且只能使用机器语言或基本的汇编语言编写程序。

InfoQ:“软件工程”这个词语是何时出现的,为什么说它是“工程”呢?

Capers软件工程这个名称最早是在 1968 年那次著名的 NATO 软件工程大会中出现的,一方面是一个高调的口号,一方面起到给软件行业定性的目的。1958 年,来自贝尔实验室的一名数学家及统计学家 John Wilder Tukey 首次在一篇论文中使用了“软件”这个词,当时使用它是为了与“硬件”相区别。这也是“软件”这个词首次使用在计算机的语境下,并为人所知。

“计算机”(computer)这个词也很有趣,在 20 世纪 40 年代这个词一度很流行,但当时它的作用其实是一种职位描述,用以形容某个需要从事大量计算工作的数学学者。在当时,有许多女性充当了这种人类计算机的角色,因为那个年代里女性的收入相对较低。当 ENIAC 计算机于 1945 年完成的时候,共有六位女性“计算机”受聘进行在该计算机之上的编程工作,而“计算机”这个术语也从有关人类的职位描述转变为进行计算工作的设备的专有名词了。

InfoQ:软件工程教育在这些年来发生了很大的变化,并且这种变化还在持续中。你觉得应当怎样评价它的现状呢?我们可以期待,在(不远的)将来又会变成什么样呢?

Capers当我 1956 进入大学时,校园里没有计算机、没有计算机科学的课程,也没有软件工程的课程。这一切在接下来的十年乃至更长的时间内发生了巨大变化。当时,为了学习编程技术,我不得不参加 IBM 的课程,因为大学里不会传授这些知识。至于未来的教育方式很可能采取虚拟现实校园的方式,学生和教授们对应的虚拟人物可以在那种环境中会面。另外,我认为我们将能够获取到所有已知的出版物,并且能够免费使用所有优秀的工具集。

InfoQ:由于计算机使许多工作能够自动化完成,许多人为此丢掉了饭碗。但 IT行业也产生了大量的新职位。你觉得在这些年来,是由于计算机的出现造成了更多的人下岗,还是因此造就了更多的工作岗位呢?

Capers在手抄工作方面的实际失业人数其实要低于人们的预期,因为许多处理手写文档的职员都转为了数据录入人员。软件行业造就的新工作机会要大于它所剥夺的工作机会,其中还包括一些全新的工作职位,例如敏捷教练、数据库专家以及软件质量保持专家。现如今的大公司中,有大约 128 种职业都多多少少会与软件打交道。

InfoQ:历史上最大的软件系统是什么?

Capers这个问题和之前的问题一样都是无法回答的,因为俄罗斯或中国等国家是不会把它们创建的最大的系统公之于众的。某些防御性应用程序可以包含多达 30 万个功能点,而某些商业性的 ERP 包可以达到 25 万个功能点的范围。我自己是这样进行分类的:小于 10 个功能点算是超小型系统;10 到 100 个功能点是小型系统;100 至 1 千个功能点是中型系统;1 千至 1 万个功能点是大型系统;1 万至 10 万个功能点是超大型系统;而超过 10 万个功能点的则是特大型系统。

InfoQ:怎样才能做到开发并维护这么庞大与复杂的系统呢?

Capers质量控制与变更控制可能成为薄弱环节,架构与设计、还有复杂项目的需求收集与分析都有可能成为薄弱环节。业界首先要解决那些与复杂物理设备的创建和交互相关的系统,包括计算机、飞机和电话交换系统等等。这些系统具备了顶级的质量控制与变更控制能力。而银行、保险以及其它一些公司业务系统更多的是与信息相关,而不是与物理设备相关,这些系统在质量与变更管理上做的就相对差一些。

InfoQ:软件系统中存在着一些重大的质量问题,你能举一些例子吗?我们从对这些问题的分析中又能学到些什么东西呢?

Capers质量问题是多方面的。最基本的问题在于过于依赖测试,而没有使用一些有效的方法避免缺陷并进行测试前的缺陷去除,例如静态分析,以及在测试之前进行正规的代码审查。另一个常见的问题是没有对质量进行评估,通常我会使用缺陷修复效率(DRE)或者说在发布前所找到的 bug 比例来进行评估。当前在美国这一数字的平均分小于 90%,但最高值则能够达到大于 99%。仅仅通过测试手段是难以达到超过 90% 的 DRE 分数的,而要达到 99% 这个数值则必须在测试开始前进行正规的审查和静态分析。

InfoQ:这本书中提到了多个软件和计算机公司,你能举几个你认为特别突出的,在某些方面与众不同的公司吗?他们能生存至今,是否也是因为存在某些过人之处呢?

Capers软件工业创造了巨大的财富,数额之大已远远超越了先行者们的想象。那些结合了财富与科技创新的公司包括有 Apple、谷歌、IBM、微软、甲骨文和 SAP,当然还有许多。无论上在创新还是在创造财富上,我们都还有很长的路要走。

InfoQ:回顾从前,你能举几个软件开发中的关键的转折点或技术创新的例子吗?我们又能从它们身上学习到什么呢?

Capers这一点正是我为什么要写一本几百页的书来描述这些转折点的原因。在此仅举几例:结构化设计与开发;高级语言;敏捷、RUP 与 TSP 等优秀工具,以及通过测试之前的检测与静态分析实现更好的质量控制。但总的来说,手工编程始终是一项昂贵并且易于出错的工作,因此标准组件和高层次软件重用会变得越来越重要。

InfoQ**:你认为在今后的 5到 10年之内,软件工程中会出现哪些技术或社交性的话题占据主导性的地位,你选择它们的理由又是什么?**

Capers本书中专门有一章是讲述我对 2010 年到 2019 年这段未来的展望。可以预期的是发自犯罪组织的网络攻击会越来越多。从好的方面来讲,会出现新型和有趣的社交网络;更好的培训方法;大数据;以及越来越强大的预测分析服务。

你可以在这里下载到本书的样章。

此次采访的主题是由Capers Jones 撰写的《软件工程的技术与社会化历史》,由Pearson/ Addison-Wesley Professional 于2013 年12 月出版,ISBN 号9780321903426,Copyright © 2014 Pearson Education, Inc.。关于本书的更多信息,请访问出版社的网站

关于作者

Capers Jones目前是 Namcook Analytics LLC 公司的副总裁与首席技术官。他的背景包含在 IBM 担任了 12 年的经理与软件研究工程师,在 ITT 担任了 4 年的研发副主管,以及在 Software Productivity Research(SPR)担任了 15 年的主席。他和他的搭档 Ted Maroney 于 2011 年共同创立了 Namcook Analytics LLC 公司。Capers 共出版过 16 本书,并撰写了超过 100 份杂志文章,其内容主要涵盖了软件风险分析、软件质量控制、软件评估和软件估算。他设计了 8 个具有专利的软件估算工具,以及 4 个商业化的软件估算工具。

查看英文原文: Interview and Book Review of The Technical and Social History of Software Engineering

2014-04-16 23:512436
用户头像

发布了 428 篇内容, 共 197.5 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试/测试开发丨Docker 镜像构建可以分享的快乐

测试人

Docker 软件测试 测试开发

TCP 三次握手,给我长脸了噢

程序员小富

TCP

LeetCode题解:137. 只出现一次的数字 II,排序后搜索,JavaScript,详细注释

Lee Chen

JavaScript LeetCode

让 API 管理效率更进一步的 API7 DevPortal

API7.ai 技术团队

api 网关 API7

《2022年IT行业项目管理调查报告》重磅发布!

禅道项目管理

微帧自研|客观评价模型与主观DMOS分数拟合的分享与实用性探讨

微帧Visionular

计算机视觉 视频编解码

无需二次开发,SOAP-to-REST 简化企业用户的业务迁移和整合

API7.ai 技术团队

屡试不爽!一份阿里Java程序性能实战笔记,啃完让你程序快上200%

Java你猿哥

Java ssm 面经

阿里云Elasticsearch让搜索上云像使用“水电”一样简单

阿里云大数据AI技术

阿里云 搜索 Elasticearch

为什么 APISIX Ingress 是比 Emissary-ingress 更好的选择?

API7.ai 技术团队

关于文件传输协议,你不知道的事

镭速

全球运营商的新共识:2025走向自智网络L4

脑极体

自智网络

远程桌面工具:Microsoft Remote Desktop激活版

真大的脸盆

Mac 远程办公 Mac 软件 远程工具

易观:正视GPT-4功能缺陷与能力局限可更好探索大模型应用

易观分析

科技

专业HTML文本编辑器:BBEdit 激活版

真大的脸盆

Mac Mac 软件 文本编辑器 文本编辑

openGemini正式加入openEuler DB SIG,携手开展全方面技术创新

华为云开源

时序数据库

Apache Flink X Apache Doris 构建极速易用的实时数仓架构

Apache Flink

大数据 flink 实时计算

你关切的Code Review三大问题,我以业务实践作答

极狐GitLab

DevOps Code Review 代码质量 代码规范 代码评审

软件测试/测试开发丨学习Docker就应该掌握的dockerfile语法与指令

测试人

Docker 软件测试 测试开发

2 万字长文:声明式配置技术概述

Peefy

DevOps 编程语言 开发者工具 #Kubernetes# #开源

干货 | BitSail Connector开发详解系列一:Source

字节跳动数据平台

开源 数据集成 数据引擎 企业号 3 月 PK 榜

如何让人形机器人“行稳致远”?这篇顶级期刊的论文提出了新方法

优必选科技

机器人

复旦邱锡鹏:深度剖析 ChatGPT 类大语言模型的关键技术

NLP资深玩家

人工智能 ChatGPT

阿里P8架构师都在卷的《23种设计模式加强版》宝典

程序知音

Java 架构 编程语言 设计模式 后端技术

字节跳动DataLeap数据血缘实践

Openlab_cosmoplat

数据 开源社区 数据血缘

【Docker】MacOs安装

Aldeo

Docker 云原生

两会代表热议采用ChatGPT指导论文写作:防范抄袭的探索与思考

GPU算力

人工智能 深度学习 ChatGPT

李彦宏文心一言发布会 highlight

B Impact

最强阿里及大厂350道面试大全:框架+数据库+并发+开源+微服务

Java你猿哥

Java 数据库 架构 微服务 面经

最佳实践|焱融全闪存储实现与美的集团破千万 IOPS 性能

焱融科技

文件存储 分布式文件存储 高性能存储 全闪存储 美的

采访与书评——《软件工程的技术与社会化历史》_研发效能_Ben Linders_InfoQ精选文章