软件项目管理基础
2020-02-17 15:58:47 0 举报
AI智能生成
软件项目管理基础
作者其他创作
大纲/内容
项目的时间管理
项目时间管理的基本概念 <br>
项目时间管理包括项目所需时间的估算,制定可以接受的项目进度计划,并确保项目及时完工 <br>
制定项目进度计划的方法 <br>
项目时间管理涉及确保项目准时完成所必需的过程,涉及的主要过程包括 <br>
活动定义(WBS) <br>
活动定义,涉及确定项目团队成员和项目干系人为完成项目可交付成果而必须完成的具体工作 <br>
活动或任务,是一部分工作,一般在WBS里可以找到,它有预期历时、成本和资源的要求 <br>
进度计划来自活动定义 <br>
关于WBS(工作分解结构)<br>
WBS是一种将复杂任务分解为简单任务的方法 <br>
将项目分解为可管理的活动 <br>
作为软件项目计划和跟踪的基础 <br>
示例
wbs分解的粒度
根据以下准则分解
任务可由单个人来完成吗? <br>
任务的完成状态可以验证吗? <br>
任务开始之后还会依赖于其他任务吗?
任务所分配的时间是否过长而不利于管理? <br>
为了保证管理的有效性,对下一周每项任务的安排不要超过一个工作日 <br>
根据软件生命周期制定WBS
对当前阶段的活动进行详细的分解
暂时不要分解后续阶段的活动 <br>
随着对项目了解的深入不断细化WBS <br>
根据阶段的划分来确定软件项目的里程碑 <br>
WBS的层次<br>
WBS具有不同的层次,不同的人关注在不同的层次 <br>
项目团队成员的直接负责人关注到每个活动 <br>
项目高层经理或客户关注在较高层次的WBS活动 <br>
软件项目中如何制定计划未总结
活动排序 <br>
活动排序,涉及审查详细WBS中的活动、详细的产品说明书、假设和约束条件,以决定活动之间的相互关系;也涉及评价活动之间依赖关系的原因,及各种依赖关系 <br>
确定活动之间的依赖关系对制定并控制项目进度计划有重要的影响 <br>
历时包括一项活动所消耗的实际工作时间加上间歇时间 <br>
依赖关系反映了项目的活动或任务的顺序 <br>
活动历时估算 <br>
历时的估算结果有可能导致更新工作分解结构 (<font color="#f15a23">因为发现工作分解不合理</font>)<br>
活动历时估算的方法<br>
类比法 <br>
由上至下法(Top Down) <br>
由下至上法(Bottom Up) <br>
功能点法(Function Point) <br>
小结
活动定义——进一步定义范围<br>活动排序——进一步定义时间<br>活动历时估算——进一步定义成本 <br>
上述三个步骤必须由项目团队和关键的项目干系人共同参与完成 <br>
制定进度计划 <br>
使用工具
甘特图 <br>
1917年,亨利 · 甘特发明,通过日历形式列出项目活动及其相应的开始和结束日期,为反映项目进度提供了一种标准格式 <br>
<br>
使用mircosof 旗下的 project 应用可以很好的实现
关键路径法(CPM) <br>
美国国防部于二十世纪五十年代末期提出的方法,主要适用于大型工程项目
项目关注于费用控制 <br>
项目中的活动存在很强的依赖关系 <br>
计算关键路径 <br>
关键路径决定了项目所需要的最短总体时间
位于关键路径上的活动浮动时间为0(即关键路径上不可以有空闲时间错开) <br>
项目中可以有多条关键路径 <br>
项目经理在控制项目进度计划时需要随时关注处于关键路径上活动的进度情况 <br>
一般计划安排先安排关键路劲的功能点的所需时间,然后再安排其他内容,这样可以最好的控制成本和风险
计划评审技术(PERT) <br>
关键路径决定了项目所需要的最短总体时间
主要适用于
R&D等不确定性较高的项目 <br>
技术更新频繁、进度风险较高的项目 <br>
PERT主要应用于对单个活动的时间进行估计 <br>
PERT对于每一种活动都采用三种估算值 <br>
乐观时间、悲观时间和最可能的时间 <br>
每种活动的时间则取决于加权值 <br>
计算公式
进度计划控制 <br>
切实可行的计划 <br>
对于工作完成状态的客观判断 <br>
可能会报喜不报忧,每个人都会不自觉地隐藏对自己不利的信息 <br>
检查项目进度状况的方法
在项目全生命周期中,项目经理需要随时监控项目的进度状况 <br>
若出现延迟情况需要及时进行调整 <br>
项目进度状况的检查,包括
准备工作 <br>
项目经理的职责 <br>
建立项目进度报告制度(确定例会时间、报告路径、周报格式等) <br>
检查项目团队成员的个人工作进度计划是否合理 <br>
个人工作进度计划,项目经理需要检查的内容 <br>
与项目开发计划对照检查是否有遗漏项 <br>
未列入项目开发计划的临时性工作是否也被列入个人工作计划 <br>
各项工作的完成期限是否合理,是否对团队其他成员的工作造成负面影响 <br>
根据个人能力判断是否能够按照计划完成各项任务 <br>
与团队中其他成员相比工作量分配是否平衡 <br>
如何平衡资源
在安排计划的时候就应该考虑这个问题,如果后期不合理,则合理分配负荷到其他人员,保证工期和工作量均匀
ms-project 的资源负荷视图
注意事项 <br>
调整业务分担时,不是简单地将某项任务转移到其他团队成员,应仍旧以原负责人为主,其他人员支援其完成部分任务的形式进行 <br>
进度信息的获取 <br>
项目会议<br>
项目周例会 <br>
项目月度会议 <br>
里程碑会议 <br>
评审会议 <br>
进度信息的分析 <br>
项目进度落后时的对策<br>
压缩工期<br>
赶工
加班
并行<br>
将通常情况下按顺序进行的活动以重叠的方式进行,这样可以压缩项目的工期 <br>
重新考虑计划有没有可以并行的可能
提高效率 <br>
通过与具体活动的负责人的沟通,了解进度落后的真实原因 <br>
平衡资源
调整业务分担时,不是简单地将某项任务转移到其他团队成员,应仍旧以原负责人为主,其他人员支援其完成部分任务的形式进行 <br>
修改计划
项目开发的早期阶段
尽量在对外产生影响的里程碑之前,调整进度计划,挽回进度 <br>
项目开发的后期阶段
由于临近交付日期,极可能对外产生影响,必须与项目干系人进行协调,将影响控制在最小范围内 <br>
补充人员
进度落后时需注意的其他方面<br>
在进度落后时,项目经理不应仅仅关注项目的进度,同时要考虑下列问题 <br>
项目质量 <br>
按照项目规章、质量目标组织评审 <br>
项目团队成员 <br>
注意团队成员的健康状况和士气 <br>
注意分析原因,采取对策,预防再犯相同错误 <br>
分析进度落后的原因
检查项目进度状况的方法 <br>
项目实际进度落后于计划时的对策 <br>
项目的质量管理
项目质量管理的基本知识 <br>
质量的定义 <br>
国际标准化组织(ISO)的定义 <br>
反映实体满足明确和隐含需要的能力和特性的总和。 <br>
项目质量管理的定义 <br>
项目质量管理的目的是确保项目满足它所应满足的需求 <br>
为使项目干系人项目质量管理必须满足或超越项目干系人的需求和期望 <br>
满意项目团队必须与所有的干系人建立良好的工作关系,并明确理解他们明确的和隐含的需求 <br>
为什么需要对过程进行标准化
部门或项目是由经验、技能水平不同的成员组成的,因此建立标准化的工作流程并通过教育使全员遵守标准是十分重要的。 <br>
通过标准的定义与实施,使全员按照一致的标准工作,是确保项目质量的重要手段。 <br>
质量评价(测量)标准
质量特性(外部特性) <br>
顾客要求的软件特性,由多种副特性组成 <br>
对于不同种类的软件,各种副特性的重要度不同 <br>
功能性(Functionality) <br>
信赖性(Reliability) <br>
易用性(Usability) <br>
高效性(Efficiency) <br>
可维护性(Maintainability) <br>
易移植性(Portability) <br>
内部特性 <br>
为了确保顾客所要求的各种软件特性,在开发过程中,评价(测量)软件质量的内部标准 <br>
代码质量等
文档质量<br>
项目质量控制手段 <br>
评审 <br>
设计阶段质量保证的手段 <br>
评审是对设计阶段质量保证的重要手段 <br>
但是评审不是设计阶段质量保证的唯一手段,提高设计质量是设计阶段质量保证的根本途径 <br>
提高设计质量的手段<br>
使用设计书模板,防止遗漏需明记的内容 <br>
使用图表,使设计书能够正确传达信息 <br>
选择适当的开发工具,以自动完成部分开发 <br>
考虑易测试、维护和扩展的需要,采用模块独立性较高的设计方案 <br>
测试性:单元测试的全面性<br><br>维护性:程序的易读性与缺陷的易修正性<br><br>扩展性:对使用环境和用户需求变化的易对应性 <br>
通过评审进行质量保证的一般方法 <br>
评审活动的PDCA循环
制定评审计划
制定项目开发计划时,应同时确定项目各阶段的评审计划 <br>
评审计划应包括以下内容<br>
评审的对象 <br>
评审的负责人(召集人)、参加人员 <br>
评审的日程表 <br>
评审完成标准(需要定义各个项目独特的标准) <br>
选择合适的评审人员<br>
选择合适的人员参加评审活动是获得客观可靠的评审结果的重要保证 <br>
评审完成标准的内容<br>
评审的实施率 <br>
实际评审次数与计划次数的比率 <br>
评审的覆盖率 <br>
评审对象的实际实施量与总量的比率 <br>
检查内容的覆盖率 <br>
实际检查项目数与计划检查数的比率 <br>
问题的对应率 <br>
已经对应的问题数与发现总问题数的比率 <br>
发现问题数 <br>
发现问题的总数与评审对象规模的比率 <br>
实施评审
项目经理需要根据事先制定的计划,分阶段召开评审会议 <br>
在努力提高评审的质量与效率的同时,对每次评审需要留有评审记录 <br>
评审的方法
走查法(Walkthrough) <br>
假定程序模块的输入与输出值,按照执行步骤,逐行分析所有代码的方法 <br>
通常用于对控制流程明显的程序或设计流程图的评审 <br>
应该以工作的具体负责人为中心实施 <br>
审查法(Inspection) <br>
根据评审用检查内容表,对评审对象的某方面的质量进行审查的方法 <br>
要求所有参加人员根据审查项目,从对象物中找出相应的审查位置 <br>
要求在受过专门训练人员的主持下实施 <br>
需要事先向所有参与人员分发讲解检查内容表 <br>
需要选择详细了解系统/产品全貌的人员参加评审 <br>
轮查法(Round-robin) <br>
轮流指定所有参加评审的项目团队成员为评审负责人的组织方法 <br>
原型法(Prototyping) <br>
根据设计试作程序,根据实际的动作进行评审的方法 <br>
模拟法(Simulation) <br>
建立模型,根据数学的近似算法,模拟系统或软件的运行环境,根据实际的运行结果进行评审的方法。 <br>
评审效果的审查
项目经理需要主持所有的阶段性评审,并审查评审的结果以把握项目的质量情况 <br>
评审问题的对策
项目经理通过评审掌握项目质量情况后,需要针对现存问题采取适当对策 <br>
从根本上重新制造 <br>
有时当成果物的质量过低时,再次组织评审往往也仅仅是浪费时间,不能从实质上提高质量 <br>
这时项目经理应该有勇气决定投入技能较高的人员推翻原设计重新进行制造。完成此步骤后再进行评审
组织再次评审 <br>
实施评审时的注意事项<br>
限制评审会议的时间(2个小时以内) <br>
项目经理必须出席评审会议 <br>
为使评审人员充分了解评审内容,应事先向他(她)们分发评审资料
明确指出问题点并明确记录在评审记录中 <br>
测试 <br>
通过测试进行质量保证的一般方法 <br>
制定测试计划 Plan <br>
制定项目开发计划时,应同时确定项目各阶段的测试计划 <br>
测试的目的在于消除潜藏在成果物中的Bug,由于能够用于测试的资源有限,在制定测试计划时必须考虑效率因素 <br>
为了提高测试效率,通常按照单元测试、集成测试、系统测试的顺序分阶段实施 <br>
测试的设计与实施 Do <br>
按照测试流程测试
测试效果的审查 Check <br>
一般来说,项目经理应从以下角度出发审查测试的效果 <br>
测试结果与完成标准的比较 <br>
当未达到预期的标准时,应采取适当的对策,强化质量管理。 <br>
测试质量的审查 <br>
项目经理必须对测试活动是否有效进行审查 <br>
测试问题的对策 Action <br>
项目经理通过测试掌握项目质量情况后,需要针对现存问题采取适当对策 <br>
重新进行测试设计 <br>
当整体测试结果未达到测试完成标准时,需要重新设计测试活动 <br>
组织强化测试 <br>
当特定功能或模块的测试结果未达到测试完成标准时,需要组织强化测试 <br>
对于特定功能而言,可以通过追加黑盒测试项目来进行强化测试 <br>
对于特定模块而言,需要对该模块重新评审后,通过追加白盒测试项目来进行强化测试 <br>
可以通过追加外部人员进行自由测试来进行强化测试 <br>
项目的人力资源管理
项目人力资源管理的要素 <br>
软件开发活动是人的创造性劳动。为了项目的成功(QCT或CS),要求项目团队成员最大限度地发挥自身能力 <br>
为了使项目团队成员的能力得到发挥,项目经理需要对以下方面进行管理 <br>
组织计划编制 <br>
人员的获取 <br>
团队建设 <br>
团队建设的主要手段 <br>
提高团队成员的技能水平 <br>
讲座/培训 <br>
具体工作内容的分配 <br>
授权 <br>
跟踪与监督(不建议,,) <br>
提高团队成员的工作积极性 <br>
团队精神的养成 <br>
赋予工作动机 <br>
理解团队成员 <br>
考虑工作负荷的平衡 <br>
保持团队成员的身心健康 <br>
保持项目团队成员的身体健康 <br>
长时间的超长工作(加班),不仅会影响项目团队成员的工作积极性和工作效率,而且对本人的身体健康也有很大的影响,因此项目经理首先应从“加班管理”的角度入手,帮助团队成员保持身体健康 <br>
保持项目团队成员的心理健康 <br>
由于心理的问题,很可能损害身体的健康,并且对工作产生影响。而心理的健康与身体的不同属于各人的内在问题,从外部确实很难把握,建议项目经理采取一定措施尽量帮助团队成员解决心理问题 <br>
团队建设的一般建议 <br>
对团队成员要耐心、友好,认为他们都是最好的。千万不要把他们认为是懒惰和粗心大意的。<br><br>解决问题而不是责备人。把注意力放在行为上,从而帮助他们解决问题。<br><br>召开经常性的、有效的会议。注重项目目标的实现以及产生有效的结果。<br><br>控制每个工作组的规模在3~7人。<br><br>组织一些社会性的活动来帮助项目团队成员和其他项目干系人更好地互相了解。但要不强制参加。<br><br>强调团队的一致性。创建团队成员喜欢的传统。<br><br>教育培养项目团队成员,鼓励他们互相帮助。提供培训机会帮助个人和项目组成为一个更有效的整体。<br><br>认可个人和团队的成绩。<br><br>积极听取团队成员的意见,解决他们关心的问题,创造个人与项目组共同发展和进步的良好环境。 <br>
概述
该图描述了一般项目管理的基础知识、以及软件项目管理的内容
项目管理的基础知识
项目管理的两个基本概念
项目的概念<br>
PMI对项目的定义
项目是为完成某一独特的产品或服务所做的一次性努力 <br>
项目的特性
临时性
项目有明确的起始与截止日期 <br>
独特性
项目所产生的产品或服务是独一无二的 <br>
项目所需的资源<br>
人、物、时间、资金、信息<br>
项目应有一个主要发起人或客户 <br>
通过项目经理和项目组织的努力,运用系统理论和方法对项目及其资源进行计划、组织、协调、控制,旨在实现项目的特定目标的管理方法 <br>
项目含有不确定性 <br>
项目管理的概念
管理是通过计划、组织、控制和领导等环节来协调人力、物力和财力资源,以期更好地达成组织目标的过程 <br>
项目管理
项目管理三大关键要素<br>
项目干系人 <br>
会对项目产生影响的个人或组织以及项目的结果会影响的个人或组织 <br>
项目干系人更多地以利益影响的方式来区分 <br>
以利益驱动的方式来促成项目的成功 <br>
项目干系人通常包括 <br>
项目经理 、客户 、项目团队成员 、出资人 、组织内其它部门 、供应方、竞争对手 、其他处于组织外部的项目涉及或受项目影响的团体 <br>
项目管理知识领域 <br>
核心知识领域
范围管理
时间管理
成本管理
质量管理
辅助知识领域
人力资源管理
沟通管理
风险管理
采购管理
项目的整体管理
项目经理必须具备上述9方面全部的知识和能力 <br>
项目管理工具和技术 <br>
时间管理的工具和技术有:甘特图、PERT、关键路径法(CPM)等 <br>
MS-Project等 <br>
项目开发计划书与各个管理范围的关系
项目的生命周期
项目阶段与项目生命周期 <br>
正是因为项目的独特性,项目在执行过程中存在不确定性 <br>
确定性以阶段的方式来执行项目 <br>
项目生命周期则是项目阶段的总和 <br>
项目全生命周期概<br>
不仅仅是交付,包括从立项一直到退役 <br>
项目生命周期特征 <br>
几种典型的项目周期<br>
<br>
<br>
项目的管理过程<br>
适用于绝大部分项目的管理过程,例如时间管理、质量管理、成本管理、风险管理等具有普遍的适用性 <br>
过程组示意图
项目成功的概念<br>
衡量项目是否成功的标准千差万别<br><br>一般衡量项目是否成功的“三条件”
顾客满意度的达成
锻炼了开发队伍,获得了某方面的技术积累,有利于今后公司业务的开展 <br>
项目经理应具备的相关能力
项目经理必须具备上述9方面管理技能全部的知识和能力
项目管理的15项职能工作 <br>
确定项目的范围 <br>
识别项目干系人、决策人和逐级程序 <br>
制定详细的任务清单(WBS) <br>
估计时间要求 <br>
制定初步的项目管理流程图<br>
制定初步的项目管理流程图
评估项目要求 <br>
识别和估计项目风险 <br>
制定应急计划<br>
明确相互关系 <br>
确认并跟踪项目的关键里程碑 <br>
参与项目阶段的评估 <br>
保障所需的资源 <br>
管理变更控制过程 <br>
汇报项目状态 <br>
<br>
0 条评论
下一页