中小型软件项目开发的管理方法

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012年第12期

/目前,有些企业只考虑如何降低成本,认为中小型软件项目开发不需要严格的管理。事实恰恰相反,中小型软件项目不仅需要进行项目管理,而且还应结合项目的特点,采取适合项目要求的管理方法。

中小型软件项目开发中存在的问题

与大型软件项目相比,中小型软件项目具有灵活性高、项目功能和开发人员较少、开发周期较短的特点。这些特点使得软件项目看起来较简单,容易成功实现,因而企业往往忽视了对项目进行科学管理,在项目开发中出现一些问题。

1.项目管理中的问题

(1

)项目进度难以估计。因将要开发的项目较小,企业对其没有足够的认识,无法确定项目的规模及开发各阶段需要的时间,更无法制定出能切实起到指导和控制项目进度作用的日程表,结果实际完成时间与估计完成时间有较大差别,致使项目开发陷入困境。

(2)项目组成员职责划分不明确。因参与开发的项目组成员较少,各成员职责划分不明确,所有成员都把主要精力放在编码上,由此造成两个问题:一是在项目开发中许多其他工作没有专人负责,包括开发环境的选择、相关工具的选择和有效应用、版本控制、变更管理和缺陷管理等。二是在项目开发过程中,许多工作产生“扯皮”

现象,如对测试中发现的缺陷相互推诿。2.项目开发过程中的问题

(1)项目需求分析不充分。对软件开发的需求分析不重视,不能详尽描述其具体功能,不了解用户的重要需求和新需求。在未充分进行需求分析的情况下,就开始项目设计和编码,导致在项目开发过程中不断有新的用户需求出现,致使项目开发没有明确的方向,甚至用户不认可开发出的产品。

(2)设计过程不规范。开发人员少,意味着不同人员在程序之间交互、接口相对少;开发周期短,意味着同样几个人员从头到尾负责一个项目。这两者虽然是小项目的优势,但是却让人容易犯错误。比如,在开发过程中,往往是几个人粗略讨论基本的数据结构、函数接口,

未建立正式的文档。缺少文档资料或文档资料不规范,是中小型软件项目管理普遍存在的问题。这种问题会造成危险:一是有的人员可能会对软件的接口、结构在理解上有偏差,而这种偏差可能会造成以后返工。二是因在讨论时忽略了某些情况,等大家都按当时的分工完成各自的工作后,才发现各个模块组合起来却形不成一个完整的系统。其原因在于系统设计不充分,

没有一个负责协调的人员监控整个开发过程。

三是一旦有人中途退出开发小组,新来的人员就难以理解别人做好的代码,索性自己从头做起。四是未建立相关文档,日后软件维护和版本升级都较困难。

(3)软件测试过程敷衍了事。在软件项目开发过程中,不经过单元测试而直接进入系统测试的现象屡有发生,其原因是虽然每个模块相对较简单,但是为了测试一个模块需要建立测试程序。比如,

测试一个函数是否正确,应该用测试数据调用该函数,需要编写测试数据,而有的开发人员嫌麻烦,认为其他模块很快就出来了,直接用真正的数据运行几次即可。

其实这种方法的效率较低,将大量时间用在了模块上的一个错误定位。另外,由于这种测试不完全,因此某些边界情况容易被忽视。

(4)软件缺陷无法控制。软件项目开发中容易产生项目分析、设计和编码等各阶段的缺陷。因对各个阶段缺少必要的测试、

复查和审查,导致产生一些缺陷。在修改缺陷过程中还不断产生新的缺陷,使缺陷很难弥补、产品很难集成,浪费了大量的时间和精力。

以上问题常常导致项目工期延长、资金投入增加,引起用户的不满,甚至造成项目开发失败。

中小型软件项目开发的管理方法

软件项目管理是为了使该项目能够按照预定的成本、

进度、质量顺利完成,通过计划、组织、控制等,合理配置和使用各种资源,对成本、人员、进度、质量、风险等进行分析和管理,以达到既定目标的过程。软件项目管理包括收集项目信息和计划、成本、质量、配置、开发人员等管理。规模较大的软件项目开发主要分为六个阶段:需求分析、

概要设计、详细设计、编码、测试、安装、维中小型软件项目开发的管理方法

■广东东莞/潘玉茹

61

2012年第12期

/护。其中对软件配置、软件质量、软件风险、开发人员的管理贯穿于整个开发过程。

俗话说:“多大的脚穿多大的鞋。”软件项目管理也是如此。不能将大型软件开发项目的管理方法生搬硬套到中小型软件项目上,这样可能适得其反。从另一个角度看,项目的大与小并没有本质的区别,许多方法是共通的。中小型软件开发项目具有规模小、机制灵活的特点,这一特点可使企业建立良好的沟通机制及节省沟通成本,提高工作效率,有利于开发管理工作。如果企业再采用适当的项目管理方法和工具,如RUP(统一软件开发过程),将大大提高项目开发的成功率。

