- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件开发基本原则(一)—— 策略和因素
1 概 述
时间 -- 成本 -- 质量(或特性)是评价软件项目成败的三个关键指标,这三个指标之间相互影响和制约,形成了所谓的“项目管理三角形”。要提高质量或增加特性意味着成本和时间的增加,或两者都增加;要在时间不变的前提下缩减开发成本或成本不变的前提下缩减时间则意味着质量的下降或特性的削减。
图 1-1 项目管理三角形
上述分析其实只是理论上的“理想平衡”状态。现实工作中往往出现的情形是:要么时间超过计划,要么成本超过预算,要么质量达不到要求,要么三个指标都达不到预期。
典型例子:
由于客户的压力需要尽量缩减开发时间,由于企业间的竞争和盈利压力需要尽量节约成本,因此需要一个人做两个人的工作,一个月做两个月的工作,同时压缩需求分析、设计、测试、评审和项目会议等活动。可想而知,即使软件的构建阶段能够按时完成,但做出的软件质量是难以保证的。更糟糕的还在后面:由于质量的低劣,构建阶段结束后对系统进行集成测试时,很多问题就会暴露出来:对某些需求的理解有误差,导致这部分功能要重新分析、设计、编码和测试;架构设计缺乏整体思维导致系统不同模块各自为政,产生大量重复的难以维护的代码;编码太仓促导致一大堆的Bug;沟通不畅顺导致模块接口不兼容……从而项目被带入了修改无限循环地带,即使勉强上线发布,修改还是一直持续,直至最后,没有人再敢接近这套代码,对这个项目谈虎色变。
软件开发项目有其自身规律和原则,只有遵守其原则并付诸相应的实践才可能使项目健康稳定地前进。本文讲述的是软件开发的基本原则,它是通用的,几乎适用于所有的软件开发项目。不同项目可以根据自身特点在原则的指导下定义相应的项目开发实践。
2 策略和因素
2.1 总体策略
要避免混乱低效的开发,就要求每个人能够放弃他们自己的一些坏习惯,通过采取以下四种策略实现快速开发:
1、 避免典型错误
2、 打好开发基础
3、 管理风险,避免灾难发生
4、 采用面向进度的实践
图 2.1-1 快速开发的四跟支柱
典型错误:是指一些经常被许多人使用的无效的开发实践,如:不现实的预期,缺乏计划,功能蔓延和银弹综合症等。将在第3章详细讲解。
开发基础:是指项目开发过程中管理、技术、质量保证等方面行为和活动,如:计划编制,需求管理和技术回顾等。将在第4章详细讲解
风险管理:是指对有可能影响项目的风险进行评估和控制。将在第5章讨论进度计划相关的风险。
面向进度的实践有以下三类
面向速度的实践:可以提升开发速度,帮助你更快的交付软件
面向进度风险的实践:可以降低计划风险,帮助你的项目平稳推进
面向可视化的实践:可以提高进程的可视化程度,帮助你掌握项目动态
图 2.1-2 面向进度的实践
图2.1-1所示的前三根柱子为可能的最佳进度提供了最重要的支撑,虽然可能不是最理想的,但却是最需要的。也就是说,即使不借助于面向进度的实践方法,也可能实现较优化的项目进度;但是,如果仅仅依赖面向进度的实践却不可以支撑可能的最佳进度计划。
图 2.1-3 仅仅依赖面向进度的实践不足以支撑最佳进度计划
2.2 软件开发的四维
每个软件项目都有四个重要的维:
人员:完成任务要么快,要么慢
过程:优化人员的工作效率,或者浪费人员的时间
产品:以自我完善的形式定义,或者阻碍人员达到最好效果的形式定义
技术:促进或者阻碍开发的实现
图 2.2-1 开发速度的四维
2.2.1 人员
研究数据:
人件极大地影响着生产效率,任何关注提高生产效率的组织首先必须有一套良好的人员激励、团队合作、员工选择及培训机制
发挥人员最大潜能,缩短项目周期的方法:
1、 项目成员的选择
五个原则:
用更少更好的人
使任务与人员的技能和动机相匹配
帮助人员自我实现,而不是强制地把他推到他最有经验或最需要他的岗位上
人员选择应强调人员之间的互补与协调性
尽快排除或替换不称职的人员
2、 团队组织结构
人员的组织方式对人员的工作效率有很大影响,调整项目团队以使之与项目规模、产品特点以及进度目标相匹配。特定的软件项目也可以从适宜的专门组织中受益。
3、 人员激励
人员激励能激发人的动力,从而付出额外的努力工作;它适用于不同组织、不同项目和不同人员。人员激励是达成快速开发的最具潜力方法
2.2.2 过程
研究数据:
Hughes Aircraft、Lockheed、Motorola、NASA、Raytheon和Xerox等组织通过对开发过程的改进将产品上市时间缩短了一半,降低成本、减少错误为原来的1/3~1/10。
过程是指软件开发生命周期中定义的一系列工作流程和活动的集合。可以概括为以下三类:
基本过程:包括获取过程、供应过程、开发过程、运作过程、维护过程和管理过程
支持过程:包括文档过程、配置管理过程、质量保证过程、验证过程、确认过程
文档评论(0)