• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
提高软件开发项目成功率的十大影响因素
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
提高软件开发项目成功率的十大影响因素
软件发布 提高软件开发项目成功率的十大影响因素
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 认证考试 >> 系统工程师 >> 提高软件开发项目成功率的十大影响因素

提高软件开发项目成功率的十大影响因素

添加时间: 2007-4-9 3:26:45  作者: 系统工程师认证参考  阅读次数:30   来源: http://www.d9soft.com

       

大多数的软件项目都是失败的。实际上,Standish group 报告表明,80% 以上的项目都是不成功的,或者是因为超过预算或延期未完或缺失功能,或者几种因素都有。此外,30% 的软件项目执行得十分糟糕以至于在完成之前就被取消了。根据我们的经验,即便使用了诸如 Java 、J2EE、XML 及 Web 服务的现代技术,软件项目都无一例外的应验了这条规律。本文概述了有助于提高软件开发项目成功率的最重要的十点因素。Standish Group 等业界领头羊也为软件项目提供了重要的成功因素文档。

项目成功的因素

1. 招募技术熟练、经验丰富的人员 — 现在的环境要比以往的任何时候都要复杂。

像WebSphere? Studio 这样的工具是很有用的,但在经验不足的员工手里结果往往最多不过得到普普通通的成效,大多数时候还是失败,这是因为他们不懂什么是好的项目 管理 以及应用新技术的最佳实践。优秀的项目经理和项目架构师或技术指导将结成项目的领导力量。他们决定了这个项目将如何开展,并且对项目最终是否成功有着巨大的影响。如果您拥有这样的人员,对待他们要好,而且要非常好。项目经理和技术指导有必要面试其他小组成员并决定谁可以加入这个小组。小组的其余成员同样需要具有平均水平以上的技能和经验。表现不好的人需要不断去关注,但他们通常总是“达不到要求”。最终,他们总是会拖小组的后腿,使得项目进展缓慢。然而,这并不意味着小组中不能有任何初级水平的人员。通常,这种成员如果获得机会就会受到更大激励,会尽力把事情做到最好。例如,在一个 20 人的小组里,可能有 2 个领导,6 个高级人员,9 个中级人员和 3 个初级人员。这样 20 人的小组可以再细分为 4 或 5 个小组,每个组有一个组长。IBM Software Services 和 IBM Global Services(IGS)有经验丰富的项目经理、项目架构师、技术指导和顾问,他们可以为您的项目提供帮助。

2. 应用前沿的、但非极端前沿的技术

《财富》杂志 500 强中的许多公司已经在软件项目中成功地应用了成熟技术(如 J2EE 和 WebSphere 产品系列),这些项目对公司的商业经营模式产生了巨大的影响。在某些情况下,应用前沿技术是有必要的,这有助于帮助您在竞争中获得显著的优势。但是,这样一种策略是需要承担风险的,在这种情况下更重要的是拥有优秀的项目人员。由于几乎没有人具有这类前沿技术方面的经验,所以获取外部专家的帮助同样重要。项目若采用极端前沿的技术或还未测试通过的技术就必须自行考虑研究计划。这也许对新兴技术中的概念进行早期验证会有所帮助。然而,与使用更成熟技术的项目相比,要用相同的方法或以相同的成本来交付基于这样一种技术的项目是不现实的。

