软件研发管理流程设计的规则要点
管理者在设计流程规则的时候,要考虑以下几个要求:
1、规则要尽量简单、清晰。只有这样,团队所有人才能执行到位,越简单越容易执行,才能起到规则的效果;
2、执行规则要有监督保障机制。人都是有惰性的,边界不清晰则一定会越界。举个简单的例子:对团队要求早上 9:00 之前上班,不能迟到,如果规则就这么定,那么刚开始大家都会遵守,慢慢的发现都迟到了,因为 9:01 到也没啥问题,毕竟只比要求的晚了几秒钟。所以要有监督,明确 9:01 就算迟到,并且迟到了有相应的惩罚措施。
3、多制定正向引导规则,尽可能少的惩罚规则。损失厌恶机制会让人在受到惩罚的时候很不爽,在一个团队中,对一部分人惩罚和对另一部分奖励的效果其实是一样的,管理者尽可能多地对做的好的人进行奖励,可以避免损失厌恶对团队带来的不良影响。
4、根据规则执行情况进行完善,可以借用 PDCA 的原则,进行流程规则的改进,提升团队效率和质量是永无止尽的。
在多年的实践之后,制定了一系列的规则,充分体现了以下几条管理原则:
1、高效思维——流程性的活动,一次性把事情做对做好,别返工,效率是最高的;
2、闭环思维——任务的完成都有对应的交付物,任务都有关闭节点,并且是由任务发包方进行关闭和确认;
3、协作思维——软件开发是一个高度依赖协作的活动,任何人在组织中,承诺的事情都需要按要求交付;
4、在线思维(流程工具化)——软件研发过程中的点点滴滴,都在线记录,包括所有的文档、代码变更等。
通过这些正向的规则引导,可以让整个团队在统一的规则下去做事情,就跟中国人民解放军为什么战斗力那么强,那是因为军队的组织纪律严明,有统一的行动规则,同样我们的研发团队,有统一的规则和行为,战斗力自然会变高。
另外一个观点,我们认为技术团队中的个体能力非常重要,但对于整体组织的效率来说,管理者的组织管理能力更重要,就如同金庸的武侠世界里,武林高手有绝技,但面对朝廷大部队的时候,还是以卵击石,整体组织的效能更多的来自于组织的协同作战能力。
有句话说,一头狮子带一群羊,是一群狮子的战斗力,一只羊带领一群狮子,也是一群羊的战斗力。
再举个例子,商鞅变法前的秦国军队,战斗力其实并不强,商鞅变法后,军队还是那支军队,但通过不同的组织分工后,战斗力已经完全不一样了,面对战国诸雄能做到所向披靡,体现的就是管理组织能力。
第三、通过对这些规则的落地执行,符合规则的同学进行加分,而对违反规则的同学进行扣分,最终就会有一个积分表出来,每个人都会清晰地知道自己的得分,是因为哪些事情做得好或者做得不好,而规则都是提前跟大家沟通到位的,这样团队所有人都能慢慢地统一行为规范了。
举几个规则的例子:
工作项指派后超过 8 个小时未接受
超过计划完成时间未进行任何处理
开始时间在今天之前(包括今天)的任务,状态没有更新
项目没能按时提测(每延迟一天)
冒烟测试打回(每打回一次)
冒烟一次性通过
项目结束后,开发责任人名下的 reopen 累计次数超过 3 次(从第 3 次起,每增加 1 次积分 -1)
Bug 最少的 30% 开发责任人
......
通过这些规则的执行落地,进行加减分的方式最终会得到一个相对排名,我们很难去区分 95、96 分有多大的区别,但团队中排名靠前的和排名靠后的相对比,中间的差距就会非常明显,对于团队管理者,也会很清晰地了解到技术人员在日常工作中的一些情况,从而让管理者更轻松地带领技术团队高效地协作、高质量地交付。