软件适航加油站

 找回密码
 成为会员
搜索
查看: 12562|回复: 2

软件项目管理杂谈[转]

[复制链接]
qfwind2003 发表于 2009-7-28 14:31:59 | 显示全部楼层 |阅读模式
在一次由软件项目管理者组成的交流会上,看到过我所写的《软件项目管理原则谈》的朋友向我发问,如何在所学的项目管理理论和实际项目实践中找到一条连接的纽带;软件项目管理的度如何把握;为什么项目协调中更多的是貌合神离;为什么自己觉得自己所管理的项目老是失败等等。这一连串的问题引起了与会的项目管理者的同感,笔者本人也曾经在项目管理中屡遭挫折,目前的项目管理中依然麻烦不断。但是,作为一名软件项目管理者来说,在实施项目管理的过程中,笔者觉得在项目管理中,我们的大多数人常常在管理思维中留下一些空白,而这些空白正是我们公正、客观地评判和成功执行软件项目管理的必要途径。

1: 为效益而实施项目管理


  为什么我们要实施项目管理,是为了提高项目的效益。这里所指的项目的效益是一个综合性的指标,包括低风险、高产出等。为此我们不难得出我们在实施项目管理应该掌握的度。即:引入项目管理后所产生的效益减去项目管理的成本后必须大于未引入项目管理时的效益。由于引入项目管理后所产生的效益与项目管理的复杂度(项目管理的成本)并非线性相关的,因此项目管理的复杂度必然存在一个最优值,这就是我们应该把握的度。也许上面的说法比较抽象。一个实际行之可效的判断项目管理的度规则就是:大家认可并且能够准确地理解和实施。拿美国项目管理专家James P Lewis的话说就是 KISS原则(Keep it simple and stupid),拿物理学家爱因斯坦的话说就是:Keep it simple but not too simple.

2: 考虑所处环境


  任何系统都是建立在一个具体的系统环境中的,一般情况下受上一级系统影响最为显著,这是系统论的观点。项目管理是企业管理的下属层次,因此在很大程度上项目管理的成功与否常常受企业管理的制度制约(比如说设备采购的批复等待会延误工期),这就是为什么常常会出现计划不如变化来的快的原因。因为我们在制定计划时根本就没有考虑自身和客户双方的企业管理的环境,所以我们的计划在实施过程中会受到企业管理环境因素的影响。我敢跟你打赌:在没有人事激励机制常常拖欠或故意克扣员工工资但获得CMM5认证的公司开发效率不会比一个没有实施项目管理的开发团队的效率高多少。因为恶劣的公司人事制度扼杀了开发人员的天才和积极性。因此,作为一个项目管理者,审视自身的项目所处的企业环境并做出准确的判断是非常有必要的。缺少良好的项目环境,项目管理者的心血常常白费。这往往是我们中的一些项目经理在不同的公司里项目管理表现大相径庭的原因。


  此外,正是基于企业环境这样一个观点,目前美国PMI,日本ENAA等提出了项目管理成熟度模型(OPM3和P2M),改变了传统PMBOK的缺陷(忽略外部因素和自身的灵活性)。有兴趣的项目管理者可以参看有关项目管理成熟度和企业管理方面(建议参看职业经理人方面)的资料。

3: 合理评判软件项目管理


  我们总是把过多的项目失败归罪到项目经理的名头上。他们的角色常常是替罪羊而不是领导者,他们拥有的更多的是责任而绝非职权。实际上项目失败并非完全决定于项目管理,比如说信息系统过低的报价。一个项目按时在预算范围内完成了而另外一个则没有按时完成,这不意味着第一个项目管理得比较好。因为前者可能是项目时间和成本宽松的项目而后者根本就是不可能完成的项目。前者项目管理的意义在于获得较高的项目效益而后者的意义在于避免更大的项目损失。很可惜,充满了浮躁的软件企业没有诸如此类的意识,一些项目在未开始前注定就是失败的,项目经理们一上手便被扣以一责任人的镣铐。因此,项目管理有无具体效果,需要合理地进行评判,单纯以出效益为上的观点未必有失偏颇。

4: 心理学的必要性


  没有一个领域像软件项目管理中人的因素更为重要,在软件领域没有实现自动化之前,一切试图取代人的主要作用的机制都是收效甚微的。人的行为是心智活动的表现。开发人员的心理活动决定了其在开发的表现。合适的压力能够勾起开发人员的成功欲望但是过大的压力却直接影响着项目参与者的身心健康。特别是后者一直以来都未能引起软件开发界的重视。很多人曾经有过不明不白的辞职经历,在没有学习《管理心理学》之前,笔者对这些人的"过激"行为有时想想都觉得奇怪。作为一个软件项目管理者,不了解和掌握管理心理学,很难针对复杂多变的人的因素采取合理的应对措施,同时自身的心理健康也未必能够得到保证。为此笔者建议有条件的软件企业,可以通过聘用心理顾问来处理员工的心理问题,以此缓和由于工作压力而导致的员工之间矛盾冲突和项目坍塌。

