项目管理计划与跟踪过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
这是我们的项目计划与跟踪的内容,在项目实施中使用得很好,我拿出来与大家分享,希望大家多提意见,谢谢!最初的项目计划不够精确和准确,不能直接拿来指导我们的日常工作,也不易跟踪。我们采用三层计划机制将计划中的任务拆分成可跟踪的小的任务来执行。另外,采用不同周期不同规模的review活动来跟踪计划的执行,并不断地调整我们的计划。在跟踪的过程中,由项目经理来负责将每个任务的实际工作量记录下来,以便最后的统计。
总过程图
注:
1.根据项目进度定期地(或事件驱动地)进行peer review和progress review.
2.偏差包括实际情况与原计划不相符的任何地方,例如时间安排,人力资源,设备,任务安排,等各方面。
3. Review不仅是查找已执行工作与原计划的偏差。有时候,根据现阶段工作的情况很容易判断后续工作原定计划的不合理性,这部分计划也需要及时修订。
第一部分不同层次的计划
项目计划的目的是为实施软件工程和管理软件项目制定合理的计划。三层计划机制是艾思普公司项目计划的主要内容。
高层计划:设计师和项目经理根据用户需求制定高层计划,给出项目进行的主要阶段和各种需求。此计划需要经过审核通过后方可执行。为了便于理解,高层计划也可以称为月计划。
中层计划:项目经理,设计师,以及所有的参与人员共同制定中层计划。中层计划是高层计划的任务分解。中层计划也可称为周计划。
低层计划:根据中层计划中的任务安排,每个人制定自己的低层计划。低层计划也称为天计划。
1 高层计划
在各种估算的基础上,根据用户需求给出项目进行的主要阶段和进度计划,就是高层计划。
进入标准:用户提出的各方面需求(如成本需求和交付时间要求,等)和软件项目的开发策略。
人员:设计师,项目经理
内容:
1)阶段:项目总体分为哪几个阶段来进行?标准软件过程是:发现、定义、概念、设计、和实现。根据具体的项目情况,可以将其裁剪和细化。
2)时间:各个阶段要求在多长时间内完成?或严格要求什么时候完成?
3)资源:按阶段阐明需要的资源,包括人力资源和关键的设备资源。人力资源说明角色和数量。设备只需提出特殊的或关键的设备资源,如需要一个特殊配置的服务器,在系
统测试中要搭建模拟环境,等等。
4)退出标准:每阶段要达到什么要求才可以退出,即阶段完成的要求是什么?
承诺与认可:高层计划需要客户和高层管理者的认可,并且有关人员必须被告知高层计划中与其相关的内容,并得到他们的承诺和认可。比如,通知人力资源部门人员需求,通知财务部门设备要求和经费需求,等等。
注:1)计划的依据:用户提出的项目要求,公司采用的软件工程过程,以及自己的经验。
2)需要考虑公司的一些实际情况:比如人员调配,员工的技术能力,等因素。
三、一个细化的软件工程概念模型
下图是笔者理解的软件工程概念模型(采用UML类图的语法):
1、模型概述
图中,“理论与经验”和“工具”可以认为是2个比较独立的概念,其他概念可以被分为4组——“方法论”、“过程”、“目标”、“项目”,分别标以不同颜色。这4组主要概念构成了软件工程概念模型的骨架,可以描述为:为达到一定的“目标”,我们建立起相应的“项目”,在某种“方法论”的指导下,按照一定的“过程”,生产出相应的软件“产品”。
从这个模型的骨架中,我们能清晰看到上面精简模型的影子——(目标,方法,活动)三元组。但显著区别是,更加强调“活动”的组织和控制方式——“过程”。这是软件实践发展的必然结果,因为,随着软件产品的复杂程度不断提高,势必要更加强调“过程”。Roger S.
Pressman在其经典著作《软件工程:实践者的研究方法》里就指出:大约每隔5至10年,软件界就会重定义“问题”,将其焦点从“产品”转移到“过程”。
2、方法论
“方法论”是在一定“原则与策略”指导下的一套相关的“方法与技术”,而“方法论”可以分为“开发方法论”和“过程方法论”2种。相应的,“原则与策略”可以是开发策略,例如著名的“功能分解”策略;也可以是过程策略,例如迭代模型等“过程模型”,就是过程策略。
应当说,“过程方法论”是随着软件实践的深入,在“开发方法论”产生之后才产生的概念。Roger S. Pressman在其经典著作《软件工程:实践者的研究方法》里就指出:大约每隔5至10年,软件界就会重定义“问题”,将其焦点从产品转移到过程。在本文后面的章节,笔者将用“过程方法论”的概念解释“Agile到底是过程还是方法论”的迷惑。
另外,值得一提的是,在实际当中,存在“方法”其实是指“方法论”的现象,在此说明一下。一方面,“方法论”是为完成特定目的一套“方法”,“方法论”和“方法”是一对多的关系;另一方面,实际中人们常将“方法论”简称为“方法”,所以也可以认为“方法”是个递归的概念,它可以是“原子方法”,也可以是“方法论”。至此,当你同时面对“Agile方法”和“Agile方法论”这2种说法时,就不必迷惑了。
3、过程
“过程模型”是对具体“过程”的抽象,它仅规定了后者的框架,例如瀑布模型规定了“过程”是线性框架;“过程模型”的例子还有螺旋模型、喷泉模型、迭代模型等。一个具体“过程”包括“开发子过程”和“管理子过程”2个子过程,它们分别由一组相关的“开发活动”和“管理活动”组成。“开发活动”开发出或再加工“开发工件”,“管理活动”使用“管理工件”,对“开发活动”和“开发工件”进行管理。
“过程开发与改进”是一个特殊的“管理子过程”。“过程开发与改进”与其它一般的“管理子过程”相比,后者是为软件产品的开发服务的,而前者是以开发和改进软件过程本身为目的。软件工程大师Osterweil在其论文《Software Processes are Software Too》中高屋建瓴地指出:软件过程也是软件。软件有一个开发的过程,软件过程也有一个开发的过程;软件开发产出软件产品,软件过程开发产出过程产品。