前言:软件在设计阶段如果能够多考虑一些后续的维护工作,显然是非常棒的。然而对于现阶段的我,或者很多程序员来说,未雨绸缪有很大难度,我们往往即使已经下雨了,也依然无法把窗户关紧,那么如果你想得到一些指导的话,请随我来,看看我能否品出一些味道来。
没有什么是永恒的,除了变化。
普遍的做法是,选择一个方案,试试看;如果失败了,没关系,再试试别的。不管怎么样,重要的是去尝试。
我觉得书中提供的这两个观点非常的棒,首先,任何事都不可能一成不变,敏捷宣言也提倡我们要拥抱变化。其次,在解决问题的时候,就是要不断的尝试,这个方案没有解决问题,就去尝试另外一个,直到你想不到别的办法,你再去求救别人。

实验性工厂和增大规模

现如今,很少有公司敢把没有经过beta测试的产品直接上线运行,那带来的后果是不可估量的。
当你完成了代码测试,就觉得程序万无一失,着急上线的话,往往打击是惨痛的。就如同诸葛亮认为马谡熟读兵法再加上跟随诸葛亮多年,派他去守街亭,结果被马谡的昏招教训的惨痛。
在好不容易开发出第一版产品后,即使它非常的差,我似乎很眷恋它,无法丢弃它。然而更好的做法是,在开发第一版产品的时候,要考虑在日后变更它,甚至丢弃它的可能性,至少能够对一些关键点留下后路。

唯一不变的就是变化本身

我个人就非常的讨厌一个方案确定下来后,再因为用户的需求变化而做出调整,从思想的源处,我似乎还没有接受这种观念,说实话, 我就是厌恶变化。
但是现实就是喜欢开玩笑,用户的需求会变化,软件的技术会变化,你的能力会变化,如果你在设计之初没有考虑到变化,那么当你不得不做出改变的时候,将会十分的痛苦。
举个例子来说,银行流水号,一般情况下,年月日时分秒+4位随机数就够用了,于是你可能把字段设计为long型,字段长度为18位。如果你这样做的话,我告诉你,你会后悔的,你最好设计为string类型的25位长度的字段,这样才能拥抱变化。

为变更计划系统

的确,变更就想小孩子的脸,如果你不准备好糖果或者奶水,那么一旦小孩子变脸,你将无法再控制他。那么对于软件设计,我们能做些什么呢?
  • 为产品迭代建立合适的周期和版本。
  • 采用更高级的软件框架和开源技术。

为变更计划组织架构

当只有一个新野的时候,刘关张没有选择的就要驻扎在一起;而当有了徐州和小沛,三人就要分开,但至少有两人还在一起;然后当有了荆州,并且了双线进军西川的时候,三人就要完全分开。而在此时,关羽要做的不仅仅是守荆州,同时还要单刀去赴会;张飞不仅仅要葭萌关大战马超,还要能使用计谋义释严颜;彼此在武力和智力上都要经得住考验。
那么在应对软件变更过程中,组织可以做些什么来应对呢?
  • 技术人员和管理人员具有互换性。(目前的我似乎已经习惯于在更多的角色定位中穿梭)
  • 在管理线和技术线上设置具有相同薪水的不同阶层,同时树立各自的威信。(每朝每代,文官和武馆都会站在不同的列队,然而层级是一致的,这样就确保文武百官各司其职,并且能够相互依赖)
当然最好的就是,每个人都能文武双全,像周瑜(三国演义是为了衬托出诸葛亮的牛,但事实上周瑜在智力和武力上都属于顶级水准)一样,这样可以使结果在面对变化的时候进行更快捷的调整。

前进两步,后退一步

对于广泛使用的程序,维护成本通常是开发成本的40%或更多。
缺陷修复总会以固定(20%-50%)的几率引入bug。
总体上能够前进一步,已经实属难得。结合我自身的经验就知道,在现实的软件开发以及维护中,每当修复一个当前问题时,总会有一定几率引入新的bug,我之前总是怪罪自己的不小心,但是后来我知道,能够快速解决问题才是王道。即使像诸葛亮也无法预知在他进行七星灯工作的时候,魏延在最后关头摆了他一刀。

前进一步,后退一步

用在修复原有设计上瑕疵的工作量越来越少,而早期维护活动本身引起的漏洞修复工作越来越多。
这个现象也普遍的发生,有些产品无论再怎么改进,他的水平也就维持在那样一个高度,不会发生质变。
那么最好的方式是什么呢,那就是重新再来一个。就如同中国的道路一样,没过一段时间,就要让人忍受马路的修修补补,然而并不能从根本上解决问题,一段时间过后,另外一处要重新打上补丁。那么如何解决呢,那就是放弃那个豆腐渣的公路吧,重新搭建一条新马路。

