文章目录

  • 核心观点—概念完整性和结构师
  • 开发第二个系统所引起的后果盲目的功能和频率猜测
  • 图形界面的成功
  • 没有构建舍弃原型——瀑布模型是错误的
  • 增量开发模型更佳——逐进地精化
    • 构建闭环的框架系统
    • Parnas产品族
    • Microsoft的“每晚重建”方法
    • 增量式开发和快速原型
  • 关于信息隐藏,Parnnas是正确的,我是错误的
  • 人月到底有多少神话色彩?Boehm的模型和数据
  • 人就是一切
  • 放弃权利的力量
  • 最令人惊讶的新事物是什么?数百万的计算机
  • 全新的软件产业——塑料薄膜包装的成品软件
  • 买来开发——使用塑料包装的成品软件包作为构件
核心观点—概念完整性和结构师

概念完整性。一个整洁、优雅的编程产品必须向它的每位用户提供一个条理分明的概念模型,这个模型描述了应用、实现应用的方法以及用来指明操作和各种参数的用户界面使用策略。用户所感受到的产品概念完整性是易用性中最重要的因素。

结构师。委派一名产品结构师是最重要的行动。结构师负责产品所有方面的概念完整性,这些是用户能实际感受到的。结构师开发用于向用户解释使用的产品概念模型,概念模型包括所有功能的详细说明以及调用和控制的方法。结构师是这些模型的所有者,同时也是用户的代理。在不可避免地对功能、性能、规模、成本和进度进行平衡时,其卓有成效地体现用户的利益。这个角色是全职工作,只有在最小的团队中,才能和团队经理的角色合并。结构师就像电影的导演,而经理类似于制片人

将体系结构和设计实现、物理实现相分离

结构师方案的重用。对于大型系统,即使所有实现方面的内容都被分离出去,一个人也无法完成所有体系结构的工作。所以,有必要由一位主结构师把系统分解成子系统,系统边界应该划分在使子系统间接口最小化和最容易严格定义的地方。每个部分拥有自己的结构师,他必须就体系结构向主结构师汇报。显然,这个过程可以根据需要重复递归地进行。

概念完整性是产品质量的核心


开发第二个系统所引起的后果盲目的功能和频率猜测

为大型用户群设计。个人计算机革命的一个结果是,至少在商业数据处理领域中,客户应用程序越来越多地被商用软件包所代替。而且,标准软件包以成百上千,甚至是数百万拷贝的规模出售。源厂商支持性软件的系统结构师必须不断地为大型的不确定用户群,而不是为某个公司的单一、可定义的应用进行设计。许许多多的系统结构师现在面临着这项任务。

设计通用工具比设计专用工具更加困难,这是因为必须为不同用户的各种需要分配权重。

盲目的功能。对于如电子表格或字处理等通用工具的结构师,一个不断困扰他们的诱惑是以性能甚至是易用性为代价,过多地向产品添加边界实用功能。

功能建议的吸引力在初期阶段是很明显的,性能代价在系统测试时才会出现。而随着功能一点一点地增加,手册慢慢地变厚,易用性损失以不易察觉的方式蔓延。

定义用户群。用户群越大和越不确定,就越有必要明确地定义用户群,以获得概念完整性。设计队伍中的每个成员对用户都有一幅假想的图像,并且每个设计者的图像都是不同的。结构师的用户图像会有意或者无意地影响每个结构决策,因此有必要使设计队伍共享一幅相同的用户图像。这需要把用户群的属性记录下来,包括:

  • 他们是谁;
  • 他们需要(need)什么;
  • 他们认为自己需要(need)什么
  • 他们想要(want)的是什么。

频率。对于任何软件产品,任何用户群属性实际上都是一种概率分布,每个属性具有若干可能的值,每个值有自己的发生频率。结构师如何成功地得到这些发生频率?对并未清晰定义的对象进行调查是一种不确定和成本高昂的做法。经过很多年,我现在确信,为了得到完整、明确和共享的用户群描述,结构师应该猜测(guess)或者假设(postulate)一系列完整的属性和频率值

总结:为用户群的属性明确地记载各种猜测。清晰和错误都比模糊不清好得多


图形界面的成功

通过类比获得的概念完整性。例如:使用指针选择图标——对人手拾起东西的模拟。

命令表达和双光标的问题

用户功能和易用性

从新手向熟练用户的逐渐过渡

由于实施强制性的体系结构,可成功地实现设备的直接整合。跨应用概念完整性的巨大价值


没有构建舍弃原型——瀑布模型是错误的

最大的错误:隐含地假设了使用传统的顺序或者瀑布开发模型
瀑布模型的第二个谬误是它假设整个系统一次性被构建——必须存在逆向移动


增量开发模型更佳——逐进地精化
构建闭环的框架系统

首先应该构建实时系统的基本轮询回路,为每个功能提供子函数调用(空的)

在每个阶段,我们都拥有一个可运行的系统
在每个功能基本可以运行之后,我们一个接一个地精化或者重写每个模块——增量地开发

