软件开发项目常以人月来衡量工作量,这种度量暗示着人手和时间是可以互换的。这种人多力量大的想法是一种一厢情愿的虚妄神话,布鲁克斯法则:向滞后的软件项目追加人手会使得进度更迟缓

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

结构师。结构师负责产品所有方面的概念完整性,开发用于向用户解释使用的产品概念模型,概念模型包括所有功能的详细说明以及调用和控制的方法。结构师是这些模型的所有者,同时也是用户的代理。在不可避免地对功能、性能、规模、成本和进度进行平衡时,卓有成效地体现用户的利益。

将体系结构和设计实现、物理实现相分离。为了使结构师的关键任务更加可行,有必要将用户所感知的产品定义——体系结构,与它的实现相分离。体系结构和实现的划分在各个设计任务中形成了清晰的边界,边界两边都有大量的工作。

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

史前时代的焦油坑吞噬了成千上万个力大无穷的巨兽,今天的大型软件项目则令无数庞大的开发团队陷入无从逃脱的窘境。软件程序按其规模和目标的不同,对开放过程的要求也有极大的不同,这给软件开放这一职业带来无穷乐趣,同时也是这一行业苦恼的根源。虽然优秀的程序员的工作效率往往数倍于平庸的程序员,但若是缺乏合理的配置,优秀的成员未必能构成优秀的团队。大型软件开发项目的团队需要和外科手术组一样妥善分工,各司其职协调配合。人们在第一个系统成功完成后,往往会在开发后续的第二个系统时犯冒进的错误。第二个系统经常成为过度设计或画蛇添足的牺牲品。要避免这种错误,必须在第二个系统开发时审慎地考查技术环境的变化,广泛进行交流和沟通,聆听各方面的建议,确立严谨的估算和规划。 架构设计通常由核心设计小组完成,将设计概念传达到整个开发团队是贯彻概念完整性的必然要求。以System 360的开发经验为例,要贯彻概念完整性,需要在团队中保持良好顺畅的沟通和交流,采用形式化定义等技术来确保概念被精确地定义和传达。独立的测试小组是系统质量的良好保证。如果缺乏良好有效的沟通和协作,成员间难以有效的配合,团队项目的目标就无法实现。清晰的工作文档,明确的组织结构,合理的职责分配,都是大型软件项目最终成功的保证。 最大化资源利用率,减少不必要的资源占用,合理规划,使软件系统在资源有限的情况下依然保证了良好的性能,从而实现良好的可伸缩性和健壮性,这能体现软件开发人员精湛的设计技巧。巧妙的数据结构往往能大幅度地俭省资源耗费,提高系统运行的性能。变化是永恒的,用户的需求和期望在变化,开发者对用户需求的理解在变化,适用的技术也在变化,故而最佳的解决策略也可随之变化。软件开发团队应灵活地配置人力和资源,适应开发过程中的种种问题。程序的复杂性、用户需求的不确定性、软硬件技术环境的发展等因素导致了软件维护工作并非总是能够百分之百地获得回报。

转载于:https://www.cnblogs.com/yuntianblog/p/4307487.html

