软件项目管理研究(共12篇)
软件项目管理研究 篇1
“软件项目管理”是软件工程专业本科教学中一门必修专业课程。软件项目管理其实就是在保证质量的前提下,寻求任务、时间和成本三者之间的最佳平衡而进行分析和管理的活动。随着我国社会的发展,软件产业规模的不断扩大,软件项目的成功需要更多的项目管理者。
该门课程主要的目的是使学生掌握软件项目管理的基本理论、方法、技术,并能应用具体方法和技术去指导实践。但是在教学的过程中存在着这样一些问题:1)软件项目管理涉及的知识点多,内容抽象,不容易记忆,学生不感兴趣;2)在校学生没有做项目的实际经验,对课程中的很多工程概念不理解,感觉学习难度大;3)授课老师尽管做过一些项目,但都是很小型的,项目管理知识几乎用不上,没有项目经验,几乎都是看照搬书本,授课过程中几乎都是填鸭式的,很死板,无法有效地进行理论联系实际的训练,学生感到很枯燥。针对上述问题,在借鉴前人研究的基础上,结合自己的教学实际情况,从“软件项目管理”的教学内容等方面进行了较为深入的探讨与研究,提出了理论部分采用案例驱动式的课堂教学,实践部分采用项目实践教学的方式进行教学,实践证明,能在一定程度上克服以往理论与实践脱机的现象。
1 案例驱动式教学
案例驱动教学模式源自哈佛商学院的“案例式教学”。案例是由一个或几个问题组成的内容完整、情节具体详细、具有一定代表性的典型事例,代表着某一类事物或现象的本质属性[1]。所谓案例教学,就是在教师的指导下,根据教学目的和要求,组织学生通过对案例的调查、阅读、思考、分析、讨论和交流等活动,教给他们分析问题和解决问题的方式或方法,进而提高他们分析问题和解决问题的能力,加深他们对基本概念和基本原理的理解[2]。
“软件项目管理”课程讲授的是针对软件项目的具体特点,用项目管理理论与方法来对软件项目进行管理,其本质还是属于管理类课程。管理类课程如果采用传统的教书模式讲解,其内容就会显得很空洞,学生会很难理解和掌握。因此在理论教学的过程中,我们采用案例驱动的教学方法。在备课的时候就事先选择好一个能贯穿该课程所有教学内容且能够体现软件项目管理全过程的大案例,然后总结出项目生命周期的五个阶段所涉及到的定义、方法、工具、技术、输出物,授课的时候就以这个案例为线,先讲案例,再以案例为线,找出相关的知识点,力求讲解时能把涉及的相关知识点全面、深刻、生动,这样学生就能将每节课上讲授内容的前后以线的方式联系起来,达到融会贯通。经过几年的教学实践表明,采用一个完整的案例比采用多个零散的案例效果好多了。同时,采用这种方式授课具有一定的趣味性,能增强学生对知识的理解,学生很同容易接受。下面以一个具体的实例说明我具体的做法:
项目可行性研究是项目管理启动阶段必须做的一个事情,其可行性研究包括经济可行性、技术可行性、社会因素可行性研究,可行性研究以后需要给出可行性研究报告。在授课的时候我就直接讲仓储管理信息系统研究报告,在报告里就涉及到具体的经济、技术、社会可行性方面的研究内容,例如经济可行性研究里就涉及支出、收益、收益投资比、投资回收期方面的分析;技术可行性研究里就涉及到现有技术、可选择的技术方面的分析;社会可行性研究里就涉及到法律可行性、操作可行性研究方面的分析,把这个具体实例讲完以后总结出写可行性研究报告需要写的内容为那些,可行性研究需要研究些什么东西,每一部分的研究的东西是什么。通过分析案例把相关的知识点串起来,这样学生学习的时候就很容易了,学完了实例,可行性研究报告会写了,可行性研究要研究些什么也很清楚了,很多同学认为这样学习起来很容易,教学效果好。
2 项目实践教学
项目实践教学法是指通过实施一个完整的项目工作而进行的教学活动,采取小组讨论、协作学习的方式,学生学习过程属于一个探究过程[3]。
我校在安排“软件项目管理”课时的时候是这样安排的,理论与实践各占一半,可见软件项目管理实践环节很重要。“软件项目管理”课程实践教学主要是找一个已经做过或者正在做的项目为例,在这个例子的基础上进行相关的管理,不涉及的软件开发工作。因学生不会用软件项目管理工具,所以在正式做管理工作之前,得先把微软的MS Project软件(当然MS Project可以用在各类项目的管理中)给学生教会,因为这个软件对于使用过Office的学生来讲很简单,学生比较容易掌握。一般十学时左右就能够教会,然后根据软件企业的项目管理模式,把学生分成多组,每五到六人一组,每小组指定一个项目经理,按照项目管理的思想,项目经理再具体的明确小组成员的角色和任务,指定每小组选择一个具体的软件开发项目,依据项目生命周期管理过程,从项目的启动开始入手,对选定的项目编写可行性研究报告、项目章程,质量保证说明书等,然后到计划阶段,开始编写项目计划书,项目计划书中必须包含范围计划、进度计划、成本计划、里程碑计划及跟踪、需求分析、系统设计任务、人力资源计划和沟通计划等,其中项目计划书中的图、表使用MS Project和其它画图工具绘制,并把范围计划、进度、成本、人力资源计划录入到MS Project工具中,以便后续管理,项目计划书并上交,然后以小组为单位进行答辩,项目经理汇报小组总体项目计划编制情况,成员参与答辩,答辩通过并把涉及到的相关管理表格填好,就可以进入实施阶段,没有通过,继续修改直到通过。计划阶段的完成以后接着进入实施控制阶段(因MS Project主要是项目计划的工具,不太适合软件开发整个过程的管控,我们只能在MS Project里做一些基本的比较基准,方便作前后对比,以对软件的实施做一些简单的监控),在此阶段把涉及的项目跟踪表、变更申请表、变更控制表、成本偏差、进度偏差等等这些表格做好以便管理和控制,然后再以小组为单位进行答辩,最后是收尾阶段,收尾主要的实践工作是把产品的验收、设备的验收单的填写、项目的经验总结报告及项目的最终移交报告的填写,填写完了演示汇报项目的整个管理过程,小组为单位进行最后的答辩,至此项目生命周期的整个管理过程完成了,通过这样的实践,学生是掌握了项目管理过程中所用的工具、方法,也掌握了软件项目管理从启动到收尾所涉及的管理表格的填写及管理的时候需要考虑的诸多因素。
3 课程考核
吸收CDIO的理念,软件项目管理这门课程的考核方式也是基于四个方面,包括平时上课情况、作业、项目实践、期末考试等方面,以期望能从不同的侧面来衡量学生的专业知识、团队合作能力、沟通能力等。
1)上课情况,占总成绩的10%,课堂听课、互动、发言等情况。
2)作业,占总成绩的20%,一共部署十作业,包括可行性研究、项目章程、范围计划、进度计划、网络遍历、赶工、网络图、成本计划、风险计划、项目执行控制等题目。
3)项目实践,占总成绩的35%,包括团队的合作成绩、提交管理表格的情况、以及MS Office掌握的情况、团队中个人的表现和答辩情况。
4)期末考试,占总成绩35%,考核学生对项目管理知识整体的理解。
4 总结
“软件项目管理”课程软件工程专业的一门必修课,课程内容多、知识量大(涉及到项目管理的九大知识领域),而且实践性又很强的这样一门课程,就怎么样提高本课程的教学效果问题,本文从理论教学和实践教学两方面进行了探讨与研究,其中理论教学引入了案例驱动式教学方法,实践教学部分引入项目实践教学方法,并将这两种方法应用于实际教学中,通过实践表明能达到了教学目标,但是实践部分的效果不是太好,很多同学觉得尽管项目管理的知识学到了,但是具体的实际项目经验没有,总感觉很空洞,以后的教学中看看能不能引入基于Jazz平台的Rational Team Concert,在教学过程中带领学生在Rational Team Concert平台下进行项目开发,让学生真实感受软件项目管理,真正做到理论与实践相结合,更好地掌握该门学科。
参考文献
[1]雷东升,李挥剑.《C语言程序设计》课程案例式教学模式的探讨[J].北京交通管理干部学院学报,2006,16(4):38-40.
[2]张新平.案例教学的内涵[J].云南教育,2002(32):6.
[3]搜搜问问[EB/OL].http://wenwen.soso.com/z/q102143478.html.
软件项目管理研究 篇2
摘要:我国社会经济发展的同时,让信息系统也逐渐开始大范围使用,而软件研发是目前社会专业人士所积极研究的一个热点,但是,软件项目研究是有多种因素在其中进行影响的,需求管理在其中处于主导地位。基于此,本篇文章对软件工程项目的需求管理进行分析研究,依照软件工程项目的概念为根本,以笔者多年的实践经验为基础,对软件的需求开发以及需求管理这亮点进行分析概述,其本意就是通过此次论述,让同行能有一定的启发,从而更好的进行需求沟通,更好的进行软件项目开发,减少风险因素的发生。
关键词:需求工程;需求开发;需求管理;软件项目
一、软件项目需求管理的概念
软件项目的开发团队对客户的需要进行深度挖掘,采集,就是软件项目工程的根本,而对这些需要进行系统的跟踪管理,从而让这些需求得以实现,达到客户的预期目标就是整个需求管理的过程。软件需求的来源,就是所需客户的期望和需要,如果这些需要被逐渐的理清,详细的分析,最终形成一个合理的文档,能对软件产品要求进行阐述。
二、软件项目需求工程与管理
(一)软件需求的层次与组成
软件项目需求工程属于系统工程的一种,在进行开发的过程中,一般需求有四个层次需要。第一,原始问题。用户提出需要解决的问题(其中包括书面提出以及口头提出),而这也是软件需求的根本。第二,用户需求。负责开发的团队使用图标、自然语言等方式所提出的,软件系统会提出相应的服务以及操作。第三,系统需求:这也是用户需求的另一种体现方式,可以按照软件原型给用户一个更好的直观体验,并且基于此继续进行下一步动作,一般情况下,软件都会选择水平原型,而需要相对复杂的则需要运用垂直原型。第四,软件设计描述:经过以上三个层次,就可以明白应当做什么,而这点就是需要告诉应当如何进行,这也是软件进行设计以及实现的根本所在。当上述的四个层次全部截止后,就可以进行下一步,就是对软件需求工程组成进行理解,对需求进行管理以及开发。
(二)需求分析
在进行需求开发的过程中需要对需求信息进行详细的分析,对其中的不足之处以及错误操作进行改善,并且将问题的要求确定,保证需求文档所反映出来的条件是用户所提出的条件,而这就叫做需求分析,一般情况下,需求分析的方法有很多,但是原型化方法最为常用,其他方法还有如动态分析法以及结构化方法等。一般情况下都是使用原型化方法,这种方法也是常识性的方法,这种方法操作简便,使用方便。(三)需求规格说明书在对用户的需求以及系统需求进行描述的过程中,就是需要需求规格说明书的参与。SRS不光是要对用户的真正需求进行反映,还需要尽量简洁,用简单的问题描绘出来,并且尽量使用基本词汇表当中的.语言,除此之外,还应当尽量保证其中的整体性,操作性以及验证性,只有如此,才能保证需求说明书的标准,才能让需求管理更加科学,更加合理。
(四)需求验证
为了可以保证SRS的准确性,需要进行需求验证,以便让质量特点能完美呈现,在此过程中,客户方面的决策,以及技术人员和业务人员共同进行,其主要目的有两点:第一保证了用户能明确的了解,SRS是否能够完全描述出他们的需求;第二是按照相关的文档,可以对提出相关需求的人员以及需求分析人员和测试人员等众多相关人员达成一个共识,并且让需求能固化,作为根本,控制用户在一般的需求方面也需要变更,验证的内容一般有:审查SRS,测试覆盖,产品验收标准等众多方面是否与用户需求相同,完善。
(五)需求捕获
对于需求工程来讲,需求捕获十分重要,是其中的主要部分,这对于开发工程团队来讲,可以通过需求捕获来了解用户通过软件系统需要完成的任务,经过整改之后可以对用户提出的相关问题以及要求进行改善,逐渐达到用户使用软件的目的,并且在此过程中逐渐运用相关的方式以及工具来满足用户提出的实际要求。实施需求捕获的前提要保证能确定好用户的类型,再寻找每一类型用户的交接决策人员,需求捕获的方式有多种,其中需要对用户单位的组织架构进行了解,及时与用户进行沟通,即使向用户发放调查问卷,对用户工作流转的文件等进行分析,并召开相关会议等。一般来讲,在需求捕获前期,需要管理人员制定基本词汇表,包括对流程的概括,这样既可以让用户有一个好的体验,让用户认可,对企业放心,另一方面还可以让用户更乐于交谈,并且帮助项目开发团队领略用户相关人员的意图。
三、需求管理
(一)变更管理
项目在进行实施的过程中,会一直有用户需求的存在,但是客户的需求不一定是绝对的,用户需求需要进行适量的变更、控制、进行正确的管理。而如何进行需求变更管理是需要考虑的一项问题。一方面需要进行关键性的变更,这点会影响整个项目的正常交付使用,而这种需求是需要给予满足的。另一方面,需要进行改良变更,这点不会影响系统的交付,但是,如果有不满意会让整个项目工作的价值有所改变。
(二)版本控制
在整个跟踪记录软件开发的过程中,版本控制都是一直存在,这包括了软件本身以及相关文档。按照版本控制要求,可以在空间上保证配置项的集中管理,解决相关问题,这点也是可以让版本具有一定的可回溯性,也是保证开发团队进行研发,提高开发效率的根本,同时这也是管理需求变更的一项固有手段。
四、结语
综上可见,本篇文章首先介绍了软件项目需求管理的概念,之后探讨了软件项目需求工程与管理问题,最后对需求管理进行了深入分析,以期能使相关人员更好地开展软件工程项目的需求管理工作。
参考文献:
[1]屠永江.基于项目需求工程理论的软件需求管理探析[J].计算机光盘软件与应用,(2):168.
[2]李虹,闫德恒.基于项目需求工程理论的软件需求管理浅析[J].中国科技信息,(16):92-93.
基于客户的软件项目风险规避研究 篇3
摘 要:软件项目开发成功率低是软件行业的共识,主要是因为在软件开发过程中众多的风险因素造成。文章拟从以客户为中心的软件开发思想,以客户为主导的角度研究软件项目风险的规避行为,降低软件项目的风险。
关键词:软件项目;以客户为中心;风险
中图分类号:F407.672 文献标识码:A文章编号:1006-8937(2009)24-0036-02
信息技术的发展促进了软件产业的飞速发展,使得软件产品在众多领域的应用越来越重要。然而,软件产品的开发成功率相对于其它工程项目产品要低得多,这主要是由于软件产品的特殊性造成的,软件产品的特殊性使得软件项目在开发过程中具有众多的风险因素,而且风险因素错综复杂。
从软件项目风险管理的研究成果来看,风险辨识和评估的研究比较丰富和深入,而软件项目风险因素的识别、评估的最终目的是为了能够制订科学的风险管理和控制方法,从而有效地进行软件项目风险管理。然而,如何在风险辨识与评估的基础上采取风险规避行为,文章从以客户为中心的软件开发思想出发,提出基于客户满意度的软件开发能够在一定程度上减少软件项目的风险,即在软件开发过程中,客户满意度越高软件项目成功的概率越大。
1全生命周期的客户风险
以客户为中心的软件项目开发思想是敏捷软件项目管理中的核心思想,时刻与客户保持合作关系,使得客户能参与到软件项目开发中。由于软件是一种特殊的逻辑产品,不具备实体的可见性,它是由经过智力劳动而产生出来,具有特殊物质的复杂事物,因此在软件开发过程中将有众多的不确定因素存在,如客户需求不断变化。采用以客户为中心的软件开发更适用于软件行业,Ilieva et al.(2004)等人在研究敏捷开发中发现:客户在软件开发过程中对开发进程监控,使得项目在签收时受到客户的高度评价,即项目成功。但是Tore Dyb与Torgeir Dings?yr(2008)指出客户在敏捷开发中表现出不持续性将对项目带来更大的风险[1]。
客户风险主要是客户对中间产品或最终产品的不满意,或客户的意见未被采纳或更改,造成产品最终无法满足客户的要求;客户对规划、原型和规格的审核决策周期比预期的长;客户提供的组件质量欠佳等。客户风险体现在软件项目生命周期中的各个阶段。
软件项目在其生命周期中,分为以下四个阶段:需求分析阶段、制定方案阶段、实施阶段与结束项目阶段。
①需求分析阶段。对于软件项目组织来说,该阶段需精确识别客户的真实需求,因此项目组织必需密切与客户沟通,在将收集到的信息加以汇总时对不明确之处反馈于客户,以期客户解答。此阶段中,若客户不予以配合或不完全表达其意思,则软件项目必定失败。项目组织在需求分析过程中,需要时时以客户为中心,使得客户能够顺利方便地参与到项目中,做好软件项目工作的第一阶段。因此,与客户的沟通程度、客户的参与程度将是客户风险在该阶段的体现。
②制定方案阶段。该阶段项目团队的主要任务就是与客户一起制定一个以前期明确的需求、双方的资源、项目开始实施的时间约定、项目费用限制等为基础的具有可操作性的项目计划,从本阶段开始争取客户全面参与项目的管理,需要双方共同考虑项目实施的具体计划落实和风险规避。
③实施项目阶段。此阶段为项目成功的主要阶段,伴随着项目工程的推进,在前两个阶段中不确定性的事件可能会成为该阶段的主要事件,客户在本阶段也会因为外界环境的变化而使得第一阶段中的需求发生改变,如客户所处公司的环境。此时项目团队应实时对客户满意度进行评估,实时了解客户的需求。在本阶段中,客户风险体现在原需求的改变、项目进度达不到客户需要、软件项目的成本、软件项目的质量(如软件界面设计)等。若此阶段项目团队不能与客户密切沟通与合作,客户风险将导致项目的夭折。
④结束项目阶段。此阶段也可以称为软件产品验收阶段,软件项目经理将软件产品交付客户使用。客户对软件产品的满意程度将直接决定是否签收该软件产品,如果客户对软件产品不满意,意味着软件产品的开发失败,修改软件产品将需要更多的成本与时间。因此,客户对产品的质量、成本控制、项目是否延时等问题都将成为影响客户满意度的因素。
2风险规避模型建立
在软件项目全生命周期中,客户风险时刻存在。为了达到客户满意度,采用一般风险管理中常用的规避风险的四个策略:“避免”、“转移”、“接受”、“遏制”和“深入探讨”。所谓“避免”策略是指通过改变产品设计或开发过程,避免或消除风险可能造成的严重后果。“转移”策略常用于保险分担或合同分担,风险出现的概率并没有因此而降低,但是降低了风险出现后某一方遭受损失的程度。“接受”策略指听任风险的自然发展,一方面不需付出风险控制成本,另一方面也没有消除风险可能的危害。“遏制”策略通常有两条途径,一条是加强高风险因素的薄弱环节,降低风险发生的概率;另一条是调整设计方案或管理方法,减轻风险出现后的影响后果。“深入探讨”策略是为掌握风险的具体特性而开展的各项活动,以便取得更多的信息,使风险决策更为科学和明智。
软件项目开发的过程中,软件项目团队与客户保持密切联系,共同处理风险。文章中采用这个四个策略的优先级顺序评估客户对软件项目风险处理的接受程度,达到客户的心理接受风险程度,即客户对软件项目的满意程度。
3 结语
在项目管理过程中,项目的三个主要控制要素:成本、质量、进度。这些要素是每个项目管理中不可获缺的,在软件项目中也不例外。在软件项目中,这三个要素在不同的阶段具有不同的权重,而且其中的任何一个要素的滞后都将带来客户的不满。
软件项目管理项目教学过程研究 篇4
随着软件产业及信息服务外包产业在全球范围内的迅速兴起与发展, 如何培养高素质软件工程人才, 实现高校软件工程专业人才培养与社会需求无缝对接, 已经成为目前各高校软件工程专业人才培养体系所亟待解决的重大问题。“软件项目管理”课程作为各高校计算机软件工程专业的一门重要的专业必修课程, 对于奠定培养软件工程专业技术与管理复合型人才的理论基础起着重要的作用。然而, 软件项目管理课程知识点繁多, 概念、运算枯燥难懂, 学生学习兴趣不足, 难于找到成就感;此外, 由于学生没有工作经验, 对于课堂中学到的理论不知如何在项目中运用。基于以上的问题, 笔者根据多年的企业工作经验, 经过多轮教学的磨合, 总结出一套项目教学的方法。通过教师扮演软件项目的甲方, 学生分组扮演软件项目开发的乙方, 共同完成软件项目的开发管理工作。在项目中, 融入理论讲解, 理论指导实践, 融会贯通。让学生对课程内容产生兴趣, 主动自发的学习课程知识。
2 项目教学过程
课程在介绍项目管理的理论知识的同时, 通过一个《信息管理系统》贯穿始终, 让学生对每个理论知识有个直观的认识, 知道这些理论知识在项目中是如何实际运用的。然后通过8个子项目的实验, 让学生分组合作, 在组中模拟项目中的项目经理, 需求分析人员, 设计编码测试人员, 质量管理人员, 配置管理人员等角色。并在老师指导下, 独立完成项目《图书借阅系统》从启动到结束的全部管理控制过程。8个子项目的内容, 具体如下:
接下来对每个子项目的过程设计如下:
2.1 项目启动。
项目提出:教师模拟项目甲方, 基于学校的信息数字化和现代化的管理需求, 提出《图书借阅管理系统》的项目需求, 给出项目招标书, 希望能在半年的时间内, 由乙方完成该系统的开发工作。由学生自由成组, 模拟乙方, 分析项目后, 写出项目建议书, 参与竞标, 中标后, 即可启动项目。项目知识准备:项目基本概念、项目初始过程、项目授权、生存周期模型。任务实施:a.乙方分析项目b.竞标竞演c.项目立项
2.2 进度管理。
项目提出:项目启动, 项目范围确定后, 接下来我们想想, 我们多长时间能做完这个项目呢?怎么估算和实际情况更接近呢?项目进展过程中, 如果时间上或延迟, 或提前了, 那我们如何把控我们的项目呢?项目知识准备:a.进度管理图示b.进度估算方法c.进度编排方法。任务实施:a.估算项目进度b.关键路径法进行项目进度编制c.会用ms project绘制工程表, 实施进度管理。
2.3 成本管理。
项目提出:我们的项目的报价是怎么产生的?我们项目有哪些成本, 利润又是多少?我们给客户报多少钱, 才不会赔钱?在项目中, 如果钱比预计的花的多, 怎么办?项目知识准备:成本估算方法、成本预算方法、成本控制方法。任务实施:a.成本估算b.成本预算c.成本管理。
2.4 质量和风险管理。
项目提出:项目做完, 进度没有延迟, 花销没有超支, 但客户仍然可能不满意, 为什么呢?因为项目的质量没有达到客户满意的标准。项目中可能存在哪些风险导致项目失败呢?项目知识准备:a.制定质量标准b.进行质量保证工作c.进行质量控制工作d.识别风险e.评估风险f.规划风险g.控制风险。任务实施:a.完成质量计划, 会对质量进行控制b.完成风险计划, 并能对项目中的风险进行应对。
2.5 人力资源和沟通管理。
项目提出:项目中最大的资源是什么资源?是人。每个人都是一个个体, 想让一群人, 高效, 目标一致的做好一个项目, 是个很困难的事。那我们会做哪些工作去建设好一个团队呢?人和人之间需要沟通, 怎么沟通才更有效呢?项目知识准备:a.项目组织结构b.责任分配矩阵c.人员管理计划d.团队管理e.沟通方式f.项目沟通计划。任务实施:a.人力资源管理b.沟通管理。
2.6 配置管理。
项目提出:项目中产生很多代码和文档, 放哪好?代码和文档会多次修改, 有时候想找以前的版本怎么办?多人合作共同开发一个功能, 能不能各自开发各自的, 然后自动整合?其他开发人员未经允许修改了你的代码怎么办?项目知识准备:a.配置管理过程b.配置管理工具VSS的使用方法。任务实施:用VSS进行项目配置管理。
2.7 合同与集成管理。
项目提出:项目最初我们签订了项目合同, 在我们做项目的过程中, 有没有可能去修改合同呢?要修改的话, 如何操作呢?前面我们学习了项目的范围管理、进度管理、成本管理、质量管理、风险管理、人力资源管理、沟通管理、配置管理, 合同管理, 这些管理之间必然有着这样那样的联系, 管理不好, 可能会互相牵制, 互相矛盾。那如何让这些管理相辅相成呢?项目知识准备:a.合同管理b.集成管理。任务实施:a.将《图书借阅系统》的一部分功能外包, 作为合同的甲方写一份合同。b.整理之前的所有项目计划, 形成集成计划, 注意各个计划之间的协调性。
2.8 项目结束。
项目提出:项目最后, 编筐编篓都在收口, 收口阶段要做哪些事呢?项目知识准备:a.合同结束b.项目结束。任务实施:a.乙方整理所有项目成果物, 甲方验收乙方的成果, 验收通过, 宣布合同终止。b.项目提交后, 写项目总结。
3 项目验收与评价
老师 (甲方) 和项目经理共同验收子项目, 评价包括甲方评价, 项目经理评价以及组内成员互评。最终通过答辩的方式, 教师根据学生在组内担当的角色, 以真实项目中的问题提问, 让学生根据所学知识做出案例的分析。
结束语
笔者结合多年的企业工作经验, 将实际的项目开发管理过程贯穿到课堂当中, 通过软件项目开发过程中涉及的管理问题, 一步步引导学生学习软件项目管理知识, 并把理论知识根据自身担当角色, 应用到项目中去。笔者已申报了校级项目教学示范课, 并取得了初步成果, 笔者会在实践中不断完善项目教学过程。
参考文献
[1]李蓉, 叶俊民, 杨艳.基于案例任务驱动的软件项目管理课程实践[J].计算机教育, 2014, 7.
[2]韩万江, 姜立新.软件项目管理案例教程[M].2版.北京:机械工业出版社, 2011.
[3]夏辉, 范书国.基于项目导向和实践考核体系的软件项目管理课程教学模式的研究[J].沈阳师范大学学报·自然科学版, 2014, 1.
[4]刘海, 周元哲.面向专业能力培养的软件项目管理教学研究[J].计算机教育, 2013, 9.
软件开发风险管理研究论文 篇5
摘要:在软件项目开发过程中,存在着诸多风险,举例来讲,有技术风险、资金风险、组织风险、财务风险等,如何识别并防范这些风险,将是影响项目能否顺利完工的重要因素。在项目实施过程中,因涉及干系人众多,需要对相关组织机构以及具体时间安排等方面加以协调,由于上述原因,在一定程度上提高了项目实施的风险性,因此,实行合理高效的项目风险管理对维持项目实施的正常秩序至关重要。
关键词:软件;开发;风险管理
在进行项目管理时,应当依据现实状况,遵照项目风险管理的主要原则,加大对其中存在的风险性的重视程度。首先,应当确立合理详尽的风险管理计划,能够发现和预测其中存在的风险性,并且对风险清单进行定性和定量的分析,对发生可能性较大和对项目运行可能产生的影响较大的风险采取针对性的措施予以削弱,另外,利用多种方法和举措,对项目运行过程中的各个环节、各个阶段存在的风险性加以检测和处理。下面从风险管理计划到风险监控,浅论如何做好项目风险管理。
1确立风险管理规划
从理论上来讲,风险管理规划是指制定关于风险鉴别、风险分析和风险削弱的具体措施,并且对相关的管理机构以及具体的行动纲领加以明确。相关的项目管理组织应当通过举办讨论会议,采纳参会各人的合理意见,并且依据项目内部、外部环境特征与过去的操作经验初步确立针对性的风险管理计划。并且确立具体的风险鉴别、风险分析、风险应对的操作流程,对风险管理规划的成本进行预测,实现操作成本与具体活动的无缝衔接,为以后的`项目风险管理奠定基础。
1.1风险鉴别
风险鉴别是指对可能对项目运行产生影响的风险性加以分析,并记录下来。相关负责人应当有项目经理、项目团队成员等,争取形成相关工作人员参与风险鉴别的全员性。风险鉴别是一个不断反复提高的过程,伴随项目过程的进行,新的风险可能会出现,这就要求项目团队定期开展风险识别会议,并在每一次风险识别过程中,让团队成员始终保持责任感。应当准确鉴别出可能对项目运行产生影响的风险性,并结合其具体特征逐个击破。把鉴别出来的风险性登记造册,来对其进行实时监测,从而可以及时的消除可能出现的风险。一般在项目中,我们识别的风险主要有技术风险、外部风险、内部风险。技术风险主要是技术团队在某些陌生领域的技术短板,而影响到整体项目的进度、成本、质量等问题。软件技术的快速发展和经验丰富员工的缺乏,是造成技术风险形成的主要因素。因此,要对技术风险进行提前防范,采取合适有效的措施解决技术风险。外部风险主要是来自项目外部,如:涉及的开发商、施工方众多,如果与任何一个外部单位对接出现问题,都会对整个项目进度造成影响;另外,需要采购外部单位设备规格不同,设备改造升级工作量大,施工时间不充裕可能成为工程进度的风险,影响项目正常进度。内部风险主要表现在资源协调方面,主要是项目团队在人员组织和调配上,出现的风险问题。例如:新的突发事件,占用项目成员的工作时间,进而可能对此项目的进度产生一定影响。
2风险定性分析
风险定性分析是指分析各种风险出现的概率以及其对项目产生的影响的大小。另外,也要对这些可能出现的风险等级进行排序,加大对风险性高的方面的重视力度。所以,可以邀请专家和相关专业技术人员对内部环境、外部环境以及现实情况进行具体分析,并且可以通过利用分析矩阵明确风险等级,最后要将上述分析结果登记造册,以便实时监测。
2.1定量风险分析
定量风险分析是指对各种风险对项目的影响程度加以定量的确定。具体来讲,要组织专家、专业技术人员以及相关工作人员对项目实施各个环节可能出现的风险加以分析,立足于量化的角度分析其影响程度的大小,最后要将上述分析结果登记造册,以便实时监测。
2.2风险应对计划
风险应对计划是指通过对经过定性、定量分析后的项目风险分析数据进行分析,进一步确立项目的有机影响方面和不利影响方面,并采取科学合理的带有针对性的应对举措。如:针对技术风险,可以培训、聘请顾问以及为项目团队招聘合适的人才等进行防范。为避免外部风险,制订沟通计划,与干系人积极交流,加强工作联系,定期沟通汇报,一旦出现问题,项目组对具体问题进行分析研讨,及时解决。对于内部资源协调问题,与主管领导进行协商,协调其它部门抽调人员加入项目组。风险都需要进行提前的预判,针对各风险的关键点进行分析讨论,最终形成风险识别清单和应对措施,从根本上消除风险或把风险降至最低。
3风险监控
软件开发中的知识管理研究 篇6
[关键词] 知识 知识管理 软件开发
一、引言
在知识经济时代,市场的竞争日趋激烈,如何获得并保持竞争优势逐渐成为管理学的研究热点。组织所具有的有价值的、稀有的、不可模仿的、难以代替的资源是保持竞争优势的源泉。随着研究的进一步深化,知识在组织竞争优势中地位越来越显著,从知识的角度来研究组织竞争优势逐渐成为一个重要的理论方向。
软件产业是一个知识密集性的产业,软件开发人员都属于知识工作者,并突出具有技术人员个性化特征。如何有效地整合个性化资源,高效地满足个性化需求,这是软件企业必须面对的一个难题。知识管理作为提高企业核心竞争力的有力手段,可充分实现企业知识资源的整合、发展、共享和增值。特别是软件企业实施知识管理,可以将分散的个性化的知识整合成有机的组织知识体系,通过组织知识体系的有效运用和持续提升去解决个性化难题,从而能有效地增强企业的核心竞争力。
二、知识管理的内涵及分类
所谓知识是一种有价值的智能结晶,可以通过信息、经验心得、抽象的观念、标准作业程序、系统化的文件、具体的技术等方式呈现。知识呈现的形式虽然有很多种,但在本质上都必须具备创造附加价值的效果,否则就不能被称为知识。因此引进、学习、扩散、创新知识,一直都是人类社会发展的特征,也是驱动社会进步的最主要力量。知识管理是研究人类获取、传播、共享、利用和创新知识的活动规律,管理有关知识的各种连续过程,以促进经济和社会发展的理论与实践。
一般而言,知识可分为两类,一类是显性知识(explicit knowledge),另一类是隐性知识(tacit knowledSe)。显性知识一般是指可以文件化、标准化、系统化的知识,因此显性的知识可以从知识库中直接提取和进行独立的学习。广泛适用性、能够被重复使用以及与人分离是显性知识的特点,因此使用显性知识,不需与创作者接触,就可以产生知识转移的学习效果。由此可见,显性知识无论在扩散速度与学习效率,均相对较高。当然如何将知识经由整理、归纳、分类、储存等手段而达到显性的程度,并且能够十分便利的一再使用,必将是未来企业在知识管理活动中的重点工作。
而隐性知识一般是指比较复杂,无法用文字描述的经验式知识,不容易文件化与标准化的独特性知识,以及必须经由人际互动才能产生共识的组织知识。隐性知识是指建立在个人经验基础上并涉及各种无形因素如个人信念、观念、直觉、洞察力和价值观等的知识,是一类难以表达、描述、交流和共享的知识。它又可分为两个方面,一是技术方面的隐性知识,包括那些非正式的、难以表达的技能、技巧和诀窍;另一类是认识层的隐性知识,包括心智模式、信念、洞察力和价值观等,反映人们对现实的看法及对未来的展望,是世界观的知识。隐性知识产生的成本较高,可重复使用的机会较低,通常应用于附加价值较高的作业活动上。隐性知识管理重点就是如何将隐性知识的创造过程加以效率化,可运用的策略手段包括:形成一致性的企业文化与共识、开放性的组织气氛、运用多媒体网络来增加人际沟通的效率、项目型的团队管理、良好的教育训练与学习机制、更完善的周边配套等。
所以,知识管理的主要任务包括显性知识的规范化描述与共享、隐性知识的显性化以及提供隐性知识创造过程的效率。
三、知识管理在软件开发中的作用
在知识经济时代,软件创新是企业获得核心竞争力的源泉,软件开发则是创新的具体表现,因此对软件开发的全过程实现有效的管理是提高软件开发绩效、实现企业战略目标的有力保证。知识管理正是有效地适应当前时代发展的手段,对软件开发起了重要的作用。由于不同的软件类型所体现的个性化,知识管理所起的作用也不尽相同,但是综合而论主要体现在以下几方面:
1.对外部信息的获取、对内部经验知识的整合及存贮,形成有价值的知识库,为软件开发提供技术支持,从而有利于正确选定开发对象、确定开发策略、提高开发效率、缩短开发周期,保证开发目标的实现,进而尽快收回投资获得较大利润。
2.软件开发人员之间交流、互动、共享知识,可以避免重复性开发工作,且促进技术信息的扩散和传播,凝聚集体智慧,使软件设计更全面、性能更完善。
3.知识管理中实行的扁平形组织结构,促进了职能部门间的紧密联系,使开发、营销、生产部门积极参与软件开发中的每一个关键性决策并提供反馈意见,保证软件开发的方向与企业战略一致、与顾客不断变化的需求一致、与企业自身的技术开发、生产能力相适应。
4.在软件开发过程中,成功的经验和失败的教训都可以有效地整理、贮存,为后续的软件改进和新软件开发提供宝贵的资料。
5.知识管理中强调人的管理及培训,人作为知识的载体,其素质的提高为软件开发提供了智力保障。
四、软件开发过程中如何实施知识管理
从软件发展的趋势看,软件企业竞争的焦点越来越集中在概念设计和需求分析这两个阶段。如何在这两个阶段实现软件企业、用户之间无障碍的知识交流与共享,就成为软件开发的关键问题之一。此外,在系统设计、编程等阶段,如何有效利用已有知识来提高软件开发的效率和质量,在整个软件开发过程中如何将隐性知识显性化,如何有效地管理软件开发中所生成的文档等问题,都是需要考虑的。
1.软件复用。它是指重复使用“为了复用目的而设计的软件”的过程,而可复用软件则是指为了复用目的而设计的软件。使用软件复用技术,开发人员将无需为每一个软件都重新设计框架、编写代码。他们在接受新的软件开发任务时,首先查询已有的软件部件,然后将已有的软件部件集成在一起实现新的软件的功能。软件复用不仅是指对源代码的复用,而从需求分析开始,到设计、编码与测试,包括测试案例和测试脚本,都可以成为复用的对象。使用软件复用技术具有提高软件生产率,从而降低成本、减少系统的维护代价、提高系统间的互操作性、软件的灵活性和标准化程度等优点。检验一个软件项目是否有效地利用了知识管理,最直接的方法之一就是看它是否重复利用了已经成熟的程序或软件部件,因此,复用技术是软件开发中应用知识管理的重要方法。
2.隐性知识显性化。软件开发的本质是将开发的各个环节、各种不确定问题显性化,由不可控变为可控。如软件开发过程中精神活动的“不可见性”大大增加了过程管理的难度。因此,软件开发管理的指导思想就是千方百计地使这些过程变为“可见的”,成为事后可以检查的记录。
3.知识的交流与共享。在软件开发的各个阶段,知识的交流与共享无处不在。在概念设计与需求分析阶段,软件提供方和用户很难完全描述清楚新软件的需求,一些工作在用户看来是习以为常的活动,而软件提供方却不知道这些活动。因此需要软件提供方与用户方进行多次交流,以明确把握需求,为项目开发的成功和后期工作打下比较好的基础。而在系统设计、维护等后续阶段,则强调软件开发团队成员之间的知识交流与共享,这是软件开发成功的前提条件之一。
4.文档管理。软件文档的编制在软件开发工作中占有突出地位和相当的工作量。软件文档指的是一些记录的数据和数据媒体,它和计算机程序共同构成了能完成特定功能的计算机软件。从知识管理的角度看,文档在软件开发的知识管理中承担着重要的角色,它是知识交流与共享的基础,没有办法对无任何说明文档的程序进行知识管理,即使它包含最完美的算法,但它所包含的知识是无法共享和重复使用的,因为别人很难看懂,也无法理解。
5.营造和谐的项目团队氛围。软件开发各个实施阶段,需要各方人员的交流与合作。然而,在项目团队中为了维护自身利益而采取保守的做法是司空见惯的,团队成员不愿意交流和共享自己独有的知识。虽然在软件开发项目中的团队成员一般都具有较高的专业技术水平,但对团队而言,和谐的项目团队氛围对出色完成工作更为重要。要确保团队的这种氛围,就要求软件开发团队必须充分认可和尊重成员的专业特长、知识和技能,确保足够的信息沟通,建立集体创新意识,培养合作共进的和谐气氛。这样,团队成员才能发挥最大的独创性。
参考文献:
[1]彼德·德鲁克等著:知识管理.中国人民大学出版社,1999
[2]许晓明龙炼:论企业的知识管理战略[J].复旦学报,2001,(3)
[3]夏敬华等著:知识管理.机械工业出版社,2003
[4]刘湘丽:知识管理的发展及其理论[J].首都经贸大学学报,2002,(3)
[5]Dehua Ju,Knowledge Management in Software EngineeMng.Prnc.ofIn.teroational Symposium on Future Soft'ware Tec hnology,2002.
[6]Tom DeMarco,Peopleware:Productive Projects and Teams.2nd Ed.Ad.dison Wesley.1999
软件项目人力资源管理研究 篇7
1 软件项目人力资源管理的含义
软件项目人力资源管理就是根据软件项目的目标、项目进展情况和外部环境的变化,采用科学的方法,对项目团队成员的思想、心理和行为进行有效的管理,充分发挥其主观能动性,实现项目的目标。具体来说,软件项目人力资源管理就是根据实施项目的要求,任命项目经理,组建项目团队,分配相应的角色,明确团队中各成员的汇报关系,建设高效的项目团队,并对项目团队进行绩效考评的过程,其目的是确保项目团队成员的能力得到最有效使用,进而高效、高质量地实现项目目标。软件项目人力资源管理的重点集中在以下2个方面:一方面是针对个人的,例如工作委派、培训、考核、激励、指导等;另一方面是针对团队的,例如团队建设、冲突处理、沟通协调等。
2 软件项目人力资源管理的特征
软件项目要求在有限的资源条件下,在尽可能短的时间期限内,为客户提供技术创新性强、个性化程度高的软件产品或服务。因此,软件项目体现出许多有别于一般项目的特殊性。软件项目是知识密集型项目,技术性很强,需要大量高强度的脑力劳动。项目劳动十分细致、复杂且容易出错,项目团队成员的结构、责任心、能力和团队精神对软件项目的成功与否及质量高低有着决定性的影响。软件项目人力资源管理的特征如下。
2.1 人力资源规划涉及确定并分派项目角色、职责及制订人员配备管理计划
高层管理者和项目经理必须明白什么类型的人才是保证项目成功实施的关键及他们需要具备的技能。例如,一个项目中需要一些优秀的Java开发人员,人力资源计划就需要反映出这个需求。在已经明确项目所需要的重要技能和何种类型的人员的基础上,项目经理和团队成员应该为项目创建一个项目组织结构图。
2.2 项目团队组建的目的是招募项目工作所需的人力资源
在明确项目人力资源需求后,高层管理人员一般将组建权交给项目经理。项目团队成员可从组织内部和外部招募那些有强烈影响力和沟通技巧好的项目经理,满足项目所需的人力资源。人员招募常用的手段就是谈判,大多数项目的人员分派都需要经过谈判。例如,项目经理需要与职能经理谈判,以保证项目在规定期限内获得足以胜任的工作人员,而从内部的其他部门调人参与项目是一件很复杂的事情,一般要征求多方面的意见,这就要求负责组建项目团队的人一定要耐心地进行解释、说服和动员,争取他人的支持。需要注意的是,项目团队组建是一个动态的过程。所谓动态是随着项目的发展,对人员的需求是动态变化的。项目经理必须监控到这种变化。除了人员招募外,团队成员的保留也是项目团队组建中极其重要的问题。作为一个软件项目的负责人,要努力减少组员的流动性,就要分析技术人员或小组领导人流失的原因。例如,项目的高压环境导致员工心理负担过重等。
3 软件项目人力资源管理的策略
3.1 人才招聘
3.1.1 性格特质与工作分析
性格特质反映个人的职业兴趣,性格特质与工作性质的和谐度越高,其对工作越满意,成就也越高。信息人员具有与一般企业员工不同的工作特性与性格特质,了解这些特质,对于人员的招聘、培训、激励、生涯规划及降低离职率等管理工作,均有显著的帮助。工作分析是将工作内容、员工需求和工作目标作系统性的分析,以期通过招聘、选才、培训与评估的过程,使组织的人力资源量才使用。除了信息专业技能外,软件人员应具备组织、管理、沟通等技能。
3.1.2 人员招聘与选用
招聘的目的在于寻找并吸引合格的应征者,让他们了解工作的特点与福利等,如起薪、调薪频率、奖金分红、股票选择权、福利制度等。完善的事业发展计划能使员工在个人与专业上得到成长,这是吸引应征者的重要因素之一。公司声誉也是吸引应征者的重要因素,例如标榜人性化管理、作风开放的公司较能吸引应征者的兴趣,而拥有良好声誉公司的工作经验将有助于员工抓住未来的求职机会。选用人才则是从众多的应征者中选出有能力和有意愿的适当人选,利用面谈、测验、简历、推荐信等方式选出企业最需要的人才。传统的选才方式强调应征者的知识、技术、能力等,但忽略了员工是否能与组织的文化融合的问题。近年来,企业逐渐偏好性格特质能与其组织文化融合的人,所考虑的是组织的整体性,而非只是工作技能上的最合适人选。面试可以有效地评估应征者在多方面的表现,特别是人际沟通技巧及专业技术能力,面试是最常用的招聘选才方法。与面试者直接面对面交流具有客观性,也可以判断应征者的外在行为表现,是衡量应征者能力和性格特质的有效方法。询问的技术关系到面试效果,要事先做好规划。面试者应细心地倾听,在面试期间应完成预期项目与时间控制,不要表露个人观点或偏好,以免失去客观意见。
3.2 人员管理
3.2.1 激励
激励即激发工作潜能、鼓舞工作士气,是一种人性化的管理,也是领导的有效法则。激励的策略必须符合员工的期待和满足员工的需要与偏好,且能反映员工努力作出的贡献,同时经得起员工之间的比较,让员工觉得合理、公平,这样才能提高员工的工作意愿与士气。
(1)高成长需求的员工较之低成长需求的员工,更希望工作富有激发性与挑战性。设计良好的工作内容,不仅可以提升员工的工作效率,还能让员工拥有高度的工作满足感。
(2)薪资关系着人员的满意度,但并不是决定工作满意度的最重要的因素。好的薪资制度有助于留住优秀的员工,引导一般员工往正确的方向努力,提高员工的工作绩效。薪资包含固定底薪、半固定薪资(如职务工资)和绩效奖金。员工绩效必须能以具体的数字表示。同工同酬,但要考虑工作质量。薪资由职务决定,而非个人条件决定。薪资结构不合理时,应主动调整。特殊的工作条件可用特殊补贴的方式解决。
3.2.2 教育培训
为了提高员工胜任工作的能力,朝着组织的目标发展,教育培训是人力资源管理最有效的投资之一。教育培训是为了确保员工具备开展业务的能力,提供员工工作上所需的各项基本技能及知识。其目的是为了企业未来的发展,为员工提供学习知识与技能的机会。同时教育培训还可以帮助员工提高工作意愿、激发工作潜能、提升士气与对工作的满意度,并降低离职率。组织通过成员的学习而成为学习型组织,从而能在变革中维持或提升市场竞争力。教育培训有如下4个阶段:①需求评估,包括组织分析、工作分析、个人分析。②发展计划,包括整合信息技术与企业概念、考虑个人成长需求、配合组织的目标。③计划执行。④绩效评估。
3.3 团队管理
3.3.1 团队组成
团队成员的技术水准、经验及个人性格是否均衡,将影响团队的效率。许多软件工程师主要是由于工作内容而产生工作动机,因此软件开发成员通常对如何解决技术上的问题都有各自的看法。团队如果能由个人特质互补的成员组成,则该团队的工作效率会比纯以技术能力选择成员的团队更好。
3.3.2 团队组织
团队的组织方式应让每个人都有受到重视的感觉,并且对自己在团体中的角色感到满意。小型的工作团队通常是以非正式的方式组成,领导人必须和成员一样投入软件开发的工作,而可以有效控制软件生产的人员则可能成为技术领导人。在非正式的团队中,团队的工作是由成员一起讨论决定,工作任务则根据成员的能力和经验进行分配。
3.3.3 团队沟通
良好的沟通是软件开发团队中不可或缺的。成员应互相交流工作的状况、已经决定的设计或必要的修改。良好的沟通可以强化团队的向心力,成员之间可以了解彼此的动机和优、缺点。
3.3.4 团队向心力
在具有向心力的团队中,每位成员会将团队的共同意识看得比个人意见还重要。在一个和谐的团队中,成员会对该团队效忠。他们认同团队的目标及其他成员的目标,也将整个团队视为一个整体,保护它免受外界的干扰。这些观念可以让团队更加坚固,可以更好地处理问题和非预期的情况。具有向心力的团队具有以下几个优点。①可开发出团队的质量标准:因为这个标准是经过大家一致同意的,所以相比强制给团队的一些外部标准,成员会更愿意遵守。②成员紧密地一同工作:团队中的成员彼此互相学习,可以将因疏忽造成的问题减到最少。③成员知道彼此的工作内容:假如有某位成员离职,其工作依旧能够有人接手进行。④实践无私的程序设计方式:程序可以被视为团队的资产,而非个人资产。
摘要:在完成软件项目目标所需的各种资源中,最重要的是人力资源。项目团队中的人员有不同于其他人员的需求特征,成员以团队精神为前提,更加关注自尊和自主的需求。文章阐述了软件项目人力资源管理的含义,分析了软件项目人力资源管理的特征,提出了软件项目人力资源管理的策略。
关键词:项目管理,人力资源,团队管理
参考文献
[1]王强.IT软件项目管理[M].北京:清华大学出版社,2004.
[2]丘磐.科技项目管理之人力资源管理[J].中国科技论坛,2004(3).
[3]张少仲.软件开发管理的实践[M].北京:清华大学出版社,2005.
软件开发项目进度管理研究 篇8
软件开发项目进度,是指完成整个软件开发项目所需活动的过程和时间周期。软件开发项目进度管理是为了确保项目按时完成而对其各项活动及阶段进行的管理。软件开发项目进度管理包括4个步骤,其中软件开发项目进度计划编制和进度控制是实际工作重点,但编制项目进度计划前,应先分解项目,明确该项目包含的活动,并对项目活动进行排序[1]。下文中“软件开发项目”简称为“项目”。
1 项目工作分解
一个项目提出后,根据项目目标确定项目的研究范围后,应对项目进行分解,将可交付成果和复杂的项目逐步分解成较小的、便于管理的组成部分,并创建工作分解结构图,为项目进度计划打下基础[2]。
1.1 项目工作分解的作用
项目分解的作用主要体现在两个方面:
(1)便于进行综合性方案设计。工作分解就是在项目目标的指导下,在任务范围中从粗到细、从简到繁,逐步分析,直到可执行的最小独立单元,这样能够较好地保持项目的系统性和完整性,策划者据此可以通盘考虑实现项目目标应完成的工作,能够清晰地分辨任务实现的重点和步骤、完成周期、成本费用,并评估风险,同时,也有利于发现潜在的不明确内容,为项目总体设计提供可靠依据。
(2)便于分配任务和明确责任。项目工作分解把项目划分成多个独立性较强的任务单元,明确区分各任务的目标、范围和界限,对每个工作任务提出具体要求,便于在执行项目时,落实责任者或完成单位。既可以作为委托工作或下达任务的依据,也便于观察、了解和控制整个项目过程。
1.2 项目工作分解结构的依据、原则和方法
项目工作分解结构的主要依据是前期取得的项目主要资料和其它相关项目的借鉴性文件,包括项目需求文件、任务(合同)范围说明、本项目的其它资料、其它项目的相关资料等。
工作分解结构的原则是:在各层次上保持项目内容的完整性,不能遗漏任务必要的组成部分;每个项目单元只能从属于某一个上层单元,不能同时交叉从属于两个上层单元;相同层次的项目单元应有相同的性质,各项目单元应有明确的任务界限,保持各项目单元的独立性;项目分解的原则应事先确定,同一层次上分解出的项目单元,其分解的原则应该是一致的。
工作分解的方法有自上而下和自下而上等方法。自上而下法是先明确项目最终产品,然后确定中间可交付成果,再对主要可交付成果细分,直至每一个工作只包含一个可交付成果;自下而上法是首先明确项目的所有可交付成果,然后将可交付成果进行逻辑分组,接着将每组汇总成一个母元素,成为上一层次的元素,再将高一层次的元素进行分组、汇总,以此类推,最终汇成一个母元素。
1.3 项目工作分解结构一般步骤
工作分解首先应识别项目的主要要素,项目的主要要素就是项目的主要交付物,然后对识别出的主要要素作进一步细化,分解出更详细的有形的、可检验的产品或服务,在此基础上,选择自上而下或自下而上的方法编制工作分解结构图(也可以使用单位标准模板或以前项目的模板),编制完工作分解结构图后,应编制详细的结构图说明,说明的内容包括各要素的界定、说明、估算经费、时间、预安排的责任部门、人员等。
1.4 项目工作分解结构输出
项目工作分解的输出结果包括项目结构图和相关说明。项目分解结构图(WBS)是通过分解技术,将项目任务按照其内在性质和结构逐层细化而形成的示意图。它涵盖为完成项目交付物需进行的所有项目工作,为项目责任分配和任务协调提供依据。项目结构说明包括各层要素的详细描述、工作说明、负责组织、进度日期、成本预算等。
2 项目活动确认及排序
完成项目工作分解后,应对所确定的可交付成果的具体活动进行分析确认和排序,为编制项目计划打基础。
2.1 项目活动确认
依据项目工作分解结构的成果、其它关于项目范围的说明性文件、项目约束条件、项目的假设前提、管理计划和单位的历史信息等[3]确认项目活动。对于一些小项目,可通过大家集体研究讨论,集思广益的方法,形成可行的活动清单并估算所需时间,对于较大、较复杂的项目,则需要由相应领域专家研讨或使用一定的工具和方法来确认项目活动,这些方法包括:进一步使用活动分解技术、采用已有模板法、领域专家判断法等。项目活动确认后,形成的结果包括:涵盖项目所有必要活动的项目活动清单、描述项目过程中基本关键点的项目里程碑图等,此外,还应适时更新项目工作分解结构图和项目总体管理计划。
2.2 项目活动排序
确认了项目活动,要识别各项活动的相互关系,项目活动之间的关系也称为项目活动之间的先后信赖关系,包括人们无法改变的硬逻辑关系和需由各种因素综合确定的软逻辑关系,在项目活动排序时,要根据项目活动清单、项目里程碑和一些约束条件,先识别并安排硬逻辑关系,再安排软逻辑关系,同时要考虑项目假设条件和外部条件的影响。项目排序图的编制方法可以采用节点图法或箭线图法。项目排序的最终结果,是描述项目各项活动相互关系的项目网络图及其活动说明,项目网络图应包括项目的主要活动和情况,并明确各活动之间的逻辑关系或依赖关系,在网络图的说明中,应描述活动排序的基本方法,对于特殊的排序应进行说明。
2.3 项目时间估算
项目时间估算是指根据项目范围、资源及相关信息,对项目已标识的各活动持续时间所进行的估计。大多数项目活动时间的长短,取决于人力、物力、财力及资源的多少,同时还受人的能力、物资质量和设备效率的影响。对项目活动时间进行估算时,即要考虑各活动所消耗的实际工作时间,也要考虑活动的延迟时间。因此,一般由熟悉项目活动或有经验的人员或团队,采用专家判断法、类比估算法或模拟估算法完成。
3 项目进度计划编制
编制项目进度计划,是综合分析项目活动排序、持续时间、资源需求和进度约束,确定每一个项目活动及整个项目起始和完成日期,建立一个相对科学可行的项目进度计划的过程。编制项目进度计划是一个迭代过程,需要运用科学的计划方法,将时间、经费、人员、设备及各种资源作统筹安排,还要与其它相关项目协调一致。
3.1 编制依据
编制项目进度计划的依据包括:项目活动排序后得到的项目网络图、项目活动估算得到的时间值、现有的和能取得的资源、项目时限和重要里程碑、项目约束条件以及其它风险和假设前提。
3.2 编制方法
根据不同项目的具体情况采用不同的方法,本文重点介绍编制项目进度计划的3种方法。
(1)甘特图法。甘特图又称横道图或条形图,它是通过赋予时间以含义的横道图形式,列出项目活动工期及其相应的开始和结束时间,以反映项目进度信息的一种可视化计划方法。甘特图左侧列出项目活动和工期,顶部列出时间,横道长短代表活动持续时间长短。甘特图的优点是简单、明了、直观、易于绘制,缺点是不能系统地将项目各项活动之间的逻辑关系表示出来,也不能进行定量分析和计算,更不能指出影响项目的关键所在。
(2)关键路线法。关键路线法也是通过横道图以日历形式列出项目活动、工期、相应的开始结束时间来进行规划。它与甘特图的不同之处在于,它运用特定的、有顺序的网络逻辑方法来预测总体项目历时,是一种数字分析技术。关键路线法的重要功能是确定项目的关键工作和关键路线,关键路线的确定是将项目网络图中每一条路径上的所有项目活动的历时分别相加,最长的那条路径就是关键路线。
(3)计划评审技术。计划评审技术是指当项目或项目某些活动历时估算存在不确定性时,运用加权平均历时估算法,来估算项目历时的网络分析技术。这种技术适用于不可预知因素较多,或从未做过的新项目或复杂项目。计划评审技术网络图的画法与一般网络图画法相同,不同之处在于对项目活动时间的估计和分析[4]。
3.3 编制结果
编制项目进度计划的主要成果用表格或图表形式呈现,项目各项活动都标明了各种日期参数的项目进度计划文档。此外,还应包括进度管理计划,用以明确项目进度计划发生变化时的处理原则。
4 项目进度控制
项目进度控制是进度管理的重要内容和过程,是前期一系列进度计划工作的延伸,是进度管理中与实施并行的实践性关键阶段。
4.1 进度控制依据
项目进度计划是经过论证和批准的,在技术和资源上具有可行性,所以是项目进度控制的主要依据。通过项目跟踪监测和沟通形成的有关项目进度的绩效报告、根据项目进展情况提出的变更请求、编制进度计划时形成的进度管理计划,也都是进行项目进度控制的依据。
4.2 进度控制主要工作
控制项目进度的主要工作是:依据作为项目进度基准的项目进度计划,通过跟踪监测和沟通,采用一定的工具和方法进行分析比较,确定项目进度是否发生了变化,如果发生了变化,找出变化的原因,对影响变化的因素进行控制或制定项目进度的补充计划,从而确保进度变化朝着有利于项目目标实现的方向发展[5]。控制项目进度还可以借助项目管理软件来实现。
4.3 进度控制结果
进度控制的结果有两种,第一种是项目所有进展均按计划顺利进行的理想情况;第二种是发生一些偏差,并制定一系列纠偏措施,之后更新项目进度计划。两种情况均应记录项目控制的经验或教训[6]。
参考文献
[1]关保昌,沈建明.现代国防项目管理[M].北京:军事科学出版社,2011.
[2]祝振铎,董雄报.信息系统项目工作分解结构(WBS)研究[J].硅谷,2011(15):78-78.
[3]方德坚,张杨华.也谈软件项目进度管理[J].赤峰学院学报:自然科学版,2011(5):15-16.
[4]王芙蓉.软件项目进度计划与风险控制研究[D].大连:大连海事大学,2009.
[5]徐飞汀.软件项目进度计划管理研究[D].北京:北京邮电大学,2010.
软件开发项目管理信息系统研究 篇9
1 软件开发项目管理信息系统的发展现状
1.1 国外软件开发项目管理信息系统的研究现状
在国外,依托计算机应用的项目管理在上个世纪就已经出现,随着网络计划技术的不断发展以及网络分析程序的不断完善,分析软件所具备的应用功能也在不断拓展,软件开发企业为了实现软件开发项目管理信息化,越来越关注和重视开发项目管理信息系统的研究和设计。从功能层次角度来看,项目管理软件的不断发展,逐渐分离出三个功能层次,第一层次是基本功能,主要是模拟基础工作流程,实现资源共享,便于项目管理人员操作,基层功能开发在上个世纪80年代就已经完成 ;第二层次体现为两大特点,在基本功能基础上产生分析功能,并通过建立数学模型生成预测功能,再有就是借助网络应用技术,实现了在局域网上的多项目管理,打破了地域的限制,即实现了使用功能和通讯功能 ;第三层次是项目管理功能,旨在提高管理系统的兼容性,实现在线管理。随着各种技术的不断发展,软件开发的日益深入,软件开发项目管理的重要性逐渐显现出来,其在资源管理、进度控制、质量监督、项目跟踪等方面都发挥着积极的作用。
1.2 国内软件开发项目管理信息系统的应用现状
自上个世纪70年代起,国内开始关注项目管理软件的开发和研究,但一直处于初级水平,直到90年代,国内研发主体开始转变为软件企业,项目管理软件研发的专业化进程开始加快,由原来的自主研发、自己使用的小生产方式过渡到社会化大生产,软件产品的功能才得以拓展,随着集成技术的广泛应用以及运行环境的改变,也实现了资源共享。然而近年来国内软件开发企业过于依赖国外技术,项目管理软件的开发和研究出现了滞缓现象,除了技术因素制约外,市场因素也在一定程度上限制了国内项目管理软件的发展。就软件行业发展状况来看,国内软件产业虽然保持着持续增长的势头,但是软件市场并不乐观,市场繁荣的背后隐藏着巨大的危机,真正拥有自主知识产权的软件产品很少,而且主流软件产品也缺乏市场竞争力。
概括而言,现阶段国内软件开发项目管理存在的问题主要体现为以下几点 :其一,不重视项目管理,在实际工作中,管理人员主要依赖于个人的知识技能,缺乏相关理论的指导,管理工作存在很大的盲目性和随意性 ;其二,项目计划有待完善,管理人员对企业的阶段性计划和总体计划的作用缺乏认识,开发目标并不明确 ;其三,不重视项目沟通,信息的利用率不高,缺乏有效的沟通,项目组织结构混乱,项目管理阻碍重重 ;其四,变更管理有待规范,软件开发项目的质量和进度与需求变更联系密切,由于缺乏有效的软件管理机制,变更管理不规范,使得软件开发项目的质量和进度受到了很大程度的影响 ;其五,不重视风险防范,管理人员不具备分析风险的能力,风险防范意识淡薄,缺少应对风险的策略。总而言之,国内软件开发企业主要将精力放到了技术层面上,并没有建立起完善的软件开发项目管理信息系统,现阶段国内软件开发企业的当务之急就是要将软件开发项目和项目管理信息系统融合起来,加强项目管理,提高市场竞争力。
2 软件开发项目管理信息系统的总体设计方案
2.1 系统功能结构设计
项目管理依托于必要的理论知识以及技术和工具,涉及到九个知识领域和五个实施阶段,九个知识领域主要包括项目综合管理、范围管理、质量管理、进度管理、成本管理、沟通管理、人力资源管理、采购管理和风险管理,将这些领域的工作内容应用到软件项目管理中,可以分为五个实施阶段,通过对整个阶段流程运作的管理来实现项目管理预期,基于项目生命周期理论的五个实施阶段,主要分为项目启动阶段、计划阶段、执行阶段、控制阶段和结束阶段,项目开发过程也可以划分为五个实施阶段,实现流程化管理。
对九个知识领域和五个实施阶段进行需求分析,确定软件开发项目管理信息系统的总体功能结构,可以将系统细化为十一个子系统,即综合管理系统,根据项目计划,确定组织程序,实施统一管理,实现项目目标 ;计划管理系统,主要负责各种项目计划的编制、审批、查询等 ;需求管理系统,主要包括变更控制和需求跟踪两部分内容 ;费用管理系统,主要负责项目费用的规划、估算、预算和控制 ;质量管理系统,主要负责项目质量的规划、保证、控制和持续改进 ;人员管理系统,主要包括项目成员沟通管理和个人信息管理两部分内容 ;配置管理系统,主要提供产品入库、变更和配置报告方面管理的功能 ;进度管理系统,主要负责项目执行过程的跟踪、协调和控制 ;风险管理系统,主要负责风险计划制定、风险分析和风险控制的任务 ;售后服务系统,主要提供技术支持、管理规范、在线服务、客户沟通等功能 ;后台管理系统,主要提供数据导入导出、数据表维护、用户数据管理、操作日志管理等功能。
2.2 基于 B/S 结构的设计思想
随着计算机网络技术的不断发展,基于Web的网络管理模式得到了广泛的应用,任何一种Web浏览器都能够在网络节点上实现快速配置和控制,与传统工具相比优势明显,它具备可维护性、升级能力强、开发周期短、远程访问方便等特点,能够兼容多种开发语言,可以直接对数据库进行访问或直接建构客户端界面。传统基于C/S的网络构建模式虽然在在文件服务器模式性能上已经有了很大的改善,但是还存在着一定的局限性,如开发成本高、开放性和跨平台性差、资源冗余度大、生命周期短、安装和维护升级比较困难等,为了改进基于C/S结构的软件开发项目管理信息系统存在的缺点,B/S结构应用而生,并得到了广泛应用,现已成为C/S结构的代换技术。传统的C/S网络结构模式是二层结构,新发展起来的B/S模式是三层结构,即在表示层和功能层基础上又增加了数据层,不仅简化了客户机的工作,还能够在服务器上完成对数据库和应用程序的直接访问,克服了传统C/S模式的局限性,具备开发成本低、开放性和跨平台性强、生命周期长、安装和维护升级比较容易等优点,已经成为现阶段网络开发的主流技术,基于B/S结构的软件开发项目管理信息系统的应用前景十分广阔。
2.3 系统总体技术设计
软件开发项目管理信息系统的总体设计方案包括开发技术支持、数据库设计、安全性设计和运行环境设计四方面内容 :其一,开发技术支持,管理系统的开发技术应采用目前的主流技术,即B/S网络结构模式主要由浏览器、Web服务器和数据库服务器组成,该系统无需安装客户端软件,只要将服务器连接到网络上,就能够实现操作,克服了传统开发应用程序的限制,为软件开发项目提供了更具模块化的设计方式 ;其二,数据库设计,数据库信息建模以及范式分解直接关系到数据库系统的运行效能,因此在设计中应力求逻辑关系简单,简化数据库表的连接操作程序,从而增强系统的整体运行性能,数据库设计的关键在于保证数据库的完整性,主要包括三类数据库表的设计,即基本信息数据表、系统信息数据表和工作表,要保证其在实体、值域、引用以及用户定义等四个方面的完整性 ;其三,安全性设计,基于B/S结构的软件开发项目管理信息系统,具有开放性特点,为了保证系统的安全性,有必要对用户进行分层分级管理,设置加密、权限访问等功能,增强系统的安全性 ;其五,运行环境设计,选择先进的客户端和软硬件,性能良好的应用程序和数据库服务器,如硬件环境可选用小型机配置,创建良好的系统运行环境。
3 管理信息系统各子系统功能的实现
软件开发项目管理信息系统可以细化为十一个子系统,在此以需求管理子系统为例,需求管理的核心是需求分析,这是整个软件开发过程的基础,根据需求工程设计的领域,可以将需求管理子系统分解为获取、分析、规范、验证、变更五个环节,在此基础上设计相应的功能模块。鉴于数据结构设计是系统实现的基础,需求管理子系统的设计思想就是要将功能模块转化为数据结构,然后在通过计算机语言将这些功能实现,需求管理子系统数据结构设计主要包括基本信息表、项目需求表、需求状态表、分析报告表、变更表等内容。对于需求单据的状态变化,主要通过枚举定义来控制,要想获取需求,首先要填写需求单据,需求单据设计包括编码、名称、状态、内容、审核意见等流程,需求单据设计完成后,在此基础上对填写的数据单据进行需求分析和需求规范,然后执行,然后进入验证阶段,得出分析报告表,进行需求变更管理。
4 结论
基于软件项目管理的目标控制研究 篇10
随着社会和经济的快速发展, 带动了项目建设的蓬勃发展, 特别是软件项目和工程项目, 为了适应市场经济的要求, 各行业都在进行新型的项目管理模式, 软件项目管理是与软件项目实施阶段的管理有实质上的差异, 其表现为管理工作的范围更加全面, 管理要素更加复杂, 管理深度也相对宏观。从近年来的实践经验看到, 软件项目管理优劣决定了企业效力和可持续发展的能力, 软件项目管理好则项目成功率高, 项目管理劣则项目成功率低, 所以加强和优化项目管理非常重要。本文将结合项目管理中的控制方法分析软件项目管理控制的相关问题, 以期提高软件项目的开发效率。
1 关于软件项目管理
1.1 项目与项目管理
项目是一个旨在完成一个或一些独特产品或服务的过程, 它有着一系列被详细描述的属性。由于项目的独特性和一次性特征, 引伸出它的其他特点。如目标的确定性, 成果的不可挽回性组织的临时性和开发性等。基于项目的这些特点, 项目运作更加注重项目决策前的计划以及对实施过程的控制, 以减少项目运作的风险。项目管理是20世纪50年代后期发展起来的一种计划管理方法, 它运用先进科学的管理方式, 有效解决大型组织的效率低下和小型企业面临的风险增加问题以组织的机动灵活, 面向客户和资源利用率高而被广泛应用。在软件项目的开发、实施中经常会遇到进度拖延、费用超支、质量不达要求等问题除去极少数是因为技术原因造成, 绝大部分是源于僵化的管理和不当的管理方式。
1.2 软件项目管理
各软件企业都在积极将软件项目管理引入开发活动中, 对开发实行有效的管理。从概念上讲, 软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成。而对成本、人员、进度、质量、风险等进行分析和管理的活动。同时, 随着软件开发规模及开发队伍的逐渐增大, 软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理, 专业分工也可以降低对开发人员的要求, 从而降低产品研发成本。
2 软件项目控制
既然项目管理的精髓在于控制, 那么如何进行有效的项目控制呢?控制是一个过程, 衡量朝项目项目目标方向的进展, 监控偏离计划的偏差, 采取纠正的措施是进展和计划相匹配, 项目符合既定的目标。项目的控制阶段超越项目生命周期的其他阶段, 它涉及到9个项目管理知识领域中的7个领域: (1) 项目的综合要求整体变更控制, 输出包括项目计划的更新、纠正措施和吸取的教训。 (2) 项目的范围管理包括范围变更控制, 关键的输出是范围变更。 (3) 项目的时间管理包括进度控制, 关键的输出是进度计划更新。 (4) 项目的成本管理设计到成本控制, 输出包括修改的成本估算、预算更新、完成估算。 (5) 项目的质量管理包括质量控制, 输出是质量提高、接受决策、返工、完成的检查表和过程调整。 (6) 项目的沟通管理包括绩效报告, 输出是绩效报告和变更请求。 (7) 项目的风险管理设计风险应对措施控制, 输出是风险管理计划的更新。
2.1 软件项目控制
软件项目跟踪和监控包括对照已文档化的估计、约定和计划评审和跟踪软件完成情况和结果。基于实际的完成情况和结果调整这些计划。软件项目的已文档化的计划 (即软件开发计划, 正如在软件项目计划关键过程区域中所描述的) 用作跟踪软件活动传送状态和修订计划的基础管理者监控软件活动。主要通过在所选出的软件工作产品完成时和在所选择的里程碑处, 将实际的软件规模工作量成本和时间表与计划相比较, 来确定进展情况。当确定未实现软件项目计划时, 采取纠正措施。这些措施可以包括修订软件开发计划以反映实际的完成情况和重新计划遗留的工作或者采取改进性能的措施。
2.2 软件项目控制的内容
软件项目控制的目的是为软件项目的过程提供足够的能见度, 从而可以在执行过程中发生对计划的严重偏离时能够采取适当的更正行为。软件项目控制包括:追踪软件项目的进展于表现从而与所作的估计、承诺和计划做出对比;追踪软件项目的风险;在发生对计划的严重偏离时采取适当的更正行为。
2.3 软件项目控制步骤
由于软件开发是处在一个开放的动态系统中, 开发环境的不断变化要求不断修改项目计划, 以适应新的变化。此外项目经理及其组织在完成任务的过程中不可避免的要碰到这样或那样的问题, 解决这些新的矛盾和问题均属项目控制的范畴项目的预算和进度计划只能为项目经理提供决策的依据。如果在项目实施过程中控制不住, 很难在限定的时间和预算要求下实现项目管理工作的目标。因此软件项目控制的过程包括以下四个步骤:a、预测什么会发生——要做出开发计划并建立工作标准;b、查明什么正在发生——用建立的工作标准检查当前的工作;c、正在 (或已经) 发生的实事同预测的结果进行比较——分析误差产生的原因;d及时采取补救措施, 以满足项目目标, 预算和进度的要求。
3 软件项目控制具体操作
3.1 软件项目进度控制
为了确保软件开发中的各项工作能按照计划预定的日程顺利完成, 对项目的进度要进行控制。进度控制的过程是, 在项目实施过程中, 不断地进行实际进度值与计划值的比较、发现偏差、检查分析其产生的原因, 并采取相应的措施加以解决。
3.1.1 进度控制流程 (1) 进度控制的输入
◆进度计划。项目进度基准是项目测量和报告的基础和标准。
◆实施报告。实施报告提供了有关项目进度发展实情。报告未来可能发生的进度问题。
◆变更要求。项目变更要有严格的申请和审批手续。
◆进度管理的技术和工具。
(2) 进度管理的技术和工具
◆进度控制变更系统。为有效实现进度管理与控制, 进度控制系统应设立实现重新计划的全部功能。包括:文件设立, 跟踪即实施报告, 变更评估等。
◆实施情况测量。项目进度控制系统中的一个重要组成部分是决定对迟发生的进度偏差是否采取纠偏措施。而实施情况报告提供了决策的主要信息。如变更分析, 趋势分析, 已实现价值分析等。
◆纠偏计划。很少有项目能完全按计划进度进行为实现项目进度或总进度要求, 在项目实施过程中, 需要不断对原计划进行调整或增加新的工作内容。为此, 需要不断对实施的项目进行活动时间预测。修改活动过程.替代进度方案分析。
◆项目管理软件。它的作用是跟踪项目按计划日期展开实际工作的情况, 对照进度计划分析进度现状, 找出进度的偏差, 分析进度偏差对项目的影响, 预测未来走势。
(3) 项目进度控制的输出
进度更新。包括对项目管理中任何进度信息的修改。进度调整是其中的一种进度计划中活动开始和结束时间的改变。
纠偏行动。通过改变资源投入将实际进度拉回到计划的行动过程。
从中获得的教训。有关进度偏差产生的原因。纠偏方案的评估与选择以及其他方面的感受和教训都应纪录在案成为日后有用的历史资料。
3.1.2 进度控制方法
一般项目进度控制采用因果分析.分析用四步完成:
(1) 明确问题。实际完成情况与项目里程碑相对照, 确定是否超期, 超期的部分是在哪里。
(2) 查找产生该问题的原因。位从系统角度充分认识各方原因, 应组织具有代表性任务人员并采用头脑风暴法进行。项目主管要通过他领导的办公室或小组, 以及在各职能部门的代理人共同分析问题产生原因。
(3) 确定个原因对问题产生的影响程度。对影响程度的评估可以采用专家小组打分的方法, 事先确定权数.而后打分得出分析结果。
(4) 画出带箭头的鱼刺图。分析出原因后各部门各就其职针对问题提出解决方案, 并实施。
3.1.3 软件项目进度控制具体措施
在实施进度计划过程中, 会有种种故障:客户的需求进行了补充或修改;工作量估算不准, 造成进度不平衡或是有人不遵从开发规范, 导致产品出现缺陷;或是技术环节出现故障, 这些问题往往是在进度计划外出现的。一旦出现这些问题, 项目进度不得不进行调整。开发过程中为了有效控制类似问题, 可以采用以下辅助措施, 控制进度按计划执行:
(1) 政策性措施。对于不遵从开发规范, 人员不按时履行职责的, 给予经济或是职务上的处罚, 这种措施应是建立在分配任务之前;
(2) 人员安排。在各子项目接口处适当安排机动人员与机动时间。这一措施有赖于项目组织的机构设置能动性好。此处比较难解决的是人员业绩评估, 奖励问题。
(3) 技术措施, 要想很好地执行进度计划, 需要事先有统一的规范例如开发语言的统一, 文档的归类。这样便于下一阶段人员理解上一阶段人员意图, 交流更加容易。
(4) 信息流措施。该措施要求建立一个信息流系统, 准时汇报项目进度, 便于主控人员调整进度, 并且保证信息流通顺畅。避免开发期压到最后造成严重拖工。
(5) 资金措施。财务部门可以定期检查各部门财务情况, 控制资金流出时间, 进而控制项目进度。这与后面要讲到的三者权衡有密切关系。
3.2 软件项目费用控制
费用控制就是要保证各项工作要在他们各自的预算范围内进行。其基础是实现就对项目进行费用预算。整个项目费用应包括项目范围规划阶段。软件需求分析阶段, 原型设计阶段开发阶段、测试阶段和项目投入使用后的使用阶段所消耗费用的总和。软件开发项目承担公司为了完成项目目标和获得更多的利润, 在实施项目过程中就要控制成本。在控制过程中, 首先要拟定一个标准, 即计划值。然后进行实际至于计划值的比较, 确定实际值与计划标准的偏差大小, 以便在此基础上采取各种措施纠正偏差, 常用的分析工具是偏差分析。
偏差是指实际成本对相应计划的偏离, 成本偏差的数学公式为:
CV=BCWP-ACWP (负数CV表明出现超支;反之, 则节资)
其中:CV为成本偏差, BCWP为计划工作预算, ACWP为完成工作实际成本。
偏差值是控制分析中的一个关键参数, 因而应向各级组织汇报。对于不同的项目或同一项目不同阶段或不同管理层次, 对偏差的控制程度不一样, 制定偏差允许值的方法也不同。由于随着时间的推移风险减少了, 因而偏差允许也可降低。
3.3 软件项目质量控制
对于软件产品的项目质量控制应是事前有预控, 过程有监控的主动控制闭环系统。 (1) 事前预控:根据影响质量因素多等特点。软件项目质量必须事前预控, 及根据软件的类型和特点, 以及以往类似项目的常发病和预防措施, 对软件项目质量提出事前预控措施, 包括制定控制的计划和程序, 这是项目质量控制的前提。 (2) 过程监控:根据易产生质量波动和易产生系统因素变异等特点, 软件项目质量必须过程监控, 即按照预控的计划和程序, 对工序、分项、单元的全过程进行过程监控, 包括监测、检查、控制和评定。这是项目质量控制的基础。
4 结语
软件开发项目在进度、费用和质量三方面均需要进行控制, 因此还存在三因素的权衡问题。实践中, 需要在三方面均进行行之有效的控制措施才能确保项目完成情况与计划最大限度的接近。本文提供了一些方法借鉴, 对软件开发项目控制有一定的实际意义。
参考文献
(1) 美国项目管理学会 (PMI) :项目管理知识体系指南 (PMBOK 2000) , 北京现代卓越管理技术交流中心, 2001
(2) Project Management Institute:A Guide to theProject Management Body of Knowledge (PMBOK2000) , 2001
(3) Project Management Institute:A Guide to theProject Management Body of Knowledge (PMBOK1996) , 1996
(4) International Project Management Association:ICB-IPMA Competence Baseline, Eigenverlag, 1999
(5) 中国项目管理研究委员会:中国项目管理知识体系与国际项目管理专业资质认证标准, 机械工业出版社, 2001
(6) (美) 杰克.吉多等著, 张金成等译:成功的项目管理, 机械工业出版社, 2001
(7) (美) 斯蒂夫.迈克康奈尔著, 席相霖等译:快速软件开发—有效控制与完成进度计划, 电子工业出版社, 2000
计算机网络管理软件的分析研究 篇11
关键词 网络管理软件 软件使用 常见问题
中图分类号:TP3 文献标识码:A
计算机网络的普及导致网络管理软件的广泛使用,但很多用户对网络管理软件的了解还不是很清楚,而且由于网络上可以下载的网络管理软件很多,导致用户很难辨别适合自己的网络管理软件。用户可以找到适合自己网络类型的网络管理软件,了解到关于常用网络管理软件的使用、应用范围、注意事项等。在研究的过程中可以通过对不同的企事业单位网络管理软件的使用情况的调研,并结合在网络中查询到的理论基础,寻找网络管理软件在应用中经常被用到的功能和经常遇到的问题并给出解决方法,遇到网络管理软件中的一些问题能够迅速的排除。
1 网络管理软件概念及应用的简单介绍
网络管理软件属于网络软件(包括网络协议和协议软件、网络通信软件、网络操作系统软件、网络管理软件及网络应用软件)的一种,即通过此种软件来支持行为,提高工作效率。网管软件是专门为网络管理人员设计的,帮助网络管理人员进行自动化的网络监测和管理,最终目的是减少故障,从而提高IT效率。一般来说,网络管理软件应用于网络存在的地方。从实际应用来看,网络管理软件应用于电信、银行、金融、石油石化等各个行业。按照网络管理软件管理的对象,它可以分为系统管理软件和设备管理软件。在这里我们主要研究系统管理软件。从广义上讲,凡是网络存在的地方都需要网络管理,网管软件就是应用在这些领域。从实际运用来看,网管软件应用于电信、银行、金融等诸多行业。从狭义上来讲,网管软件根据角度的不同,存在着不同的划分方式。按照网络管理软件管理的对象,它可以分为系统管理软件和设备管理软件。系统管理软件是对整个网络进行全面、深入监测管理的软件;设备管理软件主要是各网络设备厂商推出的,可以很好地对其网络设备进行管理。
2网络管理软件产品的选择
目前市场常见的网络管理软件也可以按功能划分为:网元管理、网络层管理、应用层管理三个层次,其中网元管理是最基础的。
(1)以业务为中心,把握网管需求
我们必须知道网络使用的设备类型,网络是如何组织的,这是我们选择网络软件最根本的要求。因此我们要列出所有的网管需求,其中哪些是想要的,哪些是不想要的。通过需求表,我们可以清楚的知道现在到底需要哪些功能。一般而言,具体的需求有:向管理员报告服务器上的流量状况、路由器上的流量过载或者网络出现瓶颈;能通过基于策略的网络管理主动采取行动,如重新启动停止的流程等;还应该能向有关人员发出警报,如通过电子邮件或寻呼等;能够提供方便而且强大的方法,显示将受影响的业务过程、业务部门甚至个人。
(2)为应用软件和服务提供环境
SLA(服务水平协议)是反应当前服务状况的一个重要指标,并且逐渐被当作网管产品的重要特性来看待。所以,深刻理解网管产品中的这个重要指标具有重大的意义,有利于衡量服务水平与企业需要之间的匹配程度,从而使之用于报告、趋势分析和容量规划。
(3)可扩展性、易用性和集成性的结合
网络设备多,故障类型多是网管实践中的典型问题。因此,能够集成第3方产品提供的功能是很重要的,因为大部分厂商都依赖于第3方厂商提供一些补充,使系统变得更为完整。因此,可扩展性成为用户选择网络管理解决方案的一个重要标准,另外,从管理的方便性考虑,一些实用的网络管理手段也必须考虑到,才能提高网络管理的效率。目前很多网管产品都提供试用版本,我们可以向一些企业提出试用申请,只有体会到可扩展、易用、高集成的特点后,才能有的放矢的进行产品定型。
(4)标准支持和协议的独立性
SNMP等标准已经成熟,所有人都可用它们制作产品。真正的全面网络管理解决方案应支持现有甚至新兴的标准,将其纳入自己的体系结构。不仅要支持SNMP,还要支持DHCP(动态主机配置协议)和DNS、DMI(桌面管理规范)及CIM(公共信息管理)。无论网络管理员以后选择哪种技术或设备,解决方案都能监视和管理整个网络。真正的企业网络管理解决方案应支持所有网络协议,应能在各种类型的硬件和操作系统上运行,而不仅仅贴近某个厂商或某种操作系统。
3 结论
目前市场上的网络管理软件很多,可以说能够基本满足各种用户的需要。当用户管理的网络是企业等大型的网络类型时,可以采用聚生网管等被广泛使用的软件,也可以考虑一些国外常用的软件,但这些软件多收费较高,且不适合本土使用;用户管理的网络是中小企业、学校等中型的网络类型时,可以考虑使用网路岗网路管理软件,用户是为了管理儿童上网时间等家庭用户时,家庭网络哨兵等免费的网络管理软件是更加理想的选择。
参考文献
[1] 邵明正,齐剑锋,韩震.基于功能路径的软件可靠性评估方法[J].计算机工程与应用,2010(1).
[2] 马玉春,汪文彬,李应勇.基于TCP 客户机的计算机监控系统测试软件的设计[J].软件,2014(04).
[3] 张楠,郑继亭.基于计算机技术的软件测算法[J].现代电子技术,2014(06).
[4] 马玉春,汪文彬.基于TCP服务器的DI/DO模块的软件仿真[J].软件,2014(04).
软件项目管理研究 篇12
软件管理工程的发展, 经历了从20世纪70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征的结构化生产时代, 到20世纪90年代中期, 以CMM模型的成熟和日益为市场接受为标志, 已经进入以过程成熟度模型CMM、个体软件过程PSP和团队软件过程TSP为标志的以过程为中心的时代, 而软件发展第三个时代, 即软件工业化生产时代, 以20世纪90年代中期软件过程技术的成熟和面向对象技术、构件技术的发展为基础, 已经渐露端倪。
1 小规模企业软件过程管理现状
1.1 小规模软件企业特点。
小规模的软件企业或软件开发机构的数量在我国软件产业中占据很大的比重, 其突出的特点主要表现在具有灵活机动、响应速度快, 组织结构简洁、管理清晰快捷、执行力高, 把握优势业务领域、熟悉行业需求等方面。但具备这些优势的同时, 兼具有人力资源不足、人员流动性高, 规范程度不高、制度约束度低, 对于人的依赖性较高, 经验到制度的转化程度较低, 软件销售收入占总收入的比重较低、维护成本较高等缺点, 这也是小规模软件企业在管理过程中不容忽视的重要问题。
1.2 小规模软件企业应对策略。
如何最大限度地避免这些问题的产生呢, 除了一些不能改变的客观因素外, 软件过程管理与改进策略研究在其中占得分量也越来越重, 也越来被人重视和研究。提升软件过程的管理水平日益成为工业界和学术界共同的关注点, 软件过程管理是提高生产效率和保证软件质量的一个重要方法。在产品开发的整个生命周期中包括一系列复杂的活动, 和其他管理过程类似, 现代软件过程管理工作也逐渐趋向复杂。根据企业的实际情况和发展需求, 优化流程, 努力提升人们在过程中的工作能力, 从而提升产品质量、提高生产率并降低成本, 这是软件过程改进的目的。
具体到软件过程来讲, 软件开发组织经常会遇到诸如项目经常会延期, 任务完成进度难以控制、开发人员不会编写和利用软件文档、需求难以控制, 疲于应付需求的变更、软件质量难以保证、软件版本混乱、没有有效的项目管理方法和实践指导等问题, 从而影响软件质量与交付, 引发客户抱怨, 满意度降低。针对普遍存在的这些管理与技术问题, 大多数软件开发组织已意识到应当在软件过程规范、管理、改进方面采取一系列改进措施和辅助手段, 如当前业界比较流行的建立质量管理体系、进行CMM/CMMI认证等。
1.3 我国小规模软件企业的现状。
目前国内专门从事软件开发的企业有数千家, 而这些软件企业主要以中小规模为主。根据有关统计数据结果分析, 主要组成结构为:50人以下的企业占55%;50~200人的企业占42%;1000人以上的企业为数不到3%。这些中小软件企业一般具有一些共同的特点, 这些特点将直接影响中小软件企业采取什么样的方式来实施软件过程改进活动。软件过程是指软件开发人员开发和维护软件以及相关产品 (如项目计划、设计文档、代码、测试用例和顾客手册) 的一套行为、方法、实践以及变化过程软件过程管理的重要前提是:软件产品质量的好坏主要取决于开发和维护该产品所使用的软件过程质量。有效的软件过程可将人员、工具和方法进行有机结合。作用对象:软件及其相关产品包括:活动、方法实践和革新。
2 软件过程管理及其改进策略
2.1 选择重点, 优先突破。
软件过程改进应选择重点领域, 循序渐进。因为软件过程改进是要在一定程度上颠覆软件企业现有的软件开发和管理过程, 因此对于已经习惯了固有的工作模式的项目经理、开发人员甚至是企业管理者来说, 大规模的改动相反会起到适得其反的效果。因此应该从企业的软肋出发, 逐渐突破, 在一些重点领域, 让企业尝到过程改进的“甜头”, 从而更好的推进组织级的软件过程改进。
从软件开发过程的角度来讲, 不同的软件企业都有不同的开发过程, 而且不同的软件项目也会采用不同的开发过程, 而开发过程中的需求、设计、编码等阶段, 较大程度上依赖于企业自身的技术实力和开发人员的知识、经验及综合能力。而软件过程改进的核心和重点在于管理, 因此本文建议将以下几个方面作为软件过程改进的重点领域。
2.1.1 注重项目计划与软件测试工作。
项目计划是项目成功的关键, 许多项目的失败都是由于计划制定得不合理或者计划执行不到位而引起的。项目计划应对项目进行合理的规模、成本、工作量等方面的估算, 正确的估算是制定项目计划的前提;根据项目自身特点与项目组人力资源状况进行一定粒度的分解。确保每项分解后的任务均可对应到相对比较适合完成这项任务的项目成员;项目任务要充分并行, 提高人力资源的利用率;计划安排应留有一定余地, 避免出现前松后紧的情况;面对项目计划变更应进行合理评估, 考虑到所有可能会受到影响的因素。
软件质量是软件企业核心竞争力的首要体现, 而软件测试则是软件质量的重要控制措施。规范软件测试过程, 将对软件质量的提高起到重要作用。软件测试应由独立的软件测试团队执行, 只有这样才能保证软件测试的公正与客观;软件测试计划应尽早制定, 软件测试应尽早进行, 软件需求确定之后, 就应该开始制定软件测试计划;软件缺陷应规范管理, 确保所有缺陷都分配到人;结合使用各种软件测试方法;不应忽视软件性能方面的测试与调优。
2.1.2 注重配置管理与质量保证。
一个软件项目的所有相关资料, 如文档、代码、工具、安装程序等均可作为该项目的配置项。良好的配置管理可以确保软件的一致性。而对于规模较大的并行开发项目来讲, 配置管理尤为重要。应做好配置管理计划, 选择合适的配置管理软件;对于软件版本进行统一管理, 确保多个开发人员协同开发不发生冲突;对于基线配置项的变更应制定变更控制流程, 使整个开发与管理过程可追溯可跟踪。
软件测试侧重于对软件产品的质量检查和控制, 质量保证则侧重于对软件过程进行质量检查和控制。产品和过程是一个软件项目成功的必不可少的两个重要因素, 其中产品质量是短期、项目级的影响因素, 而过程质量是长期、组织级的影响因素。质量保证也应由专门的人员进行;主要对项目计划、项目里程碑、阶段成果等进行质量检查, 记录和跟踪质量问题;质量保证人员可以由软件测试人员兼任, 以平衡人力资源的使用;质量保证人员应客观、公正的进行工作。对于以上四个过程领域的改进方法, 本文建议首先从建立规范人手, 然后在规范的实施过程中, 逐步进行修订和完善。一个规范通常由角色职责、工作流程、文档模板、工具支持等四部分组成:具有不同职责、权限的执行人员, 按照既定的工作流程进行相关的工作活动, 并将T作过程记录以文档的形式保存下来, 辅以一定的管理工具, 方可保证其工作产品的质量并使其具有延续性和可维护性, 这也正是建立规范的主要目标。同时, 在规范的范畴内, 所有人员遵循同样的行为准则, 能够更好的进行沟通。
2.2 结合优秀的软件过程元素。
CMM/CMMI是目前业界进行软件过程改进的首选模型, 其实CMM/CMMI已成为事实上的标准。世界各国的软件企业纷纷遵循CMM/CM-MI建立起软件过程规范, 积极进行CMM/CMMI的认证。然而如前文所述, 我国的中小软件企业未必适合完全按照CMM/CMMI来进行软件过程改进, 反而可以结合众多软件过程模型, 从自身的实践中总结出一套适合自己的软件过程改进模式。RUP (Rational Unified Process, 统一过程) 的迭代思想和XP (eXtreme Programming, 极限编程) 的测试驱动开发方法即可以尝试引用到企业当前的软件过程中来。
2.3 重视个体软件过程改进。
开发人员是一个软件企业组中最小的开发主体, 开发人员编码质量的高低、工作计划是否恰当、时间利用率的高低、缺陷率的高低等均会对软件质量以及组织的软件过程产生重要影响。因此, 个体软件过程 (PSP, Personal Software Process) 的概念被提了出来, 相应的也出现了个体软件过程改进这一概念。
PSP是一种用于控制、管理和改进软件开发人员的个人工作方式的过程, 它包含一套完整的方法、表格和规程, 用来指导开发人员如何计划、度量和管理自己的工作。个体软件过程改进可以首先从计划管理、缺陷管理、时间管理等几个方面入手, 同时可以配合任务检查单等工具。通过锻炼个人工作估算和计划能力, 提高对工作任务的驾驭程度;通过管理缺陷, 提高个人以及整个项目对于软件缺陷的控制程度;通过记录和分析时间利用情况, 来掌握工作效率以及时间利用率等方面的一些基础指标;任务检查单, 则可以与计划管理和缺陷管理搭配使用, 有利于个人工作任务的管理。
2.4 重视自评估。
软件企业经常会盲目地进行软件过程改进, 在没有明确自身软件过程处于何种阶段、何种水平的情况下, 贪大求全地建立了一整套软件过程规范, 而实施效果却差强人意。因此, 在进行软件过程改进之前, 以及在进行持续改进的过程中, 对自身软件过程进行自评估是非常必要的。软件过程自评估主要采用调查问卷的方式, 另外可以结合某磐软件度量的方法, 通过定性和定量相结合的方式, 形成当前软件过程状态的评价。调查问卷方式, 需要设计关于软件过程现状的调查问卷, 这些问卷可以是针对某个过程领域的, 也可以是针对整个软件过程的。然后在组织内部选择不同岗位的人员参与一次评估, 根据问卷调查结果, 得出相应的结论。
2.5 适当利用辅助工具。
软件过程管理与改进的本质是一个管理的过程, 管理就需要遵守规则。利用软件工具进行软件过程管理是软件企业普遍采用的方式。目前在软件企业应用较多的软件类别有项目管理工具、配置管理工具、软件测试工具、缺陷管理工具等, 这些工具一般都是针对某一个过程领域, 具有强大、完善的功能, 企业可以根据自身需要选择相应的工具进行辅助管理。但美中不足的在于, 适合于中小软件企业进行整个软件过程管理的轻量管理工具还不多见, 有些厂商的工具配置复杂、价格高昂, 令中小企业望而却步。
结语
软件过程改进不是一蹴而就的过程, 软件企业需要在不断的积累中持续改进。通过实践总结, 本文提出了几点通用的软件过程管理与改进策略, 旨在为我国中小软件企业的软件过程改进工作提供参考。当然, 对于每种策略的具体实施, 本文并未提出深入的方法, 如基于RUP、XP、CMMI等软件过程模型相结合的软件项目实践、PSP中的软件度量方法、软件过程管理与评估系统的试用与持续完善等, 均是我们下一阶段的重点研究和实践方向。
参考文献
[1]郭莹, 杨美红, 杨萍, 等.中小软件企业软件过程管理与改进策略[J].计算机与数字工程, 2009 (2) .
[2]刚家林, 崔巍.中小软件过程管理模型的研究[J].中国科技博览, 2010 (31) .
[3]闫振兴, 郑骏.软件缺陷度量与软件过程管理方法研究[J].计算机与数字工程, 2010 (8) .
[4]王海阳.软件过程管理及其成本的平衡[J].计算机系统应用, 2005 (3) .
[5]钱懿, 庄长远.软件企业过程管理支持系统的研究[J].电脑知识与技术, 2010 (1) .
【软件项目管理研究】推荐阅读:
软件项目风险研究05-25
软件项目管理规范研究10-16
软件工程考核知识点-第2章-软件可行性研究与项目开发计划07-29
软件项目06-14
软件项目的项目管理12-11
中小软件项目07-14
发展软件项目管理07-08
软件项目管理活动07-26
软件项目管理分析08-02