我们在所有时刻都拥有一个可运行的系统,因此:

  • 我们可以很早就开始用户测试
  • 我们可以采用按预算开发的策略,彻底保证不会出现进度或者预算超支的情况(以允许的功能牺牲作为代价)。
Parnas产品族

Microsoft的“每晚重建”方法

在我们第一次发布产品之后,我们会继续发布后续版本,向已有的可运行系统添加更多的功能。为什么最初的构建过程要不一样呢?因此,从我们第一个里程碑开始(第一次发布有三个里程碑),我们每晚重建开发中的系统(以及运行测试用例)。该构建周期成了项目的“心跳”。每天,一个或多个程序员一测试员队伍提交若干具有新功能的模块。在每次重建之后,我们会获得一个可运行的系统。如果重建失败,我们将停止整个过程,直到找到问题所在并进行修复。在任何时间,团队中的每个人都了解项目的状态。

增量式开发和快速原型

Harel将原型精彩地定义成:
仅仅反映了概念模型准备过程中所做的设计决策的一个程序版本,它并未反映受实现考虑所驱使的设计决策


关于信息隐藏,Parnnas是正确的,我是错误的
  • 面向对象
  • ADT
  • 继承

人月到底有多少神话色彩?Boehm的模型和数据

无论安排多少人手,几乎没有任何项目能够在少于3/4的计算出的最优时间内获得成功!


人就是一切

人件。它所表达的观点是:“我们行业的主要问题实质上更侧重于社会学(sociological)而不是科学技术( technological)。”它充满了很多精华,如“管理人员的职责不是要人们去工作,而是创造工作的可能。”它涉及了如空间、布置、团队的餐饮等世俗的主题。 DeMarco和Lister在Coding War Games项目中提供的数据显示,相同组织中开发人员的表现之间以及工作空间同生产率、缺陷水平之间存在令人吃惊的关联
比如:顶尖人员的空间更加安静、更加私人、保护得更好以免受打扰

项目转移。 DeMarco和 Lister对团队融合给予了相当大的关注。团队融合是一个无形的,却非常关键的特性。我观察到,很多地点分散的公司,把项目从一个实验室转移到另一个。我认为,其忽视了团队融合这个管理中非常重要的因素。


放弃权利的力量

Microsoft的 Jim McCarthy向我描述了他在解放团队方面的经验:
每个队伍(30~40人)拥有自己的任务、进度,甚至如何定义、构建发布的过程。团队由4或5位专家组成,包括开发、测试和书写文档等。对争论进行仲裁的不是老板,而是团队。我简直无法形容授权和由团队对项目自行负责成功与否的重要性

(近年来)关键的措施是将权力向下委派。改进的质量、提高的生产率和高涨的士气,这就像是魔术!我们的小型团队,没有中心控制。团队是流程的所有者,并且必须拥有一个流程。他们有不同的流程。他们是进度计划的所有者,但能感受到市场的压力。这种压力导致他们使用和利用自己的工具


最令人惊讶的新事物是什么?数百万的计算机

微型计算机革命改变了每个人使用计算机的方式

微型计算机革命改变了每个人开发软件的方式


全新的软件产业——塑料薄膜包装的成品软件

传统软件产业。在1975年,软件产业拥有若干可识别的但多少有些差异的组成部分,如今它们依然存在:
计算机提供商:提供操作系统、编译器和一些实用程序;

  • 应用程序用户:如公共事业单位、银行、保险公司和政府机构等,它们为自己使用的软件开发应用程序包;
  • 定制程序开发者:为用户开发私用软件包,这类承包商大多数工作在国防项目上,这些项目的需求、标准和行销步骤都是与众不同的;
  • 商业包开发者:那个时候是为专业市场开发大型应用,如统计分析软件包和CAD系统等。

操作系统世界已经统一了

塑料薄膜包装的成品软件产业


买来开发——使用塑料包装的成品软件包作为构件

元编程。 Hypercard stacks、 Excel模板和 Minicad函数的开发有时被称为元编程( metaprogramming),为部分软件包用户进行功能定制的过程。

我们可以识别出四个层次的软件成品用户。

  • 直接使用用户。他们以简便直接的方式来操作,对设计者提供的功能和接口感到满意
  • 元程序员。在单个应用程序的基础上,使用已提供的接口来开发模板或者函数,主要为最终用户节省工作量
  • 外部功能作者,向应用程序添加自行编制的功能。这些功能本质上是新应用语言原语,调用通用语言编写的独立模块。这往往需要命令中断、回调或者重载函数技术,向原接口添加新功能
  • 元程序员,使用一个或多个特殊的应用程序,作为更大型系统的构件。他们是需求并没有得到满足的用户群。同时,这也是能在构建新应用程序方面获得较大收获的用法。