人月神话札记:未雨绸缪相关推荐

  1. 人月神话札记:祸起萧墙

    前言:None love the bearer of bad news.谁都不喜欢带来坏消息的人,可能我们都经历过项目延期,很多时候,项目不是因为一件重大的问题而停滞不前,当从中反省的时候,我们恍然大 ...

  2. 人月神话之七 未雨绸缪

    未雨绸缪强调:项目开发的第一个系统一般都是具有实验性质的项目,在这个项目中用户会对于自己的需求有一个清晰的认识,而且随着认识越来越清晰,他们知道了需要添加设么功能,项目开发团队应该做好为了变更而进行的 ...

  3. 人月神话札记:整体部分

    前言:关于测试,的确太过重要,尤其是把新做成的功能加入到原来已经正常运行的系统中,先随我一起进入到Brooks的世界中看一看. 剔除bug的设计 产品的概念完整性在使他易于使用的同时,也使开发更容易进 ...

  4. 人月神话札记:贯彻执行

    前言:He'll sit here and he'll say, "Do this! Do that!" And nothing will happen.应该就是光说不练假把式的意 ...

  5. 人月神话札记:削足适履

    前言:所谓削足适履,就是把解决问题的办法弄得本末倒置,使用了错误的方式去解决问题,自然就得不到好的结果.那么如何才能更好的解决问题呢,对于本章,我已经反复读了5遍了,然而苦于自己的理解能力,我仍然一知 ...

  6. 人月神话(11)未雨绸缪

    人月神话(11)未雨绸缪 思维导图 试验性工厂和增大规模 化学工程师已经认识到无法一步将实验室工作台上的反应过程移到工厂中,需要一个试验性工厂(pilot plant)来为提高产量和在缺乏保护的环境下 ...

  7. 《人月神话》(P11)为舍弃而计划

    实验性工厂和增大规模 化学工程师很早就意识到:在某个化学反应大规模投产之前必须进行实验性的生产. 软件系统的构建人员也面临同样的问题,但似乎从来没有吸取教训.总是设计.应用.然后把第一次开发的产品交付 ...

  8. 人月神话贯彻执行_《人月神话》读后感与读书笔记

    <人月神话>讲了什么 一开始我觉得这本书重点是在软件工程,但后来我觉得更准确的说法是,<人月神话>是讲软件工程中人与团队关系的. 一个由个人完成的"小"程序 ...

  9. 关于《人月神话》的读后感

    关于<人月神话>的读后感 基本情况: 书名:人月神话 作者:布鲁克斯(FrederickP.Brooks.Jr.) 页数:369 全书字数:316000 出版社:清华大学出版社 出版日期: ...

  10. 人月神话(各章精选)

    第1章 焦油坑史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼.上帝见证着恐龙.猛犸象.剑齿虎在焦油中挣扎.它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够 ...

最新文章

  1. BZOJ 2151 种树(可反悔贪心,链表)【BZOJ千题计划】就图一乐
  2. 无服务器仍然离不开基础设施管理
  3. linux FreeImage安装编译
  4. oracle 杀死过程,ORACLE-Kill 杀死正在执行的Oracle存储过程和死锁语句
  5. 借助 IIS 管理器 -- 用手机测试HTML页面
  6. Mybatis中的attempted to return null from a method with a primitive return type (int).异常
  7. 解析几何:第三章 平面上的直线
  8. Java finally
  9. Java easycms 版本2.0发布
  10. 电路基本概念有哪些?
  11. GIS开源库shapeLib的使用方法
  12. 现代程序设计 (课程设计中, 征求意见稿)
  13. Android开发:1-2、UI编程----TextView、EditView、Button、ImageView、ImageButton、CheckBox
  14. 定义变量和常量的规范 c语言,C语言编程规范教材及练习(标识符命名与定义 变量 宏、常量 表的达式).pptx...
  15. Spark之Task原理分析
  16. 一文学懂经典算法系列之:直接选择排序(附讲解视频)
  17. 简约大气毕业论文答辩PPT模板
  18. C语言学习中遇到的问题和解决方法
  19. Android 开机速度优化-----ART 预先优化
  20. Unreal Engine4和Unity3D对比

热门文章

  1. windows下重装系统时驱动备份和恢复命令
  2. 2014年全国最新企业名录免费采集下载
  3. linux下的系统监控软件,管理员必备的20个Linux系统监控工具
  4. smartdrv.exe是什么(收藏)
  5. 【原】豆瓣电台桌面版——Win7任务栏支持+托盘+快捷键+历史记录
  6. 打印5列五颗星_55组“数学顺口溜”,孩子想学好数学必须背熟
  7. 一个被忽视的强大搜图技能——以图搜图
  8. 6个超级实用的免费网盘搜索网站分享
  9. c#获取电脑硬件信息参数说明(声卡篇 Win32_SoundDevice )
  10. 计算机化学试题,08计算机化学试卷yuanj.doc