《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一一3.1 在初始阶段我们并不真正地知道目标是什么

简介: 本节书摘来自华章出版社《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一 书中的第3章,第3.1 节,作者:(美) Frederick P. Brooks, Jr. 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.1 在初始阶段我们并不真正地知道目标是什么
理性模型最严重的缺陷在于,设计师们往往只有一个模糊不清的、不完整的既定目标,或者说是主要目的。在此情形之下: 设计中最困难的部分在于决定要设计什么。 在我还是学生的时候,有一个暑假里去替一家很大的军火商打工,在那里我被指定去做设计和构建一个小型数据库系统的工作,用以跟踪某个雷达子系统的上万张图纸以及其中每一张图纸的更新状态。 过了几个星期,我做出了一个能运行的版本。我自豪地向我的客户演示了一个输出报告的样例。 “做得不错,这的确是我想要的,不过你可否把这里改一下?那样我们就可以……” 在接下来的数个星期,每天早上我都给客户演示输出报告,每次都是顺应了前一天提出的要求之后的修订结果。每天早上,他都会对产品报告研习一番,然后使用一成不变的、彬彬有礼的口头禅提出另一项系统修订的要求。 系统本身很简单(是在打孔卡片机上实现的),而且那些修订在概念上看起来也是平淡无奇的。就算是最影响全局的变化也只是将图纸列表按照内部等级排序或缩进显示,而等级是用卡片上单独一个0~9的数字来表示的。其他的改进包括多级局部汇总(当然有例外情况要处理)以及自动地为需要注意的值标注上星号。 有那么一阵子,我很是愤愤不平:“为什么他不可以就想要的内容下定决心?为什么他不能把想要的对我一口气说完,而偏偏要每天挤一点出来呢?” 然后,我一点点地认识到,我为客户提供的最有用的服务是帮助他决定什么是他真正想要的。 那么,如今的软件工程原则要复杂得多了。我们认识到,快速原型是一种进行精准需求配置的必要工具。不仅整个设计过程是迭代的,就连设计目标的设定过程本身也是迭代的。 软件工程领域的复杂化不仅没有停止的势头,甚至连明显的放缓也看不到,在汗牛充栋的文献资料中,“产品需求”仿佛是给定设计过程的常规假设前提。不过,我要提出一点异议,那就是,在初期就能了解整个产品需求是相当罕见的,而远非常态: 设计师的主要任务乃是帮助客户发现他们想要的设计。 至少在软件工程领域,快速原型的概念有其地位及其公认的价值,但在计算机(体系结构)设计或建筑架构设计中,它的地位与在软件工程中并不总是相当。但无论如何,在目标迭代方面,我在这些设计领域都看到了相同的现象。越来越多的设计师们为计算机构建模拟器,为建筑构建虚拟环境演练,以此作为快速原型,从而促成目标的收敛。目标的迭代必须作为设计过程的固有组成部分加以考虑。

相关文章
|
开发工具 Android开发
Appium之获取app的package和activity以及UI界面定位方法
一、获取APP的package(包名)和activity 在使用android自动化测试工具monkeyrunner和appium中启动应用时,需要填写被测程序的包名和启动的Activity,以下有几种查看应用包名package和入口activity名称的方法: 1.
3674 0
|
1月前
|
存储 人工智能 关系型数据库
湖库一体:2026年数据库架构的“终极答案”还是新瓶装旧酒?
2026年6月,OceanBase发布湖库一体AI数据库,阿里云PolarDB年初已推出AI数据湖库(Lakebase),Databricks也在6月推出了LTAP架构。“湖库一体”成为2026年数据库圈最热的概念之一。本文从湖库一体的概念定义出发,拆解其技术原理,对比“湖仓一体”与“湖库一体”的差异,分析三大厂商的落地路径,并讨论这一趋势对DBA和架构师的现实意义。
|
Java 数据库连接 Spring
深入了解数据校验(Bean Validation):从深处去掌握@Valid的作用(级联校验)以及常用约束注解的解释说明【享学Java】(下)
深入了解数据校验(Bean Validation):从深处去掌握@Valid的作用(级联校验)以及常用约束注解的解释说明【享学Java】(下)
深入了解数据校验(Bean Validation):从深处去掌握@Valid的作用(级联校验)以及常用约束注解的解释说明【享学Java】(下)
|
5月前
|
人工智能 自然语言处理 搜索推荐
从RPA到GEO:匠厂OpenClaw如何通过“到港通知多语言”重塑物流货代交付体验
【背景】全球化背景下的物流沟通屏障在当前的全球贸易环境中,跨境物流货代行业面临着极高的沟通成本。尤其是“到港通知(Arrival Notice)”这一关键环节,往往涉及多语言环境、繁琐的单证核对以及实...
|
6月前
|
存储 弹性计算 固态存储
2026阿里云服务器最新价曝光!一年、1月和1小时费用连夜整理,看完不花冤枉钱
2026阿里云服务器最新价曝光:轻量服务器低至38元/年(2核2G+200M峰值带宽),ECS爆款99元/年(2核2G+3M)和199元/年(2核4G+5M),香港轻量25元/月起;GPU及全规格ECS按小时计费,覆盖大陆及海外多地域,续费同价,不限流量,性价比拉满!
1462 6
|
Java 开发工具 Android开发
Eclipse阿里云镜像源配置
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。
9464 2
Eclipse阿里云镜像源配置
|
Java 网络安全 开发工具
VNFM与VNF对接的简单说明
VNFD里的VDU里的一项表示一个虚机,cpu_cores、mem_size、disk分别表示此虚机的cpu/mem/disk大小,connection_point表示虚机的网络,一项表示一个网络,网络的具体的定义在VNFD文件后面。
VNFM与VNF对接的简单说明
|
安全 前端开发 Java
【Spring专题】「开发实战」Spring Security与JWT实现权限管控以及登录认证指南
【Spring专题】「开发实战」Spring Security与JWT实现权限管控以及登录认证指南
1140 0
【Spring专题】「开发实战」Spring Security与JWT实现权限管控以及登录认证指南
|
存储 SQL 算法
Mysql底层原理详细剖析+常见面试题(全)
这篇博客主要通过进行学习2021年最新大厂数据库面试讲解,45讲让你透彻理解MySQL索引!前情回顾,如果想了解更多的数据库底层原理可看我其他的文章底层知识链接DQL、DML、DDL、DCL的定义数据库之DQL、DML、DDL、DCL定义事务四个特性、隔离级别以及面临的问题数据库关于事务的详解分析(全)包含面试常问的细节Mysql的主从复制以及Redis的主从复制关于主从复制的超详细解析(全)索引的优化分析、查询截取分析、锁机制Mysql优化高级篇(全)还有其他细节以及数据库的算法题 可看我的专栏。...
1432 0
Mysql底层原理详细剖析+常见面试题(全)