3. 运用正确的开发流程 — 现代软件项目的特性要求使用一种螺旋式的开发流程(如 Rational 统一流程(Rational Unified Process,RUP)、某种反复式 IGS 方法甚或是灵活方法(如极端编程(eXtreme Programming)。

螺旋式的开发流程具有多个开发阶段,可以逐步地降低项目风险。在每个阶段结束时都需要决定继续还是停止。在初期阶段,原型可以用来供小组研究新技术,也可以用来研究用户界面。举例来说,RUP 方法定义了每个阶段的角色、任务和构件,这些在项目小组在考虑项目相关事宜时起到提示作用。对任何项目而言,最重要的一点并不是用哪一个流程,而是流程应用得有多好。项目经理和技术指导需要重视并懂得如何根据碰到的问题调整流程,以及如何应用最佳实践来执行流程。流程为需要做什么提供了指导和提示。另一方面,偏离流程原则太远也会导致灾难性的结果。相关文章软件开发项目的最佳实践中有详细的内容。

4. 提供适当的工具 — 任何的软件项目都需要有适合的工具来帮助小组提高生产力。

这些工具包括适当的硬件设备以及设计、编程、和测试工具。工具成本的合理性解释起来相对比较简单。例如,假设像 WebSphere Studio Application Developer 这样一个 IDE 环境可以节约一个程序员一个星期 5 个小时的时间,平均下来,这个程序员对公司而言成本为 50美元/小时。很容易看出,这样的投资回报(return on investment,ROI)是值得的。同样的道理,要保证小组使用最新的和最快的 PC 用于开发,还要为质量保证、用户确认和部署测试提供适当的测试环境。进行应用新工具或新技术的培训对于完全发挥这些工具或技术的优势是必需的。IBM 拥有一个巨大的培训资源库,包括在线及课堂课程。IBM Software Services 和 IGS 的顾问还可以提供专题讨论、咨询和现场培训。

5. 应用源文档控制管理

在项目一开始就要应用源文档控制管理(SCM)系统。不仅是源代码,所有的文档都要实施 SCM 系统的版本控制。这使得小组可以回顾项目的历史记录,并获取项目早期版本的所有相关文档,如用例、体系结构和设计文档、以及测试脚本和测试计划。我推荐您使用 企业 级的 SCM 产品,如 Rational ClearCase/ClearQuest。

6. 应用有效的评估方法

多数项目在执行时都会超出预期的时间的 25% 到 100%,但也有一些项目比较准时,与进度相差的时间不到 10%。如果不能准确地估算进度,就没有办法有效地进行计划。但是,在项目的初期阶段所估算出的用时和工作量是非常模糊的。这些估算包含了许多偶然性并且可能使估算的值要翻上一倍。软件开发是一个逐步求精的过程,估算也是如此。随着项目的向前进展,估算也会更加精确。在项目结束时即可获知项目实际的用时和工作量。多数软件工程师往往会估计不足,项目的成本自然就很可能有所增加。当估算进度时,注意不要过多地压缩进度。小组如果不能按照紧凑的进度执行,最终很可能与预期进度相差很远。

7. 将工作细化为小的目标

小目标就是大目标细化后的结果。主要的目标是一个阶段或一段增量的末尾。要达到那一点,项目需要在整个进程中都设立细化的目标。小目标一到两天的工夫就可以达到,以小时为单位。它有这样的好处:可以改善状态报告;因为可以知道一个小目标是否没有完成所以能够实现细粒度控制;因为大约每天都可以完成一个小目标所以会更好地激励员工;还有可以降低执行进度超时的风险。为了避免项目中的各种问题,建议小目标的设定从项目一开始时就着手实施。最好的办法是用电子表格记录和跟踪小目标的执行进度。由工具(如 MicroSoft? Project)生成的项目计划最好只用于更上层的任务。当然,只当前的阶段才划分多个小目标任务。后面的阶段在需要时再进行划分。尽管开发人员认为设定小目标是个麻烦,但是这个问题补偿了小组领导和单个开发人员定义他们自己的目标并分散项目 管理 和跟踪项目的工作量的能力。通常一个由技术指导定义的任务,一旦由开发人员将其细化为多个小的目标,则任务就会变得更大。有时技术指导会提供备选的、更快、更易维护的方案,在其他一些场合他也同意任务的分解并分配给任务更多的时间。尽早地实施小目标计划的工作可以避免潜在的灾难性结果的发生。

8. 以小时为单位跟踪所有的项目时间

不仅要跟踪以小时付薪的顾问和立约人所花的时间,每个项目成员所花费的时间同样很重要。这样做的好处是可以对照个人所用的时间与项目计划的时间。如果个人已经转向其他任务就要采取一些步骤。同样,实际的时间也可以对照估算的时间,估算的时间可以依次地为项目的下一个阶段或下一个项目的时间估算方法提供反馈。对小目标的全部时间的估算可以限制时限的超出,因而这些时限是可以修正的。应用小目标技术要求来自各方面的包括技术指导、小组领导和每个开发人员的时间和努力。至少每个星期,每个开发人员要以电子表格的方式提交他的工作状况,让项目主管可以在每个更上层的任务中更新完成进度的百分比。这样将使项目管理的工作量分散到其他的小组成员身上。跟踪项目时间会耗费更多的时间,但这能实现非常有效的项目管理。

9. 应对不断出现的变化

对于大多数项目,每个月项目的需求变化不会大于 5%。这些变化的产生有多方面的原因,例如没能在正确的时间提出恰当的问题、正在处理的问题发生了变化、用户改变了他们的主意或观念、商业环境发生了变化或者是市场发生了变化。功能特性蠕变都会轻易使得成本和执行进度超出预先的估计。在项目的初期阶段,项目需求中有许多缠杂不清的地方。当执行到某个阶段(通常在第二阶段的末尾)时,项目需求就必需确定下来并锁定其核心内容。一个变化的管理过程由一个所谓的“变化委员会(change board)”来执行,变化委员会由项目所涉及的每个领域的代表组成,例如业务、市场、开发、质量保证、用户文档、客户支持和项目管理等。变化委员会负责将所要做的改变交由适当的人去完成、对改变作出说明并测定来自各方的估算值的大小。在获得足够的信息后,变化委员会就可以决定接受还是拒绝这项变化。一旦接受一个变化,它将被加入到计划当中并且执行进度也要做出改变。伴随有变化的项目要比原先没有变化的项目提交得晚,但是它仍然是成功的,因为它仍然满足修正后的执行进度和股东的期望。一个项目如果在启用变化委员会之后有超过 5% 的改变,则表明项目制定得非常糟糕或者已失去了控制,最终很可能会失败。

10. 项目领导

公司的管理者委任一个执行者承担软件项目成果的责任是至关重要的。这个关键的执行者不仅要总览全局,还要获得和控制项目所需的资源来帮助和支持这个小组。同样重要的是,执行者不需要去干涉、管理小组中的一些琐碎的事。执行者要相信小组是可以委以重任的。

结束语

本文列出了帮助提高软件开发项目成功率的十点因素。遵从这些指导原则,您可以在预算和预定时间范围内更好地完成项目、保持一个高效率的小组并尽量不改变功能特性。您可以参考 Mike 的另一篇关于最佳实践的文章软件开发项目的最佳实践。

 

上下文章:

 

上一篇文章: 【软考】SQL Server连接中三个常见的错误分析 下一篇文章: 让软件项目在不断的需求变化中获得成功

相关文章:

  • 卡巴斯基全功能安全软件2009白皮书
  • Linux之父:最烦安全人士大肆宣扬软件漏洞
  • 趋势科技:杀毒软件不可能永远免费
  • 金山软件7.28毒报:匿名下载器下载木马
  • 金山软件7.15毒报:脚本下载器下载远程病毒

相关软件:

  • 光华反手机病毒软件 S60智能手机(英文版) E60
  • 光华反手机病毒软件 S80/90智能手机 C80
  • 光华反手机病毒软件 S80智能手机(英文版) E80
  • LSC企业监控软件 3.0
  • 佳宜采购管理软件 2.08 SQL网络版
  • 佳宜采购管理软件 2.08 企业版

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

认证考试分类导航

  • 微软认证
  • 计算机等级考试
  • 软件水平考试
  • 思科认证
  • Oracle认证
  • Linux认证
  • JAVA认证
  • 网络工程师
  • 系统工程师
  • 程序员

本类经典文章推荐

  • SQLServer的安全检查
  • 系统设计师资格与水平考纲 (原高级...
  • 系统分析员备考之ISO9000系列基础...
  • 开发数据库的WEB查询
  • 在builder中向Excel传递数据
  • 用Powerbuilder开发WEB数据库
  • PowerBuilder制作IE风格的图标按钮
  • PowerBuilder编程技巧四则
  • 小议数据库主键选取策略
  • 跨数据库文献检索统一平台的实现

系统工程师阅读排行

  • 数据库原理各章节简答题总结
  • 利用C++Builder6.0开发简单的车辆...
  • 跨数据库文献检索统一平台的实现
  • 用Powerbuilder开发WEB数据库
  • 系统设计师资格与水平考纲 (原高级...
  • 项目进度的黑洞——已完成90%
  • 系统分析员备考之ISO9000系列基础...
  • 小议数据库主键选取策略
  • 数据库系统工程师全真预测试卷(一...
  • 2005年上半年数据库系统工程师上午...

认证考试阅读总排行

  • 全国计算机等级考试一级模拟试题01
  • 全国计算机等级考试一级模拟试题10
  • 全国计算机等级考试一级模拟试题08
  • MCSD简介
  • 全国计算机等级考试一级考试最新模...
  • 全国计算机等级考试一级模拟试题07
  • 全国计算机等级考试一级模拟试题02
  • 全国计算机等级考试一级模拟试题06
  • 全国计算机等级考试一级模拟试题03
  • 一级(WINDOWS)试题解析-Word篇

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有