某金融客户 10个人月 14个 80%完全重新开发
某保险客户 16个人月 18个 完全重新开发
从表一中可以看出,模块的代码行越长,开发周期就越长,对同一开发工具而言基本是一个线形关系,但其中也要考虑代码重用问题,比如一个模块代码很长,但是可能包含了很多公用函数,那么在估算时就应适当减少代码行数量,表中会议管理就是个例子,这个模块的代码行超过一万行,但其中公共函数很多,去除此因素,真正的代码行在9000行左右。
表二是软件项目的实际开发周期(不考虑系统实施),从普通意义上说软件项目中包含的功能模块越多、越复杂,或者说软件越大开发周期增长的就越快,这个时间绝不是模块开发时间的简单叠加,因为模块功能数量的增加直接带来了软模块间相互关联度、复杂度的成倍增加,这就直接导致了在需求、设计等阶段需要花费更多的时间,这比单独考虑一个模块复杂的多。在表二中随着模块数量增加,开发周期增加不是特别明显,这是因为产品化程度高所引起的,由于相当数量的模块可以完全重用,实际开发量大大减少,最后一个例子完全重新开发,开发周期就长的多。
在实际进行软件开发周期估算的时候,软件规模肯定是首先考虑的因素,根据我们上面所讨论的情况,在考虑软件规模时一定要去除可重用的部分,由于当今软件在设计上很重视这点,所以这部分会占相当的比重。另外软件功能之间的关联所造成的复杂性必须足够重视,这样在估算上就不会产生重大偏差。
3.2估算与项目风险
任何一个项目都或多或少存在风险,软件项目开发过程中也避免不了这种情况而且有这类项目自己的特点,最常见的风险有以下几种:技术风险,项目技术难度很大,花费的时间超过原先的估计;客户风险,客户需求不定,增加需求,组织协调不畅;人员风险,开发人员突然更换、离职;管理风险,项目经理管理不善、决策失误。对于风险控制,在项目管理中通常是提前做风险分析和预测,制定风险应对措施,这样在风险真的来临时不至于措手不及,提高整个项目的可控性。
软件项目的潜在风险对于开发周期的影响在很多情况下是非常大的,当然好的项目控制会最大限度的减少这种影响,绝对避免是不可能的,所以在开发周期估算时项目风险应该适当考虑,尤其是技术风险和客户风险。
技术风险主要来自于软件本身的技术难度,如果对于一套成熟的产品,定制开发的技术风险相对非常小,因为重要的技术已经成型,客户也很少有新的能带来高难度技术问题的需求,这种风险可以不予考虑。但是对于完全重新开发的项目,或是研发类的项目,技术风险必须特别重视,其中应该考虑的细节主要包括下面几个。
开发平台,是否能适合本项目所涉及的软件开发、能否满足最终的需求,平台的错误选择将导致庞大的开发工作量,即便满足了用户需求也可能造成系统效率低下,扩展性差的致命问题,软件可能会很快被淘汰。功能实现难度,在切实了解需求的基础上要仔细分析采用的开发工具能否实现其中的难点,是否会耗费大量时间。
此文章共有5页 上一页 1 2 3 4 5 下一页
文章来源:中国项目管理资源网
|