5: 尊重常识,系统性考虑问题


  这个观点笔者在《软件项目管理原则谈》已经重申过。就像不要指望人一秒钟跑二十米一样指望项目中有过多的奇迹出现。可惜我们中的大多项目管理者在进行项目管理时依然实施"大跃进"。我们的管理者都知道自然规律不可违抗性,但是却很少有人意识到一些社会规律的不可违抗性。他们总以为唯物的主观能动性能够替代实际,产生奇迹。加班被认为是解决资源匮乏的唯一途径,通过开发人员"无上"的生产力来达成项目的成功。很少有人会意识到加班造成的疲劳会再次使工作效率降低这一事实。这是一种缺乏常识和系统性思考问题的表现。诸如此类的表现还有"唯工具论"和"唯方法论"。


  实际上,项目管理涉及各个方方面面,一味提高某一方面作用而忽略该方面对其它方面的影响,并不能提高项目管理的层次和最终产出,这是制止我们的项目管理者走偏激(极端)立场的一剂良药,希望项目管理者们能有所意识。

6: 学会思考


  项目管理不是拿来主义,需要项目管理者进行认真的思考。这就是为什么我们项目管理者中不乏PMP和IPMP但是项目却未能如愿以偿的原因。理论和实践的差距极大地挫伤项目管理者的积极性。"证书无用论"所持的观点其依据也在于此。理论是一种完美的抽象,而现实是各种条件的集合。我们的项目管理者在实践上往往生搬硬套而忽略其依存条件,这就是招聘项目经理"唯经验论"的来源。一位项目管理者跟我交流的时候提到无法使用挣值(Earned Value)的概念,原因是公司人事部和财务部不愿意出示员工的收入清单。我建议他将挣值换为挣时(Earned Time),以时间替代成本。从项目进度的意义上来看这两者其实是一致的,问题马上得到了解决。可惜的是我们的项目管理者往往未学会思考具体概念的真正含义之前并匆匆上驴,提着长枪去和风车做斗争去了(注:唐吉诃德)。

7: 学会计划


  现实中我们往往用补救措施代替计划,其效果便如软件缺陷的放大效应。在项目经理的招聘中,你听到的只是几个项目管理白痴问你项目出了什么问题应该怎样解决的提问,这些项目管理白痴在不断地做各种问题假设,而你必须根据假设采取各种符合这些项目管理白痴口味的回答。但是,作为项目管理的来说,项目管理的真正意义在于事先预防各种偏离项目目标的问题出现而不是在于解决问题。古话说得好"磨刀不误砍柴工"。你不能期望癌症有100%的治愈率,但是你可以通过合理的生活习惯和锻炼来防止癌症的出现。我们在进行项目管理时,首先应该考虑如何防止问题的出现,虽然它不能保证所有的问题(风险)都可以避免,但是通过计划,你将拥有更多问题(风险)应对储备,能够在问题出现时有备无患。一个只会在问题出现时考虑应对措施的项目经理只是一个失败的项目经理。其项目结果无异是把健康交给医生而不是自己。作为项目管理的定位来说,项目管理应该是"管理会计"的角色而不是"成本会计"的角色。

  最后,以某电影的台词来结束本文?人为什么犯病?简单的东西想复杂了,复杂的东西想简单了,人就会犯病"。拿这句台词来形容我们目前的项目管理状况一点也不为过。软件项目管理是一个从"自发"走向"自觉"的过程,也是一个从经验主义走向理性主义的过程。软件项目管理是一个主动的管理,而这一切,需要广大项目管理者的项目管理思维和积极实践。
rustic010 发表于 2009-9-13 16:24:46 | 显示全部楼层
软件项目管理不是项目经理个人的事,对于一般企业而言尤其如此。因为对于大多数项目经理来说,他们根本不可能是专业的软件技术人员,对软件本身知之甚少。尤其是现在不断强调的软件工程化管理,对软件的过程管理关注程度越来越高,要求一个普通的企业管理人员对软件开发过程的每个环节都了如指掌显然是不现实的。
项目经理的质量管理职能应该分解到开发小组成员身上,而不是由项目经理去承担。项目经理能够做到了解并清楚每个基线和节点输出什么文档,得到什么成果就足够了。
sologuy8 发表于 2010-10-23 21:01:10 | 显示全部楼层
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

小黑屋|Archiver|手机版|软件适航加油站 ( 沪ICP备13019901号-3 )

GMT+8, 2018-7-22 12:44 , Processed in 0.140401 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表