本文以纯理论性的PPM讲解为主,不会涉及到具体如何实施,我会在以后介绍详细的PPM实施方案介绍。
PPM,可能很多人并不清楚甚至可能没听说过,这是一个近些年才流行起来的概念,是Project Portfolio Management首字母的缩写。
Project Portfolio Management,字面翻译成中文就是项目组合管理,也就是把很多项目组合在一起进行管理。这里(CSDN)很多人我相信都是跟开发工作有关的,应该也有不少是领导,对于项目管理都有或多或少的认知,我也算是一个小领导,平常对于管理的认识就是把手下管好,把工作做好。 但是,大家有没有想过公司的大领导们对管理的认知是怎么样的呢?
如果我是老板,我投资了这个公司,我把所有的心血都投入了进去,我应该不会只关心把手下管好吧,也不会太关心大家的工作是否做的好吧,我应该关心的是产品能否按期发布,项目是否超支,风险是否可控,人员是否全部到位,销售是否稳步提高,客户是否继续满意,投资回报率是否减少。。。。。。唉,看来老板需要想的,跟我们这些所谓的小领导想的事情还是很两样的(努力去想这些方面,努力自己变成老板吧。)
好了,知道老板想啥了,那我们假设自己是老板,看看他想这些我们怎么去知道。先看看产品能否按期发布,老板肯定不会自己继续写Code吧(要是真的在写,要么是刚成立的公司,要么这个公司快完了),所以他不会太清楚产品开发到什么程度了,所以他只能问手下了,
老板:何经理,你们负责那个产品现在什么程度了?能否按期发布?
何经理:今天王经理报告说还比较正常,不过最近又加了几个功能,所以具体什么时候完成我也没法估计。我再问下王经理吧。
王经理:老大,进度还算正常,不过刚才老王不是说了加了几个功能吗,然后这两天有两个开发请假了,所以这个时间真的不太好估计,我们会尽力的。
老板:。。。。。。(还是不知道能不能按期完成)
第二天,老板继续问,可是,还是继续不知道,其实他们是真的不知道,因为变数太多了,实在很难估计。(不管你信不信,反正我是信了)
第三天。。。,最后老板哭了。
呵呵,开个玩笑,其实这个不能怪手下,因为他们是的确不知道的或者说的确很难估算,但是作为老板来说,他这个位子,又是必须想知道具体进行得怎样了。所以真的,做老板很累,他总是想了解到事情的准确进展,却又总是无法知道,总是要等到最后时刻,有没有问题或者会不会延期才能见分晓,但是那样的话,最初的营销计划可能就得更改,从而影响到其他更多的方面,也就是所谓的一发而动全身了。
所以设身处地为老板想想,他要知道的东西如果每次问都有一个肯定的答复,他该多开心呀,他能胸有成竹地安排接下来的各种计划。我相信每个老板都这么想的。
那我们怎么才能达到这个目标呢?
其实达到这个目标的“方法”很多,甚至老板可以强制要求手下必须知道进展,所以手下就很紧张,就去强制他的手下每天报告,每天评估,然后手下的手下也是这个样子,从而呢,很Perfect,大家都知道自己负责的部分的进展了,所以老板就会听到一个听起来很不错的答案,但是事实真的如此吗?
有没有可能手下忘了估计一项数据?
有没有可能两个部分是有前后关系的(完成一个才能开始另外一个),但是算的时候只考虑了一个时间段?
有没有可能有个家伙突然请假,但是会造成的延误无法一下子统计出来(例如他处理的问题其他人不知道或者没去接手)?
有没有可能对前一段时间的效率计算太高,而导致对后一段时间的估算错误呢?
有没有可能一层一层数据统计(经过一层层的过滤或是润色)得到最后的数据跟实际情况有严重的Difference?
有没有可能突然客户又提出一个功能,我们还能准时发布吗?
有没有可能。。。。。。
Nothing is impossible!
所以说想得很好的事情最后实施起来并不一定见得会效果好,原因是什么呢?上面这么多有没有可能应该已经让你知道一些原因了吧。
上面说的还仅仅是老板想知道的,那产品经理想知道的数据呢,开发组长想知道的数据呢,都是不一样,产品经理可能想知道产品开发到什么程度了,功能是否都按客户要求完成了,而开发组长只是想上周分配给手下的活是否都完成了。所以呢,处在不同层面的人需要得到的数据都是不一样的,但是却又必须得到这些数据,而且是正确的数据,如果听到的回答都是不知道,可能吧,大概。。。那你想想,这个公司怎么做决策,怎么发展。
所以现在总结一下,其实归功到底无非就是两个问题需要解决:
第一个,我需要能尽可能完全得到公司内部各个方面的实际数据,从而知道公司现在是什么情况。(把握当前)
第二个,我需要通过这些数据分析,得出公司现在有什么问题,进展趋势是什么,是否有风险。。。。。。(预测未来)
不管是老板,经理或者组长甚至是小兵,都需要把握当前,预测未来,只是把握和预测的作用点不一致罢了,老板要为公司的运作负责,而小兵只是根据最近工作情况,看看自己是否有什么方面需要提高的。
(休了一个多礼拜的假,今天终于有机会再来写写了,让大家久等了。)
前面讲了一个公司或者说一个老板、一个领导需要清楚两个问题,一个是把握现在,另外一个是预测未来,其实还有一点也需要知道,就是分析过去,分析过去其实是最好做的事情,因为事情已经发生了,我们只要去总结经验,分析问题,得出哪些地方以后要保留,哪些要改进,哪些该去除,总之一句话,取其精华去其糟粕。
分析过去,把握现在,预测未来,这三点我相信大家肯定也会认同,可能大家还会有一些其他不同点,但是我自己认为这三点可以称为一条基线,其它方面可以从中引申出来,毕竟作为一个老板或者一个领导而言,实际要做的事情还会更多,但是他只要把握了主要的几点,整个公司的发展就有保证了。而我这篇文章呢,接下来的部分还是以一个老板的角度来开展话题,当然中间也会有不少地方以其他人的角度来谈问题。
可能用“老板”这个词看起来像做小生意的,不像干大事,接下来我就把“老板”换成“CEO”吧,当然也不是一定每个CEO都需要想下面说的事情,因为下面的人都帮忙做了,所以我想这里所谓的CEO 基本上是还在具体负责整个公司全局运营的。
前面两篇文章已经说了CEO的痛苦了,接下来我们就来看看怎么解决这些痛苦了,其实对于一些小公司而言,上面说的“痛苦”不算啥的,因为公司就这么大,需要想的事情也无非就这么几个,大多数决策都能很快就快就出来的,但是对于一个有很多分公司,很多部门,很多产品线的公司而言,需要想的问题不是人脑想想就能想出来的,太多的数据,太多的变化,人脑是心有余而力不足,接下来还是以我最熟悉的软件企业为切入点开始介绍解决方案(当然这个方案对大部分公司也都是适用的)
软件企业的话,我们以微软举例好了,微软现在很大,但是她也是从车库里发展出来的,当然车库发展出来的还有Google,HP,所以如果你的公司现在不太大,你还是需要看看这篇文章,因为很有可能,你的公司会发展成一个大公司的,到时,你就需要了。
微软从一开始卖Basic到现在覆盖这么多产品线,如果比尔盖茨从一开始到现在都是用一个思维来分析过去,把握现在,预测未来的话,我估计他已经进精神病医院了,脑袋里没法把这么多数据分析出来。当初只要考虑卖给IBM产品就行了,到现在要把这么多系列的产品推销出去,还要兼顾Google,Apple们的蚕食压迫,盖茨如果没有一个好的方法是没法搞定的,当然现在盖茨已经光荣退休了,不过这个是后话了。
我们就抛开微软小时候不说了,就从微软已经有点长大的时候(也就是差不多Windows刚出来的时候)开始说了,你们认为比尔每天一来公司想的是什么事情呢?
那个时候微软应该还没到鼎盛时候,所以做的时候还很多,所以呢,每天比尔一到公司,当秘书露宝给他泡上咖啡以后,他就开始想了解公司的一些情况,那主要是有哪些呢?
总结一下,也差不多主要以下几项:
1. 是否在开展正确的项目:毕竟是在投钱,需要有回报,所以不能投在错误的项目上,得随时了解产品是否是正确的,一旦由于任何因素造成了产品不正确了,就需要及时拨乱反正。
2. 能否实现了过程的最优化:所谓最优化,也就是说只有这些有限的资金,有限的人力,有限的时间,是否每个资源都是被最大化、最好的方式使用着,从而使得整个过程在有序地高效率地进行着。
3. 是否实现客户要求的功能:这个是最现实的了,产品一般都是卖出去的,那当然得卖客户想要的产品,所以客户想要的功能就变得很重要了,我们需要实现客户想要的,才能有可能让客户来买我们产品。
4. 项目进展怎样了:这个对于大部分成长中的公司的CEO还是非常重要的,因为他们需要是事情进展到什么程度了,是否会延期,是否会超支,通过这些数据来指导下一步的措施。
5. 产品中是否能加入一些最新的设计理念:我们知道现在是信息社会,每天各种信息都是瞬息万变的,对于产品而言,我们做的功能,也许竞争对手做出更好的,所以我们需要新的改进以超过竞争对手的;对于客户而言,也许想买我们的产品,但是又觉得我们的功能没有想象中的好,希望我们在哪些地方有改进。客户是上帝,所以我们也得改。但是问题是,产品已经做到这个程度,再加入新的功能,改进旧的功能,是否会影响到产品的正常发布,这个是需要考虑的。
(未完待续)
2011-09-21 14:16 196人阅读 评论(0)收藏 举报先弄个截图出来,可以让大家回忆起上一篇文章说一些点。
还是继续说微软,说比尔盖茨吧,他每天一上班喝着咖啡就想看到这么几个方面的数据,这五个问题其实从语法上来看都很简单,几乎都是疑问句,回答Yes和No就行了,但是我们其实也清楚,这个简单的Yes或者No后面需要多少的工作量,需要经过多少数据分析才能得出这个结论,要知道Yes和No正好相反的,只要回答错误就是往完全相反的方向在走了,一个小事可能没关系,但是万一关系到整个公司的发展的大事,出了问题可能不是说补救一下就行了,这个严重到可能会公司倒闭的。
所以要得出Yes或者No,我们要分析所有相关的数据,所有可能的情况,所有可预知和不可预测的风险,这样子才能最大程度上得出一个相对正确的结论,记住,还只是相对正确的结论了,也就是说只是这个结果的可能性最大。当然大部分时候应该是没问题的,特别对于项目开发而言,这种得出的结果一般情况下基本上能准备反映项目开发的进度,风险,成本等因素。那少部分的情况,就是比如公司需要开发什么产品,公司接下来的发展方向,这些方面其实还是需要公司上层的把握了,数据分析最多可以提供当前产品的销售趋势,已经用户的喜好之类的数据,没办法得出说我们应该开发什么新产品之类的结论。
上面讲了这么多,咱们终于可以再次回到PPM这个主题了,那现在应该知道PPM是干什么了吧,或者说应该有点模糊的认识了。
来看看标准的PPM解释吧:
Project Portfolio Management (PPM) is a management process designed to help an organization acquire and view information about all of its projects, then sort and prioritize each project according to certain criteria, such as strategic value, impact on resources, cost, and so on.
The objectives of PPM are similar to the objectives of managing a financial portfolio:
1) To become conscious of all the individual listings in the portfolio
2) To develop a “big picture” view and a deeper understanding of the collection as a whole.
3) To allow sensible sorting, adding, and removing of items from the collection based on their costs, benefits, and alignment with long-term strategies or goals.
4) To allow the portfolio owner to get the “best bang for the buck” from resources invested.
大致意思就是PPM是设计来帮助一个公司收集并查看所有项目的数据,并且可以根据一定的标准(比如战略价值,资源影响,费用等等方面)进行排序与设置优先级。其目的就是:
1. 可以直观地在Portfolio里看到项目的所有细节情况
2. 可以得到一个公司所有项目进展的全局总揽图以及对一些数据进行更深层次分析,从而得出一些方向性的结论
3. 允许在各种数据进行不断更新时,数据分析也会实时更新
4. 帮助公司获得最划算的投资
再回过头来看看之前说的盖茨想要每天一早来看到的几个点:是否在开展正确的项目,能否实现了过程的最优化,是否实现客户要求的功能,项目进展怎样了,产品中是否能加入一些最新的设计理念,其实简单地分析一下,这些“理论上”都能在PPM中得到解决,那真的是这样吗?我们来分析一下吧。
我们一个个来分析,首先是“是否在开展正确的项目”, 关于为什么要知道这点,前面已经说过了,直接Copy过来再让大家温习一下,
毕竟是在投钱,需要有回报,所以不能投在错误的项目上,得随时了解产品是否是正确的,一旦由于任何因素造成了产品不正确了,就需要及时拨乱反正。
当然,我们现在想的已经不是说为什么要研究“是否在开展正确的项目”,而是说我怎么知道在开展正确的项目。对于这个问题,我们可以这么来分析,什么叫做正确的项目呢?无非就是两个方面,一个方面就是项目是完全符合客户要求的,另外一个方面就是项目在合理的成本,风险,资源控制下进行的。
对于符合客户要求而言,PPM提供了客户体验值去一直跟踪产品是否按照客户的要求在做着,当然这个值是跟产品开发系统集成在一起的,因为毕竟客户需要实际体验产品或者项目才能知道是否符合他们的要求(这个也证明了PPM不太可能是一套独立的系统,而是需要从不同系统中进行数据挖掘从而得出一系列的结论)
对于“项目在合理的成本,风险,资源控制下进行”而言,这个就比较复杂了,因为对于项目实际进行中的任何因素我们都要统计出来,以得出一个相对正确的值,这个因素包括了人力成本,可能的风险,时间,设备等等,通过对这些因素的统计,会得出一个结论,就是项目是否在健康的进行着,毕竟我们资金有限,时间有限,人力有限,如果监测到资金可能超过预算,时间可能超期,人力可能不够,PPM都会显示并且提醒相关人员,以使得项目在可控的情况进行,有时甚至需要中止项目的进行,因为花钱太多了。
PPM提供的这些数据,我想CEO是很乐意看到的,投资正确的项目才有可能得到想要的回报。
下面是一张PPM全局的基本结构图,从中可以看到,管理层可以在PPM中看到公司内部所有项目的基本情况以及从这些项目各种数据中提炼出来的这个公司当前总的发展状态,大家可以先看看,我稍后会继续讲其它4个点在PPM中的处理。
(未完待续)
所谓最优化,也就是说只有这些有限的资金,有限的人力,有限的时间,是否每个资源都是被最大化、最好的方式使用着,从而使得整个过程在有序地高效率地进行着。
这一点,很多公司其实都觉得不太能把握住,所以经常造成项目超支,推迟(关于推迟,微软这方面做的比较“出色”经常Delay Windows的发布,呵呵),原因当然就是没法准确地知道是否资金,人力和其他资源是否在最好地情况下运行着。
关于这一点,首先我要申明,PPM没法完全解决这个问题,因为拿人力来说吧,要使一个人每天八个小时都一直高效地运转着,这个是没法检测出来的,而且这个通过PPM本身也没法去改变,而是需要公司提供一个好的环境(工资待遇,团队活动,技术培训,发展前景等等方面),这样子才能让一个人可以有可能发挥最大的能动性。
而PPM所能做的时候是什么呢?就是去检查我们预想的情况与实际完成的情况是否有很大出入,从而来判断哪个地方出了问题。比如说我预计这个任务,需要花多少时间,多少成本,多少人力就能完成,但是实际得到的数据却不是这样子的,我就有个报表显示哪些地方可能会存在着问题,从而我们就能有的放矢地去研究一下,而且每天、每周、每月、甚至每季度每年,我们如果都有预估值和实际值记录下来的话,就会产生一个趋势图,而这种趋势图对于过程改进来说是非常有用的,可以得出一个相对正确的发展趋势图,特别是对于时间和资金方面,可以得出原来预计的时间和资金是否可行,是否会超支和超期。
呵呵,已经说到超支和超期了,我们就可以把另外一点“项目进展怎样了”包括进来一起讲了,项目进展情况无非就是是否能按时完成,现在是否进展顺利,成本能否控制,有无潜在风险等等,刚才上面已经讲了好几点的处理方式了,所以我这里就不多说了,反正PPM处理这个方式一般就是通过实际数据与计划数据的实时分析来得出一个当前的进展与未来的趋势指导,这个对于时间,人力和成本管理都差不多。当然至于风险管理这种不确定因素,PPM提供另外一种方式,就是通过一定算法,把风险等级转化成一个权重值,然后结合项目的其他数据(时间,人力,成本等等)得出一个项目健康度,甚至可以得出一些建议的内容,是建议延期,或者放弃,或者正常进行这类结论。
说到这,我相信,有些读者觉得PPM好像非常厉害是吧,有点像之前有部美国大片“鹰眼(Eagle Eye)”中,电脑系统能够凭借一系列的信息推断出某个人是不是恐怖分子,是否需要击毙他一样,电脑系统也给出了百分比,百分之多少的可能性可以去击毙他,很神奇吧。但是大家反过来想想,那个电脑怎么得出结论的呢?她也是通过分析了许许多多的数据,然后把每个数据的结论作为一个权重值,然后结合许许多多的权重值,最后得出一个总的结论值,然后给出意见。所以没啥神奇,就是一个算法而已,而PPM呢,就是在做这个事情,只是不是针对恐怖分子了,针对企业,针对项目而已。
(休息一下)
下面是几个典型的PPM应用的截图,先给大家看一下,让大家看完上面说的内容,能对PPM有更深入的了解,我下一篇在介绍一下剩下的两个点在PPM上实现,也就是“是否实现客户要求的功能”和“产品中是否能加入一些最新的设计理念”,欢迎继续阅读。
(未完待续)
其实讲到这里大家应该也明白了,PPM本质上是一个思想,一种管理思想,通过分析各种数据来得出让管理层需要的数据,管理层需要哪些数据我上面都已经讲过了。但是作为一种思想,我们总是需要一个载体去实现这种思想,就像马列主义,毛泽东思想,都过苏联和中国的革命来实现,邓小平理论通过改革开放和一国两制来实践,而PPM呢,它其实说到底是通过工具来实现的,也就是说它在这个世界上实际存在的形式是作为一个软件,作为一个系统而出现,在这个系统里,通过一些功能来实现PPM的思想。(就像“鹰眼”系统一样,还是需要把程序写出来,然后运行在电脑里的)
说到这个地方,我突然想起来,国外一个专家介绍PPM时,举了一个例子,说我们买股票是用的炒股软件,有这么多得数据分析,趋势图,让你可以研究会下一步的买卖作参考,而PPM系统呢,她也差不多,唯一的区别就是PPM的数据比较真实,未来趋势比较容易预测,而股票就很难预测,变数太多。我现在想想,的确还真的是这么一回事,因为PPM的数据来源大部分都是实际操作中提炼出来的数据,除了一些潜在的风险之类的数据以外。
好了,回到正题吧,开始介绍怎么实现 “是否实现客户要求的功能”和“产品中是否能加入一些最新的设计理念”,为什么要把这两点一起拿来讲呢,因为他们还是有点联系的,你想好了,如果没有实现客户的功能或者客户想要新加功能,势必会在产品中新加或者改变一些设计的。
我们说一个产品或者一个项目,主要还是卖个某个客户的,顾客是上帝嘛,所以客户有什么要求一般都需要去满足。不过,如果到项目完成那天才把项目给客户验收,我们就会有个风险,就是客户不满意,认为没达到要求,或者没实现一些功能,这样子就重新返工,重新设计,造成的损失是无法估量的。为了尽量减少这种不必要的损失,我们一般的方法是这样子的,在项目开发过程中,每个一段时间给客户看一下进展情况,让客户实际体验一下是否做好的功能符合他们的要求,这样子的话,到最后验收的时候,其实客户之前对所有的功能其实都已经看过,有意见也都已经提好了,即使最后有损失也不会太大。(这个也是我之前文章写的敏捷开发的方式了)。
而在PPM中呢,这个方式还是适用的,因为对于PPM而言,她不是独立存在,她需要其他系统配合她存在,特别是软件开发平台,PPM需要从中得到一些数据,从而去看是否会影响到整个项目的进展情况,这些数据主要有客户增减功能是否会影响进度,是否会增加成本,是否有其他风险等等,通过实时得到这些数据后,PPM就会自动调整项目的情况分析,让管理层能够马上知道最新的情况。
好了,到这里,PPM去实现的五个点我都已经讲完了,不知道大家理解得清不清楚,如果还是有不清楚的,可以跟我私聊,我是很欢迎的。这五个点,我在这里也重新再Copy一遍,让大家增加点印象,所谓温故而知新了,呵呵。
1. 是否在开展正确的项目:毕竟是在投钱,需要有回报,所以不能投在错误的项目上,得随时了解产品是否是正确的,一旦由于任何因素造成了产品不正确了,就需要及时拨乱反正。
2. 能否实现了过程的最优化:所谓最优化,也就是说只有这些有限的资金,有限的人力,有限的时间,是否每个资源都是被最大化、最好的方式使用着,从而使得整个过程在有序地高效率地进行着。
3. 是否实现客户要求的功能:这个是最现实的了,产品一般都是卖出去的,那当然得卖客户想要的产品,所以客户想要的功能就变得很重要了,我们需要实现客户想要的,才能有可能让客户来买我们产品。
4. 项目进展怎样了:这个对于大部分成长中的公司的CEO还是非常重要的,因为他们需要是事情进展到什么程度了,是否会延期,是否会超支,通过这些数据来指导下一步的措施。
5. 产品中是否能加入一些最新的设计理念:我们知道现在是信息社会,每天各种信息都是瞬息万变的,对于产品而言,我们做的功能,也许竞争对手做出更好的,所以我们需要新的改进以超过竞争对手的;对于客户而言,也许想买我们的产品,但是又觉得我们的功能没有想象中的好,希望我们在哪些地方有改进。客户是上帝,所以我们也得改。但是问题是,产品已经做到这个程度,再加入新的功能,改进旧的功能,是否会影响到产品的正常发布,这个是需要考虑的。
看完了上面的七小段文章,我相信应该很多人认为PPM好厉害啊,但是也会有很多心里在嘀咕,虽然很厉害,但是好像很复杂的样子,我们是需要,但是看起来搭起来很麻烦的样子。
这些想法其实我也有过,不过正如古代的人憧憬能在天上飞,但是认为可望而不可即,到现在飞机很常见了一样,有时候很多事情想想很困难,其实真正实现的时候却发现是很简单的,PPM也一样,因为你现在是在外面看她,只看到外表,但是一旦你进去以后,了解内在以后,你就会发现她其实很简单。当然我说的简单是针对用PPM的人,对于开发PPM系统的人来说是很复杂的,因为要把所有PPM涉及到点用功能来实现,并且还要看实现的效果。而使用PPM的人,只要跟平常一样工作,每天输入自己的工作数据,PPM就会告诉你现在是什么情况了。
PPM这个概念其实提出有一段时间了,但是之前的做法很简单,都是通过人工的方式把一些数据填上去,而不是通过实际工作数据自动计算出来,比如说项目进度,之前都是就通过人脑估算,说已经完成百分之几了,到最后要发布的时候,经常发现统计还不对,甚至到最后统计显示99%的时候,经过一个月还是写着99%,因为有几个功能忘了做了。
所以现在的理念就是,一切都从实际数据中提炼,当然这个“一切”得打个引号了,不能保证100%了,只能说大部分数据。邓小平说过,实践是检验真理的唯一标准,PPM回答说,实际数据是得出结论的唯一手段。
不过有一点申明一下,我这篇文章讲得主要是理论化的PPM,所以真正的PPM系统不一定都能达到我说的全部功能,当然我相信那些PPM开发公司也都在努力着,目前国际上有不少大公司都在做PPM,国内好像不多,不过按照我接触到的情况,很多客户特别是银行、电信等行业非常喜欢这个功能,因为他们一般把项目外包给其他公司,但是他们的负责人又是非常想知道这些项目当前的进展情况,所以PPM这种系统就显得特别有需要。
我们公司现在正在使用TechExcel的PPM系统,因为我们已经实际在用着,感觉很好,所以我也推荐一把,TechExcel的PPM系统的数据来源主要是他们的DevSuite系统,也就是我之前文章“结合工具实现敏捷开发”提到的DevSuite系统,该系统由于覆盖整个软件开发的所有阶段,所以可以说软件开发过程中实际数据都基本上采集到了,然后交给PPM去分析,这样子最后在PPM中得出公司总的情况数据就比较准确,也为下一步的发展有了理论基础。
另外的话,IBM,Serena也都在做这种系统,比如Serena之前我们也研究过,PPM部分不错,但是由于采集到的数据不够全,所以我们觉得可能不能反映实际情况。
感谢大家一直看完这篇文章,语文没学好,可能有些地方说的不清楚,望大家见谅,谢谢!