论文部分内容阅读
当前,为数众多的中小型软件企业在激烈的市场竞争中举步维艰。大量的软件开发项目由于客户的需求频繁变更而陷入项目无法按时完工,成本不断增加的窘境中。原因是,小型软件企业在市场竞争中的弱势地位,致使为了拿到项目往往做出许多不切实际的承诺。并且由于新兴行业在快速发展变化,在项目进行的过程中还需要面对由于上述原因引发的需求变动。由于小型企业的人力资源和物质资源都非常有限,一旦在项目进行过程中出现错误需要修正乃至返工,那么影响到的就绝不仅仅是该项目本身,严重时甚至会影响到整个企业资金链的安全,所以小型软件企业在进行项目开发的时候就更需要小心翼翼地控制开发周期和开发成本。 但是,由于软件项目管理和其它的项目管理相比有相当的特殊性: 首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。 其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。所以在软件项目管理的实际工作中,在面临诸多不确定因素的情况下,标准的项目管理方法不再完全适用。软件项目管理需要很多特别的资源去处理不确定的事务,以便在项目实施的进程中应对需求的不断变化。需要更有弹性的项目管理和反应时间,采用适当的技术手段和灵活的项目管理手段将是软件项目管理的最佳方法。 而软件项目管理从某种意义上讲,就是风险管理。软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。所谓风险,就是指可能给项目带来损失的不确定因素。对软件项目的诸多风险因素来说,需求的不确定性导致项目失败的比例是非常大的。尤其在为行业用户开发针对其具体业务的软件项目时,由于小型企业在面对大客户的讨价还价能力不足,往往只能被动地、反复地按照客户的要求做出改动。这样的需求变化会导致系统架构、项目工期和成本的失控。从根本上说,需求来源于用户的“需要”和“要求”,这些“需要”和“要求”被分析、整理、确认后形成完整的文档,该文档详细地说明了产品“应当”实现的功能。由于需求分析的参与人员、业务模式、投资、时间等客观因素的影响和需求本身具有主观性和可描述性差的特点,因此,需求分析工作往往面临着一些潜在的风险。所以,对需求风险的管理是本文研究的主要问题。 本文以小型企业在面对一个需求极度不确定的软件项目为例,主要从项目管理角度出发,结合软件工程的一些方法,并借鉴部分他人的研究成果,总结分析了失败的教训,而后研究并提出了相应的解决办法。力图通过理论和实践相结合,着眼于项目沟通管理,使客户需求能够更有效、更及时地反映到开发工作中,从而找到在多种不确定因素的影响下能够最大限度保证项目成功实施的一整套措施、办法和程序并进一步归纳总结出适合此类情况的软件项目管理办法。 首先,针对导致项目一期工程失败的典型问题归纳分析。发现导致工期延误的根本原因就是客户的需求更改。在需求分析完成并由用户签字认可后,在编码和测试的过程中由于种种原因客户发现系统所实现的功能不能满足他们的实际需要,于是提出修改功能的要求。而功能不能满足实际需要主要是由于开发人员对于业务需求了解并不清晰,这里面主要原因在于使用者与开发者沟通不充分及市场变化带来的系统需求变更。提出需要解决的首要问题是用户需求不断变更,导致工期不断延长,功能不断修改。而且除了各功能模块本身的修改外,由于改动范围超过原来系统设计架构时所考虑的要求,所以最终完成的整个系统架构都已经与最初的定义大不相同。 实际上,需求的变化是软件项目不可避免的事实,问题是我们该怎样对待它。项目范围和需求的变化本身并没有错。也就是说,在项目的进行过程中改变项目范围和需求并不是一件坏事。事实上,在很多情况下,这还是一件好事。首先,客户通常都不能在项目开始之前明确所有的需求。其次,即使他们能够做到这一点,整个的商业环境也是在不断变化的,所以项目需求也可能会随之而发生变化。如果不能够适应变化,项目的最终价值可能会受到影响,或者可能会使项目失去价值。本文所要探讨的就是如何保证需求管理的顺利实施。具体研究方法是:从项目管理出发并结合软件工程的一些理论,从二期工程项目管理改进的实践出发。初步探讨了如何加强与用户的沟通,以降低需求变更带来的风险;如何尽可能缩短工期,以降低市场带来的风险。在此基础上针对案例项目分析所得出的问题给出了几方面比较具体的解决意见。为将来对软件项目管理继续深入研究和实践打下了一个基础。 本文通过对案例项目的研究,认为真正的有效的项目管理是要靠一个有效的管理体系来支撑的。而现代软件项目管理应当是需求驱动的项目管理(RDPM-Requirement Driven Project Management)。用户的需求是软件开发的源泉和归宿。需求代表了用户期待解决的问题,而软件项目开发的所有活动都是为此目标服务的,指出了需求驱动的项目管理的必要性。 本文研究采用的是理论→实际→理论的方法。首先把企业战略、管理学原理的部分知识结合到项目管理的经典理论中,并参考近年关于软件项目管理方面的其它研究成果,再以一个具体的项目来分析实际发生的问题,然后,从实践经验出发研究总结出几种有效的管理手段和方法。最后,总结理论和实践,提出灵活的软件项目管理是应该由需求驱动的这一结论,以此理论指导软件项目管理工作就是本文的创新之处。