《人月神话》读后总结相关推荐

  1. 《一线架构师实践指南》—— 读后总结

    之前总觉得架构是一件很高大上的工作,跟普通的编码设计不太一样.前一段实践,自己也尝试做过架构的工作,可惜经验不足导致架构非常混乱.这里读完这本书,大体上对架构的工作有所了解,也稍微摸清了些门道. 我理 ...

  2. 读了本号称“App架构师实践指南”的书

    大家好我是张拭心,最近读了本书,书名比较厉害<App架构师实践指南>,读完还是有一定收获的,记录分享给大家. 什么是 app 架构师 这本书主要内容 读完感受 什么是 App 架构师 成为 ...

  3. 《App架构师实践指南》:移动开发的进阶指南

    文章主要内容: 什么是 app 架构师 这本书主要内容 读完感受 什么是 App 架构师 成为"架构师"是许多程序员的梦想,当然也包括我,在工作的几年里,我见过很多架构师,他们在设 ...

  4. App架构师实践指南四之性能优化一

    1.性能维度 常见用来衡量App性能的维度如图9-1所示.其中,性能指标包括电池(电量/温度).流量(上行流量/下行流量等).CPU(平均/最大/最小).内存(平均/最大/最小).帧率(平均/最高/最 ...

  5. Android屏幕适配很难嘛其实也就那么回事,app架构师实践指南pdf

    程序员的劫 最近,又被程序员年龄的事情刷屏了.37岁被公司优化,找工作几个月都没有很好的归属,所谓的小公司还看不上.等等类似的话题变成了程序员的吐槽固定标题,无论是程序员,还是其他行业人员,都可以就这 ...

  6. 高级架构师都在读的10本Java实战书籍,Java开发进阶必备书单

    关乎于程序员,除了做项目来提高自身的技术,还有一种提升自己的专业技能就是:多!看!书! 毕竟,书是学习的海洋呢!So,Java程序员你们准备好了吗?双手奉上Java程序员必读之热门书单. 在下面这 1 ...

  7. 大厂资深架构师都在读的10本Java实战书籍,Java开发进阶必备书单

    入门 <SSM企业级框架实战> 作者: 肖睿/丁慧洁/张宁彬 **简介:**框架(Framework)的本质为某种应用的半成品,即把不同应用程序中的共性内容抽取出来而形成的半成品程序.SS ...

  8. 架构师实践日 · 6.30 杭州站 | 视觉 AI 技术如何助力行业提升?来西子湖畔与业内大咖面对面交流!

    伴随内容形式的变迁(文字 → 图片 → 视频),目前视觉 AI 技术不仅被应用到传统领域的升级革新中,还作为最重要的基础人工智能技术渗透到前沿技术的创新研究中. 七牛架构师实践日第二十九期将以视觉 A ...

  9. 如何构建 FinTech 科学反欺诈体系|架构师实践日

    微众圈 > 微信资讯 > 科技 > 文章 如何构建 FinTech 科学反欺诈体系|架构师实践日 摘自公众号:七牛云发布时间:2017-4-11 21:28:33 FinTech,即 ...

  10. 【架构师实践课】微服务如何拆分?大型微服务项目从何下手?

    继上期[架构师实践课]单体和微服务怎么选?单体到微服务怎么转?之后,万老师为我们带来了微服务系统设计专题的第二个议题:微服务设计痛点. 以下内容根据实践课整理. 微服务如何拆分 首先想和大家分享的,就 ...

最新文章

  1. 50岁马斯克又恋爱了!27岁金发女友长着芭比娃娃脸
  2. python tkinter 布局_python tkinter学习——布局
  3. 计算机房 门,标准机房门的规格
  4. 费曼学习法:为何被称为史上最牛的学习法,它的本质究竟是什么?
  5. TextView之一:子类的常用属性
  6. WPF自定义命令(转)
  7. Depth-first Search深度优先搜索专题5
  8. IntelliJ IDEA 2021连接MySql数据库的操作
  9. nyoj914Yougth的最大化(二分搜索 + 贪心)
  10. android启动效果
  11. 贴片电阻上写着“0”,所谓的“零欧电阻”,在电子电路中的用处很大
  12. 他不怕被拒绝_不会敬酒很吃亏,送你五个敬酒词的模版,再也不怕劝酒了
  13. 三角网格(Triangle Mesh)
  14. pdf文件怎么拆分页面为多个pdf
  15. Power BI:数据清洗
  16. 《论文阅读》THE CURIOUS CASE OF NEURAL TEXT DeGENERATION
  17. 实践一:mipsel-栈溢出漏洞_开启telnet服务_反弹shell
  18. linux解除用户锁,linux禁用锁定和解除解锁用户账号的方法
  19. KubeVela解读
  20. 推荐几本适合初学者的Java书籍

热门文章

  1. 审车按月还是日期_@老司机,你该审车了,秒懂的审车攻略,快快揣口袋吧
  2. 自然语言处理——词嵌入
  3. leetcode - 1218. 最长定差子序列 (使用哈希表)
  4. linux下mysql连接错误解决
  5. Code::Blocks 16.01 改变注释的的颜色
  6. CentOS 6 5安装Erlang/OTP 17 0
  7. [git] 基础操作-02 分支和主支合并
  8. java中gc触发的条件,各种gc触发条件统计
  9. python求和_用python求和
  10. 爬虫怎么处理python_python 爬虫怎么处理json内容