浅谈如何建立实用的项目管理流程

我是程序员出身,除了软件行业别的行业不太了解,其实软件行业很多的做法和实践都是从别的行业——例如建筑业借鉴而来的。我们时常羡慕盖茨爸爸,马云爸爸,马化腾爸爸,甚至王欣大哥那个时代,一个人可以成就一个公司,可以成就一个经久不衰的软件产品。但是随着行业规模的不断壮大,软件行业再也不是英雄遍地的年代了,工种越来越细,组织结构越来越复杂。项目管理就受到了越来越多的重视。

但是,软件行业中也走一些争论。争论的关键点是,人治还是法制。其实对于我的团队与来说,从项目层面上我更偏向于用个人魅力和人性来管理团队,但是从组织层面上来说,我还是偏向于使用制度和流程,一板一眼去组织管理流程,但是对于项目级的管理,可能项目负责人的软技能就会起到关键的作用了,丰田公司有句话是这么说的“Be hard on the process,but soft on the operators.”也是表达了这么个道理。

其实对于我来说,这个观点还有另外一种表述,意思就是过程和制度是必要的,但是从执行层面和体系的制定层面要尽量做到足够的灵活,由人去控制流程,而不能让流程去制约人。

每个组织的项目管理体系都是逐步建立起来的,回望我所在的公司,项目管理体系建立发展至今,大致上分为了三个阶段:

在公司成立初期,因为会依托于集团的业务信息化需求和一些客户的信息化需求,业务相对比较简单,团队规模还没有超过10个人,基本上每个人都集项目经理、开发、测试、前端等多工种为一身。在项目过程中,大多数情况是1-2个人在一个项目上,也无所谓协作,有句话说的好“just do it”。在这个阶段,不得不说,我们将每个人的能量发挥到了最大限度,也都很努力,每个人都很忙,最短时间交付,注重的是实现的结果,用最灵活的方法把业务实现。但是,由于是初创团队,以及业务延展不稳定的特点,造成在软件实现的过程中,有大量的不稳定需求的出现,造成的重复劳动,不断推翻重做(注意,不是重构,就是重做),软件质量也得不到保证。在我们看来,如果要要给这个阶段命名一下的话,我认为相当于CMMI里面定义的初始级的那个状态。也就是说软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。(引用自CMMI)。但是随着业务规模和人员规模的不断壮大,这种情况愈发的不可控制,所以,需要一定的规范、方法去保证软件团队的生产过程。

于是,我们主动走进了我们项目发展的第二个阶段。我们首先规定了工程中的编码规则和架构的规则,并且在人力行政的帮助下,进一步的划分出各自负责的范围。我们觉得我们需要一套相互配合的方法和原则,不然我们各工种之间的衔接会消耗很多成本和资源,并且越是分的清楚越是个很大的麻烦。但是另外一个问题又来了,没有人能在短时间内,拍脑门制定出一套类似的规则出来。于是乎,我们就把手头上的能获取到的现有流程规范揉碎了重新组合了一下,就形成了公司研发体系及流程规范(一套)v0.1。看版本号大家就知道,一版非常非常不成熟的东西。在实际运作的过程中,在这个体系下,我们感受到了前所未有的纠结,因为是照搬的别人的已有过程,我们开始了漫长而痛苦的试错——改造——再试错——再改造的过程。在这个过程中,整个团队的工作效率急转直下,团队士气受到了沉重的打击。这个时候,团队中的几个老家伙起到的关键性的作用,于是我们坚持下来了。就像我前文表达的,在法制的过程中,在推进的最关键,或者说最困难的阶段,人治的作用就凸显了出来,并起到了稳定团队、保障生产的关键作用。当我们的研发体系规范版本号到了v0.17的时候。我们发现,曾经出现的需求、质量、配合等等一系列问题,都不是那么的突出了,或者说,都得到了不同程度的解决,我们意识到,是该给这个痛苦的过程画上一个句号的时候了。于是我们做了最好一轮的调整,将版本号正式改为V1.0。至此,我们的项目管理体系流程算是初步建立了起来。虽然看起来和施起来没有那么的完美,但至少我们走出了这一步。这个状态从CMMI的角度来说应该叫可管理级。也就是建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。(引用自CMMI)。但是随着业务的发展,队伍越来越大,人员越来越多,更多更复杂的问题又显现出来了。

有句话这么说的:专业的人干专业的事,专业的工具干专业的事,专业的职能干专业的事。公司发展到了这个程度,在业务流转和研发体系中出现了很多问题,于是,我们对职能进行了划分。研发中心、用户体验、质量保证、产品规划、技术运维、PMO。确立了以项目为中心的研发体系。从PMBOK的角度来说,形成了一个强矩阵的组织体系。那下面的工作就是基于项目体系下怎样让项目生产运行得更顺畅,让各个职能部门的人融入到项目体系中去。在人力发展部门的帮助下,基于原有的项目管理过程和体系,各职能部门编制了基于部门的执掌手册,这个手册的内容包含部门岗位成员的职责范围、基本的工作流程和规范。首先在职能体系下对人有个一定的规范和梳理,剩下的就是在项目层面上了。我们将项目划分了几个基本的阶段——立项、分析、研发、测试、上线、运维。对每个阶段的参与者和相应职责做了详细的规定。至此我们基本形成了研发体系建设v2.0的基本建设。

其实在建立项目管理流程和研发体系的整个过程中,我们也跟大多数的公司一样,走了很多弯路,也遇到了许多的阻碍,甚至人员的流失。整个建立的过程其实就是发现问题-解决问题的过程,只不过有的问题在一些发展的阶段中不是想象中的那么好解决。 但是如果你的出发点都是本着组织优先的这么个原则,我倒是不认为有什么问题是解决不了的。在订立这样一套流程的初期,人的作用是起到关键因素的,相应的组织运转效率也可能会大幅下降,但是经过一段时间的运行,相信会提升你组织的各项关键指标。

发表评论

电子邮件地址不会被公开。 必填项已用*标注