第1章绪论
1.1研究意义
进入二十一世纪,随着信息技术的迅猛发展,软件外包市场规模越来越大,带动软件承包业的快速发展。我国正在成为国际软件发包商关注的焦点。调查发现,2004年没有外包服务胸买方接受我国外包信息工业领域的业务,如今已有6%的公司向我国外包此类业务。2004年,只有8%的受访者表示计划在近3至5年内向我国外包软件业务,2005年该比例增加到40%。为了更好地适应软件分包商的要求,从事软件承包业务的企业逐渐改变过去只关注软件质量的现状,积极将软件承包项目的管理活动引入开发过程中,从而实现对软件质量、交付时间和成本的全面管理。通过发展软件承包产业,我国的软件产业将逐渐地告别手工作坊式的开发时代,进入工程化、规模化的开发领域。
通过对成功的软件承包项目管理研究不难发现,有效的、动态的事前计划是承包项目成功的一个保障。但目前国内承接软件开发业务的公司,多数在计划管理方面存在这样或那样的问题:(1)为了节省时间,不进行计划就直接进入承包项目的开发,结果越做越错、越做距离客户的要求越远;(2)项目的目标不清晰,不知道项目到底应该完成哪些工作、应该做成什么样,导致客户对最终的成果非常不满意;(3)项目团队的组织机构与职责不完善,缺乏协调与沟通的机制,无法进行有效的团队配合,项目开发中出现混乱,最终影响项目的质量和工期;(4)项目组没有对工作任务进行分解或分解不够合理,导致项目估计严重不准,无法进行合理的资源配置,影响到项目的开发进度;(5)风险分析和控制不足,不能进行有效的风险预防与控制,使项目中的风险演变为问题;(6)将计划视为一成不变的定律,一旦制订就不再调整。随着项目的进行,计划已经无法发挥对实际的指导作用。正是由于上述种种计划中的问题,最终导致了大批软件承包项目的失败。
..........................
1.2研究内容与局限
1.2.1研究内容
本文拟结合软件承包项目管理的相关理论,从我国软件承包项目计划管理的分析入手,分析我国软件承包项目计划管理的现状与问题,找出问题产生的原因,提出具有针对性的解决问题的对策和建议。论文结构框架由五部分组成:
第一章主要介绍选题的背景、研究现状及意义、研究内容与局限。简要分析加强我国软件开发企业承包项目计划管理的必要性,阐述了国内外专家学者对软件承包项目计划管理的相关理论研究。
第二章是对软件承包项目计划管理的理论进行描述,介绍软件承包项目计划管理的内容、实现方法与技术等内容,为后续的实证研究打下基础。
第三章主要介绍国际软件外包业务的巨大市场空间,及为了扩大市场份额我国软件企业需要进行的反思,查找自身在承包项目计划管理方面存在的不足。
第四章介绍DR集团的整体情况、项目管理及计划管理的现状。
第五章分析DR集团在计划管理方面存在的主要问题:项目目标不够清晰;进度和成本估计不准确;人员风险不能有效识别;资源不能被准确计划和落实;环境变化时计划不能随之改变。
第六章针对第5章识别出计划管理方面的问题,提出改善对策。
.........................
第2章软件承包项目计划管理概述
2.1承包项目管理概述
2.1.1软件承包项目概念和特点
软件承包项目是指具备软件开发能力的企业从客户(发包方)那里承接的软件开发工作,这些开发工作通常只是一个完整解决方案的一部分。发包方通常不是最终用户而是一个具备高端设计能力的公司,能为最终用户设计一套相对完整的解决方案。出于节省成本、保证整体进度等各方面因素的考虑,发包方会将其设计的解决方案尽分解为几个相对独立的部分,分别委托给不同的软件承包公司进行开发和制作。在软件承包项目的开发过程中,发包方会要求随时参与项目的管理。
软件产品与其他产业的产品不同,它是无形的、不具备没有物理属性。对于这种看不见、摸不着的产品,人们通常难以理解和驾驭。但它的生产过程确实是将思想、概念、算法、流程、组织、效率、优化等操作和管理思想融合在一起了。与工程承包项目相比,软件承包项目具有以下特点:
第一,可见性差。用户需求不可见,在许多情况下,用户一开始给不出明确的想法、提不出确切的要求,说不清究竟需要的是什么,更无法通过图纸画出来;工程项目的用户需求则可以通过图纸展现出来,完全是可视的。软件承包项目使用的主要资源是开发人员的脑力,完全是无法量化、不可见的;工程项目则是借助于一些特定的工具和设备,将各种原材料组合在一起使之具备一些新的功能。软件承包项目的成果本身也是不可见的,通常是装载在光盘等载体中的一些程序,将这些程序安装到一些特定的硬件或设备上才能感受到软件承包项目的成果。软件承包项目的质量难以用简单的尺度加以度量,软件产品在验收时需要将程序安装在硬件上通过运行来检验,而工程产品则可以通过一些检测仪器来评定好坏。软件承包项目与其它工程项目的不同还体现在项目的风险受环境和原材料的影响很小,而不准确的需求则对其影响很大。
第二,工作任务仅是某个大项目的一部分。软件承包项目的委托方凭借自己的实力通常能从最终客户那里获得一个完整的大项目,但自己没有独自制作完成的能力或为追求更高的利润,而将其中的一部分委托给下游的、成本低的软件公司来做。对于实力较差或合作时间较短的承包公司,仅能从发包方那里拿到一些技术要求较低的低端工作,实力较强或已经获得客户信任的承包公司则可承接到一些难度较大的高端任务。作为某个大项目的一部分,为了保证大项目的上线时间,就需要向前推算软件承包项目的交付时间。对于有承接性的项目之间更要严格保证时间,否则将影响到最终客户的软件系统上线计划。质量方面需要按照大项目的标准来保证,并且要预留出与大项目的接口;成本也同样要在大项目的预算内进行控制。与此相比,工程承包项目则相对独立。
............................
2.2软件承包项目计划管理流程
软件承包项目计划管理是软件开发和管理工作的第一步,是决定项目能否成功实施的关键。软件项目计划管理的过程通常包括计划制定、计划执行、计划监控与变更控制等4个环节。
2.2.1计划的制定
项目管理计划记录了各子过程规划的成果,确定了项目实施、项目监控和项目收尾的方法,并可通过综合变更控制过程进行更新和修订。项目计划通常是由多个子计划和其他事项构成的,如表2.1所示。每个分项计划和事项说明的详细程度都要满足具体项目的需要。
上述项目管理的各分项计划各自都有一个相对独立的管理过程:软件项目范围管理过程、软件项目时间管理过程、软件项目成本管理过程、软件项目质量管理过程、软件项目人力资源管理过程、软件项目沟通管理过程、软件项目风险管理过程、软件项目采购管理过程。
.........................
第3章我国软件承包行业发展现状................22
3.12基本特征与发展模式..............22
3.2发展前景与趋势.............24
第4章DR集团软件承包项目计効管理的现状..............27
4.1DR集团概况..............27
4.1.1DR集团组织机构............27
第5章DR集团公司软件承包项目计划管理的问题..............39
5.1计划管理的问题.................39
5.1.1成本估计不准确且缺乏有效的监控............39
第5章DR集团软件承包项目计划管理的问题
5.1计划管理的问题
DR集团虽然是目前国内最大的从事软件承包业务的企业,且是最早通过CMMI5级认证的企业,在软件承包项目计划方面同样存在一些问题,包括目标不够清晰、成本和进度估计不够准确、资源不能有效计划和使用等。本文重点选取其中的几个问题进行说明。
在DR集团的软件承包项目中,相关的管理部门如财务部门发人力资源部门通常要求项目经理做出项目的估算或预算,并以此为称准进行项目的控制和考核。但在实际工作中,由于软件承包项目具有一次性和不确定性的特点,及项目经理自身的经验和水平的限制,使项目估算或预算的准确性很差,一旦有变化,项目经理就追加项目预算。预算频频变更,最终失去了项目的控制标准,成本控制也流于形式。等到项目结束时,实际成本和初始计划已经大相径庭。此外,一些项目缺乏成本绩效的分析和跟踪,缺乏将成本数据和工作量联系的对比数据。项目成本管理中,通常将预算和实际数值进行对比,没有将预算、实际成本和工作量、进度联系起来,考虑实际成本和工作量是否匹配、价值成本等问题。例如DR在一个项目成本花费到总预算的1/3,而进度却是预汁进度的1/4,工作量是总工作量的1/5,这就说明项目成本控制存在问题。如果不采联措施,照此下去,项目一定会超出预算。
...........................
第6章DR集团软件承包项目计划管理问题的对策
6.1进行有效的需求管理
6.1.1对需求文档进行版本控制
软件需求在整个软件系统开发中是至关重要的,正是由于它的重要性,一般来说,需求描述的越详细越好。目前相当一部分软件经理认为;软件项目的承包方与用户在各种问题上的要求都是基本轮廓达到一致即可,具体的细节可后再填充,这是一种非常危险的思想。
客户需求不准确,一方面可能是因为软件承包方缺乏项目所在行业的专业知识,不能准确的理解客户的需求,造成需求偏差。另一方面是客户在开始时没有清晰完整的项目目标。为了了解准确、完整的需求,就要对所承包的软件项目的需求做细致地调研。实际上有很多软件项目经常是在对项目没有很好了解的基础上,就急于向客户进行商务谈判。此时谈一些专业方面的术语,软件公司的人一般听不懂,自然会不停的询问这些术语,因为这些术语对于理解项目需求很重要。这样问题就可能变得很复杂或者纠缠在枝节上面,一方面软件公司的人会没有重点的发问,不时打断谈话,干扰客户的描述。另一方面,客户也需要不停的解释,处于很被动的地位。两方需要不停的交流,这是一个相当漫长的过程,两方都会因此而精疲力竭,从而会给后面的开发工作带来了一定的压力。合适的做法是,在和客户代表沟通前,先了解一些反映客户业务的资料和相关书籍,有针对性的进行阅读,弄清客户的业务流程及每一步要达到的功能。如果对某些费解的术语和业务流程的具体细节不是很清楚,可凶让客户方带领参观业务流程。这些准备工作完成后,再进行正式的洽谈,从而提出具有针对性的问题或关键的问题,用户也会相对径松地回答你所提出的问题。
当然,不管需求分析做的多么细致,以后对需求的变更都是必然的。所以有时客户会认为不应该在需求分析阶段投入太多的时间,因为需求阶段是软件系统开发首先要进入的阶段,离最终开发出可用的系统还有很长一段距离,这导致了双方的不一致。但如果在需求阶段投入很多时间,时间越长,可能的变化就越多,对设计的限制越严格,因此在需求描述的问题上,没有统一的界定,需要开发人员学会适当的把握。
参考文献(略)