敏捷项目管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.敏捷项目管理
1.1. 敏捷软件开发之项目管理
1.1.1. 软件开发之项目管理
项目管理是将知识、技能、工具与技术应用于项目活动,以满足项目的要求。软件开发项目的项目管理,是为了确
保软件开发项目顺利进行的各种管理活动的总和。PMBOK ( Project Management Book of Knowledge )中将项
目管理分为9大知识领域
①.整合管理
②.范围管理
③.时间管理
④.成本管理
⑤.质里官理
⑥.人力资源管理
⑦.沟通管理
⑧.风险管理
⑨.采购管理
至今为止,项目管理往往从这几个方面制定计划,在实施中,检查计划和实施效果的偏差,监控项目的健康状况。
1.1.
2. 敏捷软件开发之项目管理
敏捷软件开发的项目管理,是指在敏捷软件开发中进行的项目管理活动。敏捷软件开发,如同第一章所述,是一种
积极拥抱变化的开发模式。敏捷软件开发认可并应对不确定性,换句话说,需要面对风险(根据PMBOK的定义,风险就是不确定性)。某种程度上,敏捷开发过程就是风险管理的过程。敏捷软件开发的各种实践方法( Practice) 就是为了应对各种风险而存在。
敏捷软件开发的项目管理,其本质在于-平衡(Bala nee )为了提升透明度花费的成本和因为可能发生变更而带来的风险。
敏捷项目管理中,开发流程的概念轻量且抽象。在日新月异的今天,开发流程本身的灵活性显得非常重要。不是用一个固定的流程来应对变更,而是根据不同环境不同需要裁剪开发流程。从这个意义上来说,只定义必不可少的管理内容的、轻量级的开发流程是顺应时代需要的。
如果只在传统的Paradigm 下解读和裁剪敏捷开发的流程,就很容易忘记敏捷开发的本来意义,这是造成敏捷开发
失败的一个主要原因。对流程的裁剪,一定要在正确理解敏捷项目管理的意义、不抹杀“敏捷”特性的前提下进行。
1.2. 敏捷开发的可交付成果
1.2.1. 不事先规定可交付成果的细节
敏捷软件开发中,品质代表软件与用户需求的匹配程度。不事先规定可交付成果的细节是为了追求更高品质。因为在开发过程中,需求可能发生变更,可交付成果的内容也可能随之而改变。
敏捷软件开发的特征不仅仅在于能以较低成本应对变更,而是使软件尽可能具有应对变更的能力。敏捷项目管理的假设是,某个项目难以用传统的流程进行管理。即,Goal会随着时间的变化而变化。因此,重点在于认识到可能
发生变更的风险,提高应变能力。
但是,通常情况下,人们认为如果可交付成果不断变化,开发可能无法收尾。因此,敏捷项目管理把开发期间分解成几个短的区间,把每个短区间的可交付成果在一定程度上固定下来。在项目进展过程中,一边听取客户反馈,一边调整可交付成果。
可交付成果的灵活性要保持在多大程度?这个取决于流程的设计,是敏捷项目管理中非常重要的内容。
1.2.2. 可能发生变更,风险管理怎么办
1.2.2.1. What ' s Risk
有可能发生变更的地方,就存在着各种各样的风险。风险是因为可能发生变更而造成的,所以无论用不用敏捷项目管理,风险都是存在的。
但是,采用敏捷软件开发和采用传统的瀑布式开发,客户和开发团队所承担的风险是不同的。
首先,传统的管理方法是制定计划,根据执行结果和计划之间的偏差来评估可交付成果。可是因为可能存在变更,无法严密地定义可交付成果。因此,就出现了以下两种做法:
a)做各种假设,无论如何定义出可交付成果,决定金额和交货期b)虽然对可交付成果不是很清楚,但还是决定了金额和交货期采用方法a的话,变更带来的风险由客户承担。即,如果假设和实际不相符,可交付成果和实际的业务需求就不一
致。采用方法b的话,开发团队承担仕样变更的风险,因为一边要遵守金额和交货期的约定,一边还要完成可交付成果的变更。
一般来说,很难让某一方承担全部风险。通常的做法是采用折衷案。即,暂不考虑谁是谁非,客户和开发团队共同承担上述风险进行项目活动。
敏捷软件开发中,客户和开发团队要一起承担变更可能性带来的风险。客户有责任解释说明并排序选择软件需求。
可是,如果客户不能从开发团队得到有关项目进度的反馈,就无法做合适的判断。这就是沟通上的风险。
另外,事先没有约定可交付成果的细节,因此,项目能够在预算和进度要求内完成的保证就没有了。开发团队也要充分了解这一风险,并作出应对。
外包公司可能会尽可能降低成本,既满足事先决定的交付期和可交付成果,又使计划和执行之间的Gap转向有利
于开发商一方,从而实现利益最大化。但是,敏捷软件开发中,没有事先约定可交付成果的细节,所以,很可能不存在如上所述的提高利润的空间。
开发商如果采用敏捷软件开发,就要认识到这样的风险,同时最大限度地满足客户需求。
1222 怎么降低风险
因为可能存在变更,所以无论采用哪种项目管理方法,都必须承担变更可能性带来的风险。
那么,敏捷项目管理的优点在哪里呢?
就在于敏捷项目管理能够应对更多的、可能发生的变更。因为敏捷软件开发本来就假设软件开发项目中有可能发生变更。因此,越是深刻理解敏捷软件开发的本质,正确实践,就越能以较少的成本应对可能发生的变更。
与此相对的,瀑布式项目管理没有做这种假设。
从这一点来看,熟练使用敏捷软件开发,可以更迅速更安全地应对变更可能性带来的风险。
更重要的是,当使用敏捷项目管理时,顾客和开发团队之间的风险平衡(Risk Bala nee )是Win-Win 的合作关系。
即,适应变更,拥抱变更的开发使客户得到想要的功能,另一方面,开发团队因客户满意而获得更大收益。
与此相对,瀑布式项目管理在制定计划时,顾客和开发团队之间就形成了一种风险的交易( Tradeoff )。一旦发生变更,顾客和开发团队在谁承担风险上很容易形成对立关系。这种对立关系潜在地增加了项目管理的难度。变更越
可能发生,项目管理就越难做。
敏捷项目管理的Point在于顾客和开发团队一起向一个目标奋斗,即提供更能满足用户需要的可交付成果。消解了
对立关系,构筑了一种积极应对变更的合作关系。这一点,相对于传统的项目管理来说,无论在合同方式,还是在
顾客和开发团队间的角色扮演(责任分担)上,都是一种激变吧!