提高软件开发项目成功率的十大影响因素
2008-04-09 04:13:23来源:互联网 阅读 ()
项目成功的因素
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)生成的项目计划最好只用于更上层的任务。当然,只当前的阶段才划分多个小目标任务。后面的阶段在需要时再进行划分。尽管开发人员认为设定小目标是个麻烦,但是这个问题补偿了小组领导和单个开发人员定义他们自己的目标并分散项目管理和跟踪项目的工作量的能力。通常一个由技术指导定义的任务,一旦由开发人员将其细化为多个小的目标,则任务就会变得更大。有时技术指导会提供备选的、更快、更易维护的方案,在其他一些场合他也同意任务的分解并分配给任务更多的时间。尽早地实施小目标计划的工作可以避免潜在的灾难性结果的发生。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:英国工程造价管理分析
下一篇:浅谈房地产项目的风险管理
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash