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

①项目用时估计

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

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

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

②产品的发布与更新

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

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

③承诺兑现的重要性

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

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

风险管理,未雨绸缪——《代码之殇》读书笔记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. Eclipse删除switch workspace下多余的workspace

    第一步:修改org.eclipse.ui.ide.prefs 文件 打开Eclipse目录的\configuration\.settings目录,找到org.eclipse.ui.ide.prefs ...

  2. asp.net页面传值方法汇总

    1. Get(即使用QueryString显式传递)     方式:在url后面跟参数.     特点:简单.方便.     缺点:字符串长度最长为255个字符:数据泄漏在url中.     适用数据 ...

  3. j2ee高级开发技术课程第一周

    一.课程目标 这学期开始了J2EE高级开发技术这门课,在此之前我学习了javaSE,为这门课的学习打下了一定的基础.到这学期的结束我希望我能熟悉javaee,能开发企业级应用,对开发轻量级企业应用的主 ...

  4. java面试⑦高级部分

    2.6.2说一下Linux下面的一些常用命令 常用: pwd 获取当前路径 cd 跳转到目录 su -u 切换到管理员 ls 列举目录 文件操作命令: 文件 tail 查看 rm -rf 删除 vim ...

  5. BEA-141150 - An error occurred while preparing application component uri of application application with HTTP response responseCode: message

    网上查询的 Cause:This is either because the resource it self is not available on the administration serve ...

  6. [转]iCheck表单美化插件使用方法详解(含参数、事件等)

    本文转自:http://www.exp99.com/jswz/f2e/1408696007_34.html iCheck   特色: 1.在不同浏览器(包括ie6+)和设备上都有相同的表现 — 包括 ...

  7. Ionic项目中如何使用Native Camera

    本文介绍如何在ionic项目中使用设备的camera. Ionic版本:v3.2.0 / 2017-05-10 / MIT Licensed / Release Notes ============= ...

  8. Deep Q-Network 学习笔记(三)—— 改进①:nature dqn

    由于 Q 值与 next Q 使用同一个网络时,是在一边更新一边学习,会不稳定. 所以,这个算法其实就是将神经网络拆分成 2 个,一个 Q 网络,用于同步更新 Q 值,另一个是 target 网络,用 ...

  9. eclipse/myEclipse 代码提示和快捷键

    一.设置自动提示 设置eclipse/myEclipse代码提示可以方便开发者,不用在记住拉杂的单词,只用打出首字母,就会出现提示代码菜单. 1.菜单window->Preferences-&g ...

  10. [PHP] 深入理解PHP内核:变量及数据类型

    1.现实生活中我们会找一个小箱子来存放物品,一来显得不那么凌乱,二来方便以后找到.计算机也是这个道理,我们需要先在内存中找一块区域,规定用它来存放数据,并起一个好记的名字,方便以后查找.这块区域就是“ ...