这次的内容主要是关于软件开发过程中的风险管理,包括项目用时估计、产品的发布与更新、承诺兑现的重要性。

①项目用时估计

  有人会质疑项目用时估计的可靠性,因为就事而言,这次的任务可能和上次不一样了,开发环境也许同样发生了变更;就人而言,执行者应该比上次更有经验,完成的速度理应更快;就不确定性而言,之前遇到的麻烦事可能不会再次出现,也可能这次会遇到新的问题。

  其实,这些都不重要。根据个人经验并结合作者的观点,只要是难度相当的任务,实际完成时间不会相差太远,都可以控制在时间估算的误差百分比范围内,只要开发环境没用重大的变化。不过,开发环境的改变使得你有必要去适应新的环境和新的问题,所以,实际的效率也不见得会比以往的高。至于不确定性,随机事件的总体服从均值分布,只要你自己不认为这次和上次不一样,实际花费的时间也会是差不多的。

  不仅如此,正确的估算是十分必要的,它能帮助你提前发现一些风险,降低随机性的影响,同时还能给客户带来一种潜在的信任感。

②产品的发布与更新

  “了解发布产品的最好途径就是早发布,常发布。要让每个程序的‘构建’都是可发布的‘构建’,每天构建,且每星期至少对整个系统重新构建一次。定期发布技术预览版及测试版。定期发布将使产品逐步更新修复。早发布,常发布,生命在于运动。”

  我们开发软件不是纸上谈兵,也不是做给自己欣赏的,一款成熟的软件产品最终是要发布到市场上的,是要给用户使用的。既然如此,我们就应该严格保证每个版本,哪怕只是测试版也要是能够发布的。通过发布,才能及时得到用户们的最新反馈情况和建议,才能高效的对产品进行改进而使用户更加满意,这样产品才能逐渐成长并完善。如果花费大量时间去开发自认为满意的终极版本而在此之前从未发布,则出现问题以及不能适应用户需求的风险就大大提升了,这是我们应极力避免的。

③承诺兑现的重要性

  软件工程师经常犯的错误是在遇到非人所愿的问题时延期交工。为了避免纷争,他们往往并不提及延迟的事,而是匆忙赶工,牺牲质量,草率应付计划。然而事情可能并没有想象中这样简单,因为你可能只是某条链上的一个环节,个人的延期必将使得整条链延期,结果就是招致客户的不满甚至整个产品的失败。

  承诺的兑现是与他人合作的基本原则,我们不能过了承诺规定的时间而将关键性任务向后无限拖延。制定承诺的作用在于防止某些可能发生的问题,排除一些不切实的想法和“死亡进军”的可能。

风险管理,未雨绸缪——《代码之殇》读书笔记II的更多相关文章

  1. 代码的未来读书笔记<二>

    代码的未来读书笔记<二> 3.1语言的设计 对Ruby JavaScript Java Go 从服务端client以及静态动态这2个角度进行了对照. 这四种语言因为不同的设计方针,产生了不 ...

  2. 《第一行代码 android》 读书笔记:找出当前界面对应的Activity

    在android开发中找出当前界面对应的Activity,步骤如下: 新建一个BaseActivity继承自Activity,然后在BaseActivity中重写onCreate()方法,通过getC ...

  3. 《编写高质量代码--Web前端开发修炼之道》读书笔记

    前言 这两周参加公司的新项目,采用封闭式开发(项目成员在会议室里开发),晚上加班到很晚,所以没时间和精力写原创博客了,今天就分享下这篇<编写高质量代码--Web前端开发修炼之道>读书笔记吧 ...

  4. 《Mastering Opencv ...读书笔记系列》车牌识别(II)

    http://blog.csdn.net/jinshengtao/article/details/17954427   <Mastering Opencv ...读书笔记系列>车牌识别(I ...

  5. <读书笔记> 代码整洁之道

    概述      1.本文档的内容主要来源于书籍<代码整洁之道>作者Robert C.Martin,属于读书笔记. 2.软件质量,不仅依赖于架构和项目管理,而且与代码质量紧密相关,本书提出一 ...

  6. <读书笔记>软件调试之道 :从大局看调试-发现代码存在问题

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...

  7. 编写高质量代码改善C#程序的157个建议读书笔记【1-10】

    开篇 学生时代,老师常说,好记性不如烂笔头,事实上确实如此,有些知识你在学习的时候确实滚瓜烂熟,但是时间一长又不常用了,可能就生疏了,甚至下次有机会使用到的时候,还需要上网查找资料,所以,还不如常常摘 ...

  8. 读书笔记--<<会说话的代码>>

    三天看完一本书,说出来我都不信,不过我还真是史无前例的做到了, 现在分享一下我的收获,希望大家拍砖,共同讨论一下. <<会说话的代码>>一书是我们BJDP小组里的王洪亮老师的一 ...

  9. 读书笔记:《梦断代码Dreaming in Code》

    读书笔记:<梦断代码Dreaming in Code> 拿到<梦断代码>书后,一口气翻了一遍,然后又用了3天时间仔细读了一遍,也不禁掩卷长叹一声,做软件难.虽难,仍要继续走下去 ...

随机推荐

  1. 【数组】Maximum Product Subarray

    题目: Find the contiguous subarray within an array (containing at least one number) which has the larg ...

  2. [转] TCPIP 网络协议层对应的RFC文档

    TCPIP网络协议层对应的RFC文档 RFC - Request For Comments 请求注解 TCP/IP层 网络协议 RFC文档 Physical Layer Data Link Layer ...

  3. javascript技巧总结

    1.删除前后空格 String.prototype.trim = function () { return this.replace(/(^[ | ])|([ | ]$)/g, "" ...

  4. java的日期格式化

    原博客地址: http://blog.csdn.net/yangbobo1992/article/details/9965105 日期格式: 时间日期标识符: yyyy:年 MM:月 dd:日 hh: ...

  5. dockerfile基础命令

    一直想写一个, 但发现网上有很多了, 直接copy把 如何使用 Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等.当前目录下包含Dockerfile,使用命令build来 ...

  6. pcap简单使用和简单解释

    数据类型bpf_u_int32实际上就是u_int的一个别名,还有吧bpf_int32实际上就是int的别名.当然这个int是32位的,如果操作系统对int的定义不是4字节,bpf_int32就对应另 ...

  7. 剑指offer66:机器人的活动范围

    地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. 例如,当k为18时,机器人能够进入方格 ...

  8. HTML引入CSS样式的四种方法

    在HTML中引入CSS的方法主要有四种,它们分别是行内式.内嵌式.链接式和导入式. 1.行内式          行内式是在标记的style属性中设定CSS样式.这种方式没有体现出CSS的优势,不推荐 ...

  9. Polymorphic form--多态表单

    一个ruby on rails项目,用户和公司的模型都有地址. 我要创建一个地址表,包含用户和公司表的引用,比直接做下去要好一点,这回让我的数据库设计保持干净. 我的第一印象是,这似乎很难实现,外面所 ...

  10. android开发学习笔记系列(2)-android应用界面编程

    前言 本篇博客将会简要介绍andriod开发过程中的一些界面元素和编程的实现,我将大家走进安卓的XML世界,当然可能会涉及到java代码,当然本文主要是介绍XML文件的界面布局. 那么我们的XML存在 ...