上一篇谈到了创业技术团队如何做计划,这次总结一下怎么分配工作。
分配工作的关键原则是:“事事有人做,而不是人人有事做”。一家公司最好是有多少事,配多少人。然而事是快速动态变化的,尤其是互联网行业,业务变化极快,上周的紧急任务,本周就有可能被砍掉;人却不可能因为今天事儿少了就裁两个,明儿事儿多了再招一个——且不说招聘没有那么快,就算新人能迅速到位,他熟悉项目,融入团队也需要爬坡期;何况之前也提到过人与人是无法互相代替的资源,换了两三个人以后,甚至团队的分工合作模式都会有变化。
要想保证事事有人做,计划和任务分解当然是必不可少的,而分解后的任务如何分配到人,就要兼顾两个目标的平衡:高效做事 vs 培养团队。
高效做事的任务分配原则很简单:就是让每个人做他最熟悉的事儿,但熟悉的过程其实也是做事的过程,这就变成了一个“正反馈”(注意并不是褒义词啊,只是效应不断发大的意思),会带来很多副作用:
- 每个人都被局限在自己熟悉的领域里了,没有时间和精力关注全局,等到完成大规模复杂协作任务的时候,这种局限就是致命的;对个人来说,总是做熟悉的事也会产生倦怠感,成长缓慢,不思进取,有追求的同学甚至就此产生离开的想法
- 能者多劳,越来越多:一个人挖坑,其他人围观,最多递递家伙,任务分配严重不平衡,效率低下,久而久之,能干的人也会有怨言
- 每件事都缺乏多个人的关注和思考,思路容易跑偏;比如实现方法有缺陷,效率低、可读性差,这些问题都会被掩盖;万一对应的人离职了,其他人接手也变得异常困难,会演变成传说中“往屎山上继续堆屎”的故事
所以我们还需要关注团队培养,包括:
- 关注每个人的成长空间和成长路径(后面会专门写一篇如何培养人和团队),保持他们的新鲜感和热情
- 让每个人适度突破自己的舒适圈,做不太熟悉的模块,让熟悉模块的“老人”带“新人”
- 保持密切的沟通,比如每天开站立晨会,办公空间集中,不设隔离,同事之间方便就工作问题随时讨论
- 让不同的人切换搭配组合:比如两个前端和3个后端,不要总是固定搭配,让他们充分交叉组合,这样有利于实践和改善技术规范,比如接口风格,责任分配原则等等。
肯定有人会觉得考虑这么多,项目不受影响么?公司怎么可能接受为了什么团队成长,牺牲进度?
然而单纯的“高效做事”实际上是短视的。认真想想就会发现:很少有公司产品,只有几个月的生命周期;当我们把眼光拉长到1年甚至数年时间,“培养团队”的重要性就越发显著。
当然,产品生命虽然长,每次更新迭代都是短周期的,市场机会稍纵即逝,为了长期发展,过分牺牲短期目标显然也不可取的,这就是我们为什么要权衡:如何在保证按计划迭代的基础上,尽量兼顾长期目标,减少技术负债,保持团队成长。
一位技术管理者最重要的能力,就是在各种冲突的决策原则之间的有效平衡。
说得容易做来难,想做好两个目标的平衡,很重要的前提,还是技术团队与业务团队的互信,不然很容易出现,任务从业务团队直接“命令”过来的局面:每个时间点看起来都是mission impossible,这时候谁还管什么长期短期,能加班加点完成就不错了。最终结果研发部门变成“救火队”,大家疲于奔命,队伍逐渐涣散。
如果有互信关系,技术团队就可以和业务团队探讨真正的业务需求点在哪里,关键时间节点是什么,在关键时间点之前实现最核心的需求,同时兼顾整个团队的健康发展。同时技术管理者也不怕暴露团队的弱点,可以直言什么功能的实现会遇到困难,哪些新特性需要较长的时间,以及什么样的改动,可能引起系统不稳定;公司管理层只有在充分掌握这些信息的前提下,才能做出合理的决策,这样的决策再传导到执行层,才有可能落实为兼顾高效与成长的分解任务。
可能还有人会有疑问:就算事事有人做了,难免有时候人就闲了,怎么办?难道看着他闲着不干活?
其实管理者切忌见不得人闲着:要是再顺手给他派个活,甚至是和他工作职责无关的活儿,只会促成一个结果:人人都装作自己很忙的样子。
管理是个策略游戏,不能总想着微操。
比较好的解法,是给每个人提供长期的、有挑战性的任务,甚至是学习任务,它们不一定直接带来公司的利益,却一定有利于个人成长,所以团队成员有主动做的意愿;又因为是特意安排的,长期来讲,这个任务也一定会促进公司产品的发展。很多新技术的预研,复杂模块的封装,新版本升级,或者架构上的调整,都可以归类为这种任务。当这类任务待在每个人的to do list里,就不怕人闲着,甚至有点待期待闲暇的日子了。它的作用类似于google的beach time,只是没那么高自由度。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。