加强中小型软件项目开发管理,应抓住几个关键点:1.进度管理

(1

)任务、人力资源、时间等分配应与进度相协调。(2)任务分解要合理,做到并行化。

(3)对项目进度控制应细致,在执行中审查应严格。(4)针对项目开发中不容易控制的部分,如技术难点、来自用户的时间拖延,应做好充分准备。

(5)应为测试、缺陷修正和预期的需求变更,预留足够的时间。如有必要,还应采用协同进度管理工具。

2.需求管理

软件开发项目的需求阶段最重要,而需求管理是整个项目管理的重中之重。需求管理通常包括两个方面:

(1)需求收集和分析。软件开发项目的主要风险来自需求不明确。因用户与软件开发团队的背景不同,对同一问题的理解自然存在差异。

这些差异如果不能在需求的最初阶段尽量弥合,那么必然导致需求增加、需求更改。因此,在需求分析阶段,分析人员应与用户进行沟通,充分了解用户的目标和工作过程,从用户的角度出发,帮助用户将模糊的需求清晰化,将简略的需求明细化、

完善化,将混乱的需求逻辑化、条理化。(2)需求变更。任何项目开发都无法承受频繁的需求变更、需求增加。因此,除了在需求收集阶段应尽可能将需求细化外,还应在适当阶段尽量“冻结”需求。企业的销售人员往往倾向于接受用户模糊的要求,并暗示用户“什么都好商量”。这往往在项目后期甚至项目完成后又频繁更改需求,甚至导致项目开发周期延长、开支严重超出预算埋下隐患。因此,

企业应在需求细化的后期阶段,对需求“冻结”、后期需求增加的费用支付方式与用户达成共识。

3.设计过程管理

中小型软件开发项目的设计阶段可分为三个步骤:(1)架构设计。这一步骤的主要任务是设计出各功能相对独立的模块,并根据模块化设计思想、编程环境的要求和需求分析的结果,建立整个系统的组成架构。

(2)概要设计。这一步骤的主要任务是设计出每个功能模块的细化子模块(设计元素),各设计元素完成相对

独立的特定功能,并与其他设计元素之间的关系简单化。

(3)详细设计。这一步骤的主要任务是对每个设计元素组成不佳的语言文字、流程图描述、功能构件的划分和数据结构进行定义。

企业应关注中小型软件开发项目设计的灵活性。在实际的项目开发中,即使在需求阶段花再多的精力,也无法完全避免需求变更。因此,在架构设计中采用灵活的设计方法至关重要。项目设计人员可借鉴RUP中的体系结构思想,利用基于独立的、可替换的、模块化组件的体系结构管理复杂性,提高重用率,构建有弹性、能适应变化、易于理解、有助于重用的体系结构。

4.编码和测试管理

进入编码阶段后,可能会发现前面的分析或设计阶段的某些错误,这时应返回到前面的阶段进行必要的修改。在测试阶段,即使是小项目,也应进行严格的测试。单元测试是软件测试的第一步,不能因其是小型项目而忽视这一过程。事实上单元测试至少可带来三点好处:减少测试工作的复杂性、易于确定错误的位置、多个模块同时进行测试,从而缩短整个测试周期。

5.项目开发团队管理

软件开发项目应分工明确、因人施用。一是配备项目经理,负责用户协调、项目计划及其跟踪等工作;二是要有人负责需求交流、

架构分析等工作;三是要有人负责测试工作;四是要有人负责配置变更工作。这些人员可兼任多职,但分工要明确。同时发挥他们沟通灵活、方便的特点,有人主导,有人配合,做到各种信息在团队内部的充分共享。

在项目实施后,应保持团队稳定,避免人员变更给团队协作带来混乱。

特别是项目负责人,在既进行项目的日常管理,又参与编程的情况下,应合理运用时间,做好以下工作:

(1

)项目协调。这是项目协调负责人的主要工作,应随时监控开发人员的工作,包括内容是否与要求发生偏差、进度是否滞后等。项目负责人只有在完成这些工作后,才能参与编程。

(2)为每个开发人员制定明确的任务书。应使每个开发人员明确自己的任务,这些任务应采用文档表示。

(3)让开发人员都熟悉设计模型。让每个开发人员都清楚自己所做的工作在整个系统中处于什么地位,寻找设计模型中的漏洞,避免各人的代码编写完后又修改。

6.文档管理

在软件项目开发中,必须建立文档,否则后期的修改、维护、升级都会异常困难;对文档的要求应“适度”,够用即可。建立文档应便于后续工作,不应把大量精力投入过于繁琐的文档编写。此外,还应注意文档的版本控制,保障文档和代码的一致性。■

(作者单位:东莞理工学院城市学院)

编辑

冯学恭

管理在线GU A N L I ZA I XI A N

62

相关文档
最新文档