《人月神话》-第19章-20年后的《人月神话》相关推荐

  1. 人月神话(七)没有银弹-软件工程中的根本和次要问题、20 年后的人月神话

    第16章 没有银弹-软件工程中的根本和次要问题 没有任何技术或管理上的进展,能够独立地许诺十年内使生产率.可靠性或简洁性获得数量级上的进步. Part 1 摘要 所有软件活动包括根本任务-打造由抽象软 ...

  2. 【信息系统项目管理师】第10章 下篇-项目干系人管理 知识点详细整理

    个人资料,仅供学习使用 教程:信息系统项目管理师(第3版) 修改时间--2021年10月4日 09:19:27 参考资料: 信息系统项目管理师(第3版) 题目书(2021下半年)--马军 本文包括: ...

  3. 《20年后,你靠什么生存(孙继滨)》讲座观后感

    首先为身在广州,不能亲自去北京参加孙老师的<20年后,你靠什么生存(孙继滨)>讲座深感遗憾,同时非常的感谢51CTO工作人员从现场录制回来的视频,看着现场60多位跟自己一样对职业规划迫切渴 ...

  4. 《20年后,你靠什么生存(孙继滨)》讲座观后感 转

    标签:IT 职业 生存 规划 80后 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://bennie.blog.51cto.com/ ...

  5. 中科院院士谈量子技术发展 20年后黑客消失

    关键字:量子 技术 QQ密码被盗.电脑密码被破译.网站被"黑".随着计算机的普及,越来越多的人经历这样的遭遇.20年后,您可能再也不必担心计算机密码被破译.昨天,"科学与 ...

  6. 19 个行业观点:李开复谈20年后 AI,崔宝秋论开源之道,清华唐杰提认知图谱三要素...

    智源导读:12月16日,由科技媒体[量子位]主办的"MEET 2021智能未来大会"在北京召开,其中包括创新工场董事长兼CEO李开复.中国工程院院士谭建荣.小米公司副总裁崔宝秋.清 ...

  7. 【ERP】ERP发展阶段有哪些?对ERP发展各个阶段概念的理解(20年3月29日第二章学习笔记)

    ERP发展历经五大阶段 1.ROP库存订货点法 2.MRP物料需求计划 3.闭环MRP 4.MRPII制造业资源计划 5.ERP企业资源计划 1.ROP库存订货点法 ROP,库存订货点法,很好理解,就 ...

  8. 创世纪牛人科技外汇交易跟单社区一键绑定跟随即可月收益20%-50%

    外汇跟单高手炒外汇8年以上的感悟,外汇跟单高手的盈利技巧!-----创世纪牛人科技外汇跟单社区 创世纪牛人科技外汇交易跟单社区一键绑定跟随即可月收益20%-50% 创世纪牛人科技外汇交易跟单社区是个怎 ...

  9. 就挺凡尔赛的!李开复谈20年后的AI,崔宝秋论开源之道,清华唐杰的PPT成了“香饽饽” | MEET2021智能未来大会...

    编辑部 发自 凹非寺  量子位 报道 | 公众号 QbitAI 2020年,这个特殊的年份即将过去. 在这一年中,我们的生活遭受重创,但AI技术和应用仍在加速脚步. "重启.重塑.重构&qu ...

  10. 第19章,运维自动化之系统安装

    更多内容请点击: Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) https://blog.51cto.com/13683480/2095439 第19章,运维自 ...

最新文章

  1. java:十进制转十六进制
  2. taskexecutor_弹簧和线程:TaskExecutor
  3. android数据序列化的实现
  4. echart 饼图每一块间隙_排队3h?为了火遍tou音的芝士水果饼,值得吗?!
  5. visual studio 2015 2017 key vs2015 vs2017密钥
  6. linux下mysql连接_Linux下MySQL C++连接操作
  7. 力扣-1232 缀点成线
  8. matlab 画图函数plot
  9. word文档无法另存为/导出pdf解决办法
  10. mitmproxy抓https出现502Bad Gateway. unable to get local issuer certificate的解决方法
  11. 解析大数据智能分析平台开发
  12. 计算机进入安全模式的原因,电脑只能进入安全模式的原因及处理方法
  13. 清华刘知远提出CPT:基于预训练视觉-语言模型的跨模态Prompt-Tuning
  14. Intellij IDEA——启动Tomcat控制台输出繁体乱码
  15. TCS3200颜色检测传感器
  16. Atom插件下载失败解决办法
  17. 二、vis network配置项
  18. 校园招聘渐入高峰,希望大家通过我的书可以找到合适的工作。
  19. html中tbody标签什么意思,tbody标签什么意思
  20. 无需root无需xposed修改QQ运动步数

热门文章

  1. 推荐系统系列 - 引导 - 5类系统推荐算法,非常好使,非常全
  2. VS2010提示asp.net v4.0 尚未在web服务器上注册
  3. Alexa排名 介绍
  4. 【P2P网络】BitTorrent协议中文版4
  5. PostgreSQL客户端无法访问数据库问题
  6. 计算机网络应用基础试题6,计算机网络应用基础期末试卷试题2
  7. 【数字电路逻辑设计】第1章 基本知识
  8. cs1.6 linux,Ubuntu 8.04下用Wine 0.9.59安装cs1.6 (Esai_Cs1.6_2834)
  9. 天气实况、天气预报、免费天气接口、空气质量各类天气数据、生活指数、气候数据雷达云图等值面...
  10. TOEFL 考场注意事项 考试须知