软件过程与CMM论文Word下载.docx
《软件过程与CMM论文Word下载.docx》由会员分享,可在线阅读,更多相关《软件过程与CMM论文Word下载.docx(16页珍藏版)》请在冰点文库上搜索。
![软件过程与CMM论文Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/4bc3be14-a06f-480b-b536-ff2bb0635d11/4bc3be14-a06f-480b-b536-ff2bb0635d111.gif)
2、软件项目经理在设计开发阶段的职责10
3、软件项目经理在测试维护阶段的职责11
五、小结11
六、参考文献11
软件项目经理的关注点与被关注点
摘要:
软件项目经理指从事软件项目或者以软件开发为主的信息系统集成项目管理的人员,具有很强的沟通、表达能力,具有较强的分析、推理和判断的能力,是广大开发人员向往的职位。
本文主要论述软件项目经理的关注点与被关注点。
关键词:
软件项目经理能力关注点被关注点
1、引言
1、软件项目经理概述
经理也就是manager,即字面意义上的管理,给人们的第一印象就是管理低级员工的上层员工,而加上了软件项目这个具体的定语以后,就不仅仅是一般的管理运营那么简单,除了具备经理所需的管理能力之外,还需要有相关的计算机专业知识,由于软件行业本身的特殊性,更是对项目的成本人员进度质量,以及最重要的风险安全方面有着非常高的能力要求,既要进行准确的分析,还要有令人信服的管理能力。
从而使软件项目可以按照预定的计划顺利完成。
总而言之,软件项目经理指从事软件项目或者以软件开发为主的信息系统集成项目管理的人员,具有很强的沟通、表达能力,具有较强的分析、推理和判断的能力,是广大开发人员向往的职位。
2、软件项目经理职业概况
2.1、职业名称:
软件项目经理
2.2、职业定义:
这类人员既有广泛的计算机专业知识,又具有项目管理技能;
能够对软件项目的成本、人员、进度、质量、风险、安全等进行准确的分析和卓有成效的管理,从而使软件项目能够按照预定的计划顺利完成。
2.3、职业等级
基本内容
本职业共设软件项目经理(三级)(国家职业资格三级)、软件项目经理(二级)(国家职业资格二级)和软件项目经理(一级)(国家职业资格一级)三个等级。
软件项目经理(一级):
除了掌握软件项目经理(二级)的知识技能之外,还要求:
具有相当的软件项目管理实践经验,能够预估风险以及引导客户需求,掌握CMM和项目管理成熟度模型(PMMM),通晓主流软件开发流程并能针对具体项目进行选择和改进,具备项目团队中的领导艺术。
软件项目经理(二级):
除了掌握软件项目经理(三级)的知识和技能外,还需掌握软件建模语言,掌握主流的软件开发流程;
善于与客户进行高效的沟通,具备将业务需求转化为软件需求的能力。
组建与管理软件项目团队,编制软件开发计划书,定义软件开发进度,对软件开发过程进行监控管理和安全控制。
软件项目经理(三级):
具备项目管理的基础知识,熟悉软件开发流程和相关标准,会使用常用办公软件、项目管理软件,掌握WBS、甘特图、PERT/CPM的概念,能够绘制相关的各种图表,编写项目管理文档,监督软件开发进度,及时准确汇报软件项目进展,发现项目中的问题。
2.4、能力特征
具有很强的沟通、表达能力,具有较强的分析、推理和判断的能力。
2、软件项目经理的关注点
1、成本
成本估算和成本管理是软件项目管理的核心任务之一。
在制定项目计划时,就必须对项目需要的人力及其他资源、项目持续时间和项目成本做出估算。
如果新项目和以往的项目类似,估算可以参考以前的成本费用。
现在已有一些用于软件成本估算的技术可供借鉴。
1.1、决策成本:
主要体现在项目需求边界的鉴定,如果一个项目一直在做一些无边界、含糊不清的需求,会导致大量人力、时间一直会陷入在同一需求走不出去,增加项目的实际成本。
需求决策,是需要项目管理者在项目开发之前一定多研究、深思,目前的开发的需求的优先级(很高、此高、一般、无所谓),合理、低成本的进行工作的安排。
1.2、时间成本:
每个产品的竞争力首先必须要体现在时间上,否则市场会被其他对手先得,你去替换一个产品那是非常难的一件事。
所以在软件项目方面最好有条件进行分批进行,也有助于研发团队的业务的提升,来大大的提升项目的时间成本。
否则,会顾此失彼,陷入项目困境,研发团队疲倦(信心下降),时间成本增加。
1.3、人员成本:
每个企业的人员不易多,一切需要合理,否则会导致研发人员业务分散,系统关联不会紧密。
在国内的软件公司,人员技术配置一般会趋于1:
3:
2比例型,即一个技术总监(技术总监,技术强,负责技术培训、钻研),三个高中级工程师(主要侧重核心业务开发,需要多些软件相关业务经验),两个中初级工程师(侧重功能实现,需要技术实现经验),但一些外资企业则不一样,区别主要在与外资企业有成熟的需求团队,但国内的民企一般是需求研发不分开。
所以,项目管理者必须要纵观以上三类成本考虑,才能为老板当好软件项目管理团队的家长,否则不是项目成本很高,就是把项目做得变形(业务核心主次不分)。
2、人员
一个好的团队是一个项目顺利完成的前提。
总而言之,好的团队非常重要,人员管理的艺术也是软件项目经理的重要关注点。
3、进度
制定软件项目进度表有两种途径:
其一是软件开发小组根据提供软件产品的最后期限从后往前安排时间;
其二是软件项目开发组织根据项目和资源情况制定软件项目开发的初步计划和交付软件产品的日期。
多数软件开发组织当然希望按照第二种方式安排自己的工作进度。
然而遗憾的是,大多数场合遇到的都是比较被动的第一种方式。
在软件项目管理工作中,对软件项目的进度安排有时比对软件成本的估算要求更高。
成本的增加可以通过提高产品定价或通过大批量销售得到补偿,而项目进度安排不当会引起顾客不满,影响市场销售。
软件项目的进度安排必须妥善处理以下几个问题:
1、任务分配、人力资源分配、时间分配要与工程进度相协调
在小型软件开发项目中,一个程序员能够完成从需求分析、设计、编码,到测试的全部工作。
随着软件项目规模的扩大,人们无法容忍一个人花十年时间去完成一个需要十几个人年才能完成的软件项目。
大型软件的开发方式必然是程序员们的集体劳动。
由于软件开发是一项复杂的智力劳动,在软件开发过程中加入新的程序员往往会对项目产生不良影响。
因为新手要从了解这个系统和以前的工作做起,当前正在从事这项工作的“专家”不得不停下手中的工作,抽出时间对他们进行培训。
于是,在一段时间内,工作进度便拖后了。
软件开发人数的增加将导致信息交流路径和复杂性的增加,项目进行中盲目增加人员可能造成事倍功半的效果。
适用于大型项目的Rayleigh-Norden曲线[4]表明,完成软件项目的成本与时间的关系不是线性的,使用较少的人员,在可能的情况下,相对延长一些工作时间可以取得较大的经济效益。
然而值得指出的是,程序员小组的正常技术交流能改进软件质量,提高软件的可维护性,减少软件错误,降低软件测试和正确性维护的开销。
任务、人力、时间三者之间存在最佳组合,必须引起项目负责人的足够重视。
2、任务分解与并行化
软件工程项目既然需要软件开发人员集体的劳动,就需要采取一定的组织形式,将软件开发人员组织起来。
软件人员的组织与分工是与软件项目的任务分解分不开的。
为了缩短工程进度,充分发挥软件开发人员的潜力,软件项目的任务分解应尽力挖掘并行成分,以便软件施工时采用并行处理方式。
3、工作量分布
用前几节介绍的软件估算技术可以估算出软件开发各个阶段所需要的工作量,通常用人月或人年表示。
软件在需求分析和设计阶段占用的工作量达到总工作量的40%~50%,说明软件开发前期的活动多么重要。
当然这也包括分阶段开发原型的开销。
大家熟悉的编码工作只占全部工作量的10%~20%,而软件测试和调试的工作量占到总工作量的30%~40%。
这对于保证软件产品质量是十分必要的,实时嵌入式系统软件的测试和调试工作量所占的比例还要大些。
4、工程进度安排
软件项目的工作安排与其他工程项目的进度安排十分相似,通常的项目进度安排方法和工具稍加改造就可以用于软件项目的进度安排。
目前,程序评估与审查技术(PERT)和关键路径方法(CPM)是两种比较常用的项目进度安排方法。
两种方法都生成描述项目进展状态的任务网络图。
网络图中按一定的次序列出所有的子任务和任务进展的里程碑,它表示各子任务之间的依赖关系。
网络图也是作业分解结构(WBS)的发展。
20世纪70年代,作业分解结构就已广泛应用于航天、航空、航海、雷达、通信、火控系统等领域的基于计算机项目的分解,并用以命名各项子任务,这些子任务不仅可以用网络图的形式表示,还可以用树型或层次结构图表示。
PERT和CPM方法为软件规划人员提供了定量描述工具,包括:
?
关键路径。
完成关键路径上所有任务时间的总和,就是项目开发所需要的最短时间。
用统计模型估算开发每个子任务需要的工作量和时间。
计算各子任务的最早启动时间和最迟启动时间,即确定启动子任务的时间窗口边界。
某个子任务的最早启动时间被定义为该子任务的所有前导任务完成的最早时间。
反之,某个子任务的最迟启动时间被定义为在保证项目按时完成的前提下,最迟启动该子任务的时间。
与最早启动时间和最迟启动时间对应的概念是最早结束时间和最迟结束时间。
它们分别是最早启动时间和最迟启动时间与完成该子任务所需要时间的和:
在任务进度安排过程中,应先寻求关键路径并在关键路径上安排一定的机动时间和节假日,以便应付意想不到的困难和问题。
采用这些工具可以大大减轻软件项目管理人员在制定软件项目进度表方面的工作量,并可提高工作质量。
4、质量
对于一个软件项目来说,产品的最终质量是决定这个项目成功与否的指标,因此项目经理在产品质量这方面必须严格把关。
4.1、软件项目质量管理的内容
软件项目的实施过程也是软件质量形成的过程,涉及软件产品的各个层面。
软件项目质量管理主要包括软件项目质量计划编制、软件项目质量保证和软件项目质量控制三个过程。
A、软件项目质量计划编制
软件项目质量计划是软件质量管理的行动纲领,通常由项目经理和质量人员共同协商制定质量计划。
它包括确认与项目有关的质量标准以及如何满足这些标准。
如果机构有独立的质量人员,就由质量人员起草《质量管理计划》,递交给项目经理和质量经理审批。
如果机构没有独立的质量人员,就由项目经理兼任质量人员和质量经理的角色。
质量计划的主要输出结果有:
质量管理计划、质量度量指标、质量检查单、过程改进计划等。
B、软件项目质量保证。
转自项目管理者联盟
质量保证的实质是检查项目的工作过程和工作成果,是否符合既定的规范。
质量保证的要点:
找出明显不符合规范的工作过程和工作成果,及时指导开发人员纠正问题,切勿吹毛求疵或者在无关痛痒的地方查来查去。
质量人员首先设法与项目成员协商,给出解决措施。
在项目内难以解决的质量问题,由上级领导给出解决措施。
这个过程的主要输出结果是:
过程质量检查结果、产品质量检查结果、问题与对策和经验总结。
C、软件项目质量控制
质量控制主要是监控特定的项目结果,确保它们遵循了相关质量标准,并确定提高整体质量的方法。
这个过程常与质量管理所采用的工具和技术密切相关。
例如,帕雷托图、质量控制图和统计抽样。
质量控制的主要输出结果包括:
质量控制度量、有效和建议的缺陷修复、建议的纠正和预防措施、请求的变更、质量基线更新、组织过程资产更新和项目管理计划更新等。
4.2、提高软件项目质量的措施
A、确立有效的质量标准体系项目管理论坛
建立必要的质量标准是进行软件项目质量管理的前提和关键。
根据在实施软件项目方面的整体战略规划与软件项目实施计划,实施软件项目的主体企业首先要确立衡量项目质量的标准体系。
衡量项目质量的标准一般包括项目涉及的范围、项目实施的具体步骤、项目周期估计、项目成本预算、项目工作详细内容安排、质量目标要求以及客户满意度等。
值得注意的是,项目质量标准体系一定要具备完整性、科学性与合理性,项目实施各相关主体应该事先进行讨论与沟通,以保证其完整、无漏洞,又具备较强的可实施性。
B、做好技术评审
技术评审的目的是通过同行专家对工作成果的评审进行讨论,尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。
质量人员应当参与重要的技术评审会议,这样既监督了技术评审,又加深对工作成果的了解。
技术评审可以在任何开发阶段执行,不必等到软件可以运行之际,越早消除缺陷就越能降低开发成本。
技术评审的价值在于“请同行专家评审工作成果,找出缺陷,给出改进建议”,而不在于是否按照规范召开了评审会议(形式是次要的)。
技术评审时,项目经理一定要请真正内行的人参与评审,而且要让评审者投入一定的精力,这样才可能取得评审的效果。
C、提高项目文档质量
按照软件质量管理的要求,在软件生命周期的各阶段应该及时、认真的编制相应的文档。
软件项目文档质量不高的主要原因:
一是缺乏评价文档的质量标准;
二是对文档编写不够重视。
质量差的项目文档会削弱对项目的管理,增高项目成本,甚至造成更加有害的后果。
我们必须加强对文档质量的检查,提高项目文档的质量。
一般在项目文档检查中主要检查“软件需求说明书”、“详细设计说明书”、和“软件测试报告”。
另外,我们还要检查上述文档的评审记录,评审结论,重点检查文档中发现的问题是否已经归零。
D、建立有效的激励机制项目管理培训
通过有效的激励机制,让员工慷慨激昂、充满激情的全力工作,是提高产品质量的重要手段。
根据马斯洛理论我们知道:
不同的人,有着不同的需要。
因此,调动员工的积极性,需要实行多样化激励方式。
项目管理者需要对员工进行分类,建立员工分类手册,并且要建立重点员工的个体分析表,以便采取多样化激励措施。
斯金纳的操作性条件反射理论告诉我们:
当行为结果有利于个人时,行为的得到强化,表现积极主动,愿意重复;
当行为结果不利于个人时,行为得到弱化,表现消极被动,不愿意重复。
若根据日常考核结果,进行即时化奖惩,该表扬的表扬,该批评的批评;
该奖励的奖励,该处罚的处罚。
人的行为即时反映出奖罚结果,那么他下一个行为就能即时根据奖罚作出调整。
这样就容易发挥奖罚的作用,使项目按照正确的方向顺利进行,从而提高软件产品的质量。
5、风险
软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。
软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。
软件项目风险管理是软件项目管理的重要内容。
软件项目经理在进行软件项目风险管理时,要辩识风险,评估它们出现的概率及产生的影响,然后建立一个规划来管理风险。
风险管理的主要目标是预防风险。
3、软件项目经理的被关注点
1、执着
在软件开发流程中推行各种规范和管理制度的时候,项目经理人可能遇到各种各样的阻力和障碍,如果没有应付挫折的思想和准备,项目经理人是很难推行成功的。
要知道这样一个基本事实,项目管理成败的关键是:
如果你不坚持,谁也不会坚持下去的。
指望领导的扶持和群众的自觉是不可能的。
只有坚定信念,努力打动别人,才能成功。
坚持到成功为止。
只要决定上管理流程了,就不要后悔,唯有坚持,因为你拼命努力而实现了99%,你却不知,最后当你决定放弃的时候也许就是你要成功之时。
要知道你准备放弃的时候可能正是对方也准备放弃之时,唯有坚持,你才能成功。
2、亲和力
亲和力是指项目经理人和团队相互依赖,相互信任能力的大小。
亲和力是项目经理人领导团队走向成功的基础,如果一个团队的向心力不够,各自为政,那么失败就会在身边陪伴你。
要团队的每个成员都信任你,你必须要做到关心下属,主动与下属沟通,为下属争取合法权利等。
关心下属就是在日常工作中对下属的工作状况,发展方向进行指导,避免其走弯路;
在生活中也对其身体状况进行关心,促进身体和心理健康的恢复。
多找下属沟通是消除误会的润滑剂,同时也是了解下属内心真实想法唯一捷径。
做项目经理的人,在某些事情上的处理的确会与人不同,也难以令人理解。
这个时候只有多与下属沟通,逐步达成共识,争取大家的理解和支持。
记住,没有下属的理解和支持,你永远无法实现项目管理的规范化。
3、品德高尚
“一撇一捺是个人,世世代代学做人。
”在这个世界上最难做的就是做个品德高尚的人。
一个思想猥琐的人很难取得成功,即使靠小把戏取得也只是暂时的,他不可能取得长久的成功。
只有品德高尚的人才能感染周围的人,使团队具有向心力,从成功走向成功。
管理流程是不可能靠项目经理一个人维持的,必须要大家支持你。
但是这却需要你多帮助别人,别人才会帮助你。
不管团队成员发生什么事情,你要尽你所能去帮助他,这样团队才可能继续前进。
4、口才
良好的口才是项目经理打动项目成员的必备武器,要使自己的项目管理思想贯彻到每一个项目成员心中,就必须要做到以下的演讲原则:
1.根据项目成员的共同目标象他们制定演讲内容,只有让他们信服你才有意义
2.调动听众的这种感官,诉之触觉、视觉、听觉,用黑板、姿势来辅助你的内容
3.不断的总结效果,改进自己演讲宣传的接受度,如果效果不理想,尝试换一个方式来表达和描述。
项目管理培训
4.让听众学以至用,只有他们积极反馈,才能更深入的听你的思想
5、循序渐进
循序渐进,不急于求成是项目经理在项目管理中必需具备的品质,在中国CMM过程改进的热潮中,真正实现CMM管理的企业屈指可数,而以CMM改进过程实质性为企业带来质量提升和效益改进的公司更是寥落晨星。
6、持久求学
“书到用时方恨少,学至成时始知卑。
”学无止境,整个项目管理过程改进就是“学习-培训-实施-发现问题-再学习”的循环过程,项目经理如果不学习将不能解决现实工作中出现的新问题,更不可能站在一个战略的角度来解决问题。
事实上,求学也不能没有目标,否则学到的知识太庞杂,而不能融会贯通,这样的知识对实际工作指导甚少,真正的知识是一个目标体系,严格按照流程来一步步的掌握所需要的知识。
最后,总结一下软件项目经理所必需掌握的知识:
1.专业知识:
数据结构、关系数据库、操作系统、软件工程、编译原理。
2.管理知识:
项目计划、项目配置管理、成本核算、风险预估、绩效考核。
这是项目经理必须掌握的内容。
3.网络知识:
服务器的架构、各种服务的配置。
因为管理的大厦是基于软件的管理,没有一个服务管理的网络配合是不可以想象的。
4.“越过高峰,另一峰却又现”,这是软件项目经理在持续求学中会不停的挑战自我,向更高的山峰迈进。
7、敢负责任
项目经理关系到一个项目的成败;
对于公司他必须要承担及时汇报项目进度、成本核算和质量系数的责任,同时也必须保证项目组成员绩效考核,政策落实,预留人才储备等责任,是整个项目中责任最大的人,如果没有良好的心理素质和应对能力是无法担负责任的。
实际工作中项目经理主要要负责项目组的人员安排调度、工作分配、工作审核、工作跟踪、项目计划、项目汇报总结、成本核算、利润分配等职责。
8、以身作则
项目管理的一个重要工作就是定义各种规范和制定,但是这些规范和制度的执行除了靠项目经理的执着推行,口才宣传,力主培训、惩戒得当之外,关键还是在于项目经理的以身作则。
如果项目经理自己都违反自己定义的条款的话,那么就别指望团队会自觉遵守这些规定。
因此,鉴于规范制度的权威性主要还是靠项目经理自己,只有坚持以身作则,才能将自己优秀的管理思想贯穿下去,取得开发过程改进的成功。
9、要有威信
一个软件项目经理说话有没有人听,必须要靠威信,这种威信是靠自身的素质,而不是狐假虎威。
靠高层领导的支持来强迫团队执行项目制度过程的话,是注定会失败的。
因为团队成员不信任你,表面服从,实际消极怠工,就足以让流程实质瘫痪。
10、善于总结
项目经理要善于总结,只有不断的总结才能不停的完善自己,成功的事情总结经验,失败的事情要总结教训,总结的过程就是不断改进的过程,这也是CMM规范所必需的素质。
总结的过程要多吸取别人的意见,不要武断自己的结论。
博人所长,综合起来才算趋于完美。
这个原因有二:
其一,项目经理不是孤立的一个人,而是必须融于团队之中,一个流程合不合理,不是由项目经理说了算,而是要由团队的成员说了算,注意倾听团队成员的真实感受,不断改进流程才能成功。
许多CMM改进失败,并不是项目经理知识能力不够,而是他们没有一起与团队总结,经多年经验,我们发现大多数规范,必须要有一套合理的软件支持才能成功,否则无论你的理想多先进,想靠程序员工作来提高过程质量的改进是不现实的。
其二,“闻道有先后,术业有专攻”,项目经理不可能是全才,什么都懂。
因此要和哪些与专攻方向不同的人一起总结。
比如项目经理可能精通软件开发流程的改进,但是却不知道测试流程、网络管理流程、品质保证流程的改进,而这些流程又直接作用于软件开发流程。
这个时候必须与测试人员、网管人员、质量保证人员共同探讨,找出一条切实可行的改进方案。
除此以外,良好的交流谈判能力,具备项目管理的基础知识,熟悉软件开发流程和相关标准,会使用常用办公软件、项目管理软件,编写项目管理文档,监督软件开发进度,及时准确汇报软件项目进展,发现项目中的问题等等都是一个成功的软件项目经理应该具备的素质。
4、软件项目经理在项目各阶段的职责
1、软件项目经理在需求分析阶段的职责
开始的需求分析阶段是一个最重要的阶段。
在这个阶段中,项目经理需要搞清楚客户所需要我们完成的详细任务,项目经理在接手一个新项目的时候,首先要尽可能地多从各个方面了解项目的情况,例如:
a.这个项目是什么项目,具体大概做什么事情,是谁提出来的,目的是解决什么问题。
前期了解情况的工作越详细,后面的惊讶就越少,项目的风险就越小。
b.这个项目里牵涉哪些方面的人,如投资方、具体业务干系方、项目建成后的运营方、技术监督方等等,很多项目里除了业主单位的结构很复杂以外,还有一些其他单位也会牵涉进来,如项目监理公司、业主的行业主管机构等。
项目经理需要了解每个方面的人对这个项目的看法和期望是什么。
c.基本了解了客户的情况后,下面的事情就是了解自己公司各方面对这个项目的看法。
而公司的战略方针将对项目计划产生直接的影响。
d.在做整体项目计划前,还要大致计算一下手上的资源。
首先是时间,现在市场竞争激烈,往往很多项目要求在几乎不可能的时间范围里完成。
对于这一点,在做项目的风险控制计划的时候要充分考虑。
其次是人员,根据项目预算和已往经验,大致计算一下未来的项目小组有多少种角色,每个角色目前公司是否有人,是否能完全归这个项目使用,是否需要另外招聘一些人员,而且一个优秀的团队,对于软件开发的整个过程都是十分重要的。
e.随后就是做项目说明书的时候了。
一份好的项目说明书不仅将要做的事情描述得很清楚,而且把如何检查也说明得很透彻。
f.等到明确了这些以后,那么做计划以前,你还需要和你的经理和客户充分沟通资源的问题。
因为很多资源是还不明确的,项目经理还需要写一份报告,详细分析这个项目的风险以及对资源的需求情况。
如果一些问题不能得到解决的话,将发生什么样的后果是难以估计的。
在软件的设计阶段之前,项目经理需要设置项目组中人员的各个角色,并且分