《产品研发过程实践》(15) 人--软件研发中的首要因素

在进行项目管理的过程中,特别是软件行业的项目管理的过程中,我们要切记一点:你首先管理的是人,而不是过程,更不是文档,企图使用管理文档的方式来管理、监控整个项目,就象仅仅站在1000公里以外,指挥进攻华沙的图哈切夫斯基一样,遭到指挥生涯中,最严重的失败。从理论上来说,你的确可以如此做,但是实际上,你将面临严重的危机。

另外,我们企图用传统的工程学(类似机械、土木工程)的方式,来定义整个软件过程,这一点,至少从现在我的观点来看,是有点过于乐观了。我们在从这些传统工程学行业中吸取经验和教训的同时,最好也能够看见他们之间的不同,不然,也许我们将一步从成功走向失败。

至少在现在,还不是流程决定着软件开发的结果,而是开发软件的人,至少从我在项目中看见的绝大多数错误,来自于我们的愚蠢的设计,比愚蠢的管理更致命(当然不是说,良好的管理就不需要,但是,的确,就我个人的观点来看,愚蠢的设计给项目带来的损失远远超过愚蠢的管理)。我们要记住一点,流程为什么而存在?流程本身并不是目的,流程仅仅是更好地达到目的的一个手段,流程可以使得良好的经验迅速固化,并且在推广展开;而且流程的操作性很强,相对于很多模糊的概念来说,他们至少更容易进行管理。但是,无论采用什么流程,我们的目的是客户所满意的结果。请随时记住这一点。不要让流程成为你迈向成功的绊脚石。

对于项目管理来说,人是最重要的,至少有三层意思:

1.          不管你开发什么软件,不管你用什么流程(不管是至少我看来多少有点胡扯味道的软件工厂也好,还是很谦虚同时也很自豪地宣称自己是软件作坊的也好),实际在为客户提供价值的是研发人员所提供的产品,这些首先是人所作出来的;

2.          你的软件,是为人来服务的,如果你不把主要注意力放在“客户”这个人身上,你就是在做无用功;

3.          相对于流程的管理,人的管理更困难,但是也是最有效的管理方式,如果一种管理方式,倾向于不同的人的差异性,企图“一视同仁”地管理整个团队,也许在某些领域(比如沟通交流比较少的领域,领域内的知识被很大地固化在设备中,流程中,比如说工厂流水线),但是在知识性的领域中――这个领域更多依赖人的脑力劳动,而不是体力劳动来创造价值――来说,并不适合!

所以,不要过于去追求所谓不依赖于人的软件开发流程,这是一个理想化的,同时也是虚幻的流程;不要过于去追求所谓建立一个流程,然后傻子也能开发软件的流程,用这种流程开发出来的软件,也只有傻子才会去用;记住,是你优秀的,卓越的团队成员在开发软件,而不是流程。

流程是重要的,但是人更重要,忽略人去做管理,那么做为管理者的你,也就没有太多存在的价值,我们只需要找个书呆子(他阅读过高级管理学,从ISO文档或者其他公司中抄写了全套流程文档),然后给他配一个秘书(或者叫助理也可以),发布流程,然后当当监工就可以了。但是,这是大家期待当的管理者,或者大家对自己管理者的身份是这种认知吗?如果是的话,我无所谓;但是,我不是这样认同的。这也就是为什么一个MBA毕业以后,要经过比较长时间的管理实践,才能成为一个好的管理者一样,虽然他们在上学的过程中学到了很多案例和理论。

好了,我们说了很多人在软件整个过程中的重要性,下面我们看看,在每一个角色中,我希望他们做什么和如何做?当然,这是我个人的一点体会,不是什么教条,各个公司都有自己不同的做法,所以,不要很固化地去看待这些。


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
评论: 0 | 引用: 0 | 查看次数: 3844
发表评论
你没有权限发表评论!