《代码大全》读书笔记及随想(day02)

3.1 前期准备的重要性


准备工作的中心目标就是降低风险:一个好的项目规划者能够尽可能早地将主要的风险清除掉,以使项目的大部分工作能够尽可能平稳的进行。(感触颇深,感觉没有一个好的规划,写到中后期会有很多严重的逻辑错误)


目前,软件开发中最常见的项目风险是糟糕的需求分析和糟糕的项目计划


造成准备工作不充分的一个常见原因是,那些分配去做前期准备活动的开发人员并不具备完成这一任务的专业技能。(特别是交叉学科开发的时候,宝宝心里苦啊!)


在实现一个系统之前,你需要理解“这个系统应该做什么”,以及“它该如何做到这些”。作为技术雇员,你的一部分工作就是培训周围的非技术人员,讲解开发过程。


程序员是软件食物链的最后一环。构架师吃掉需求,设计师吃掉构架,而程序员则消化设计。


原则:发现错误的时间要尽可能接近引入该错误的时间。(所以设计阶段其实很总要,书中对食物链的比喻很贴切,错误会随着不断地被告等级的角色吞噬而放大)


在软件开发过程中,上游引入的缺陷通常比那些在下游引入的缺陷具有更广泛的影响力,这也使得早期的缺陷代价更加高昂。(但是其实很多时候这部分东西应该都不值钱而常常被忽略。)


3.2 辨明你所从事的软件的类型


需求稳定是确保超高等级的可靠性的必备条件之一。


经验规则:设计好预先对大约80%的需求做出详细说明,并给稍后再进行详细说明的额外需求分配一定的时间。


相关知识补充:


1. 迭代式开发:在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。每一次迭代都包括了定义、需求分析、设计、实现与测试。采用这种方法,开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。再通过客户的反馈来细化需求,并开始新一轮的迭代。


2.序列式开发方法也叫瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。
瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
有论文统计他是造成70%软件开发失败的原因


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值