软件开发基本原则(二)—— 典型错误
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
大多数典型错误其表面都具有诱惑性,给人们一种诱人的前景,但通常却不能产生期望的结果。 “想挽救进度已经落后的项目吗?---- 给项目补充更多人员!” 下面分别按照人员、过程、产品和技术四个维度列出36个典型错误。 人 员
对人员不够关心和重视;过度的进度压力;缺乏激励;过分夸张的激励等。
人员能力欠佳,工作效率低,甚至做多错多。
不对有问题的人员采取措施是项目组成员对领导最常见的抱怨。
强调个人英雄主义会导致发生额外的风险,也会削弱在软件开发过程中多个角色的合作。
盲目地在项目后期加入人手等于火上浇油。
拥有安静、隐蔽办公环境的人员比工作在嘈杂、拥挤环境中的人员往往会有更好的工作业绩表现。
主要原因是缺乏沟通。这种摩擦耗费时间,它会转移客户和开发人员双方对项目工作的注意力。
过高的期望值和主观的不切实际的设想。是导致开发人员和客户或项目经理之间的摩擦常见原因之一。
软件开发项目的许都方面都需要高层的支持,包括实际的计划、变更控制以及新型开发方法的采用等。缺乏有效的高层支持事实上注定了项目的失败。
软件开发中所有主要人员必须齐心协力专注于项目,包括高层支持者、项目领导、项目成员、市场人员、最终用户、客户和任何项目介入者。
没有用户早期介入的项目充满需求误解的风险,易受项目后期功能蔓延的威胁。
“政治家”型项目强调“管理至上”,主要精力集中在他们与经理的关系上。将政治凌驾于结果之上对软件项目会造成极大伤害。
闭上眼睛毫无理由地希望某事将像想象那样运作。很多软件开发问题都是由于充满想象造成的。 想象示例:
过 程
定制过于乐观的项目计划相当于自己为项目失败画出了底线,导致缩短分析、设计等关键性前期开发活动;同时也向开发人员施加了额外压力,会长期对开发人员的自信心和生产率造成巨大伤害。
如果你不主动管理风险,风险随时会来找你,打乱你的开发计划。
如果不对承包商加以认真管理,交付可能延期,并且质量难以保证。
没有计划的项目就像飘荡在海洋中的小船,没人知道会飘到哪里。
很多项目组定制了计划,但遇到了麻烦时就放弃计划。项目失败的原因不是在于放弃计划本身,而是不能及时修订计划制定替代计划,并一头栽进编码和问题处理中。
由于花在审批、预算等前期工作的时间过长,或需求无限循环等原因,导致压缩开发计划。项目前期节省几周或几个月时间比将开发计划压缩同样时间来得更容易、更廉价,风险也更少。
研究数据: 前期被跳过的活动或工作通常在后期会以10倍到100倍的代价来完成。如果一项工作在项目初期需要5小时完成,那么在项目后期你至少需要50小时才能完成它。 (Fagan 1976,Boehm and Papaccio 1988)
前期活动不符合要求的一个特殊情况就是设计低劣。高压环境导致设计缺乏周密思考往往导致设计低劣。
研究数据: 项目前期砍掉1天的质量保证活动,到项目后期就需要3到10天的处理代价。(Jones 1994)
缺少管理控制点就难以对项目的阶段和状态进行跟踪,因此不能知道项目是否按正常轨道前进。
在构建未完全锁定时,进行过早的集成或额外的集成不利于产品,它仅仅是在浪费时间,延长进度。
训、公司和部门会议,技术评审会议等活动在项目估算时通常被遗漏。
当进度落后时不重新检查任务和调整计划,而是简单地决定把进度赶上来。 另一种情况是,当产品出现变更却没有做相应的计划调整。
没有足够的需求基础和清晰的架构设计而进行“边编码边修改”造成太多重复工作和返工,这样的做法使项目大多以失败告终。
产 品
项目的产品要求要求比实际需求多得多的产品特性或复杂功能,却又不给进度计划分配足够的时间。
在整个开发过程中,项目平均会有25%的需求变更,对软件计划至少有25%的影响。如果任由客户不断提出新需求,项目就会一直都做不完。
开发人员着迷于新技术,有时渴望在自己的产品中使用这些技术,而不管那些技术是否适合或是否会对系统整体造成破坏。
管理者批准进度落后的项目顺延,但同时又给这个项目加入新任务。
软件开发进度是完全有理由可以预测的,而软件研究进度甚至理论上都是不可预知的,不能采用像软件研究一样的工作方式引导项目开发。
技 术
过于相信某些技术宣传(某种开发过程、某种程序设计方法、某种开发语言),缺少在特定环境下使用这些工具的必要信息。当团队寄望利用他们来解决进度问题时,不可避免会失败的。
无论采用多少新工具或方法,以及这些工具或方法有多好,他们很少能够大幅度提高生产率。软件开发由多个任务组成,特定的工具或方法只会可能提高特定任务的生产效率。同时,它们所带来的效率常常被学习它们所花费的时间抵消了。
在项目中间更换工具时,伴随使用新工具而带来的人员学习和掌握的过程、重复的工作、不可避免的错误等会彻底抵消它所带来的益处。
缺乏自动的源代码控制容易造成版本冲突、历时版本丢失、更新丢失等一系列问题,并浪费大量的时间处理这些问题。 该文章在 2012/4/9 10:31:56 编辑过 |
关键字查询
相关文章
正在查询... |