最近小红书、B站崩溃,又延伸到某云服务厂商问题频发,让人忍不住戏谑:“这算不算裁员裁到大动脉?”
在阿道看来,各大企业的裁员动作,绕不开的依旧是“人月神话”:盲目加人带来的是成本的倍增和效率的下降。而大规模裁员也从另一种角度诠释了“人月神话:盲目裁人带来的则是整体业务的崩盘。
管理者更应认识到这种资源悖论,关注如何提效,而非简单的人力堆砌或缩减。
关于团队提效,阿道前段时间抓住春哥(禅道软件创始人王春生)聊了聊他的经验和看法。整理出来禅道团队组织架构、流程规范到研发等各层面的工程实践,希望能带给大家一些启发。
“纪律”共识,是组织执行的血液
很多人对敏捷管理存在一种误解,认为敏捷就是“想干啥就干啥”。春哥提到这其实是团队缺乏基础的“纪律”做保障。
如何理解这里的“纪律”?春哥认为,团队中的“纪律”体现的是团队成员间建立了基本的共识和协作规范,以及约定俗成的工作流程。这是保证团队协作的基础。好比军队训练,通过队形训练、内务训练等这些看似无实战意义的事情,来锻炼团队的意识和纪律性,将这些规范真正融入血液、基因中。
因此,禅道的实践会更关注制定实践规范,如明确的工作流程和任务分配,以及编码上的规范(IDE的规定、代码注释写法、分支管理)等。在明确的“纪律”下,团队成员也可以形成良好的工作习惯,提高工作效率和质量。
1)扁平化组织:做乘法,而不是做减法
帕金森定律是这样形容行政组织的:在行政管理中,行政机构会像金字塔一样不断增多,行政人员会不断膨胀,尽管每个人都很忙,但组织效率却会越来越低下。如果说要问哪种组织架构更适合当下的禅道,春哥会说:扁平化组织。
这种扁平化的管理,不仅仅是在做减法,更是在做效率的乘法。
作为一种去中心化的组织结构,扁平化组织能够减少管理层次、简化决策流程。那些大而繁琐的层层审批没有了,留下来的自然是群策群力和孵化创新的氛围。
春哥也明确了禅道团队扁平化的“纪律”:大方向上。在扁平化组织中,每个声音都值得被听到。
在禅道的具体研发工作中,每个研发小组会在一段时间内相对固定地专注于某个方向。一段时间后,根据某些项目或决策方向的需要,各个研发小组会被打散、重建。这种组织架构与调整,一方面会让团队更好地适应业务需要;另一方面,也会让研发团队的每个人都能熟悉禅道的不同业务。
在这种模式下,研发成员可以灵活地参与到禅道任意功能模块的开发工作中。就像德鲁克所说:“管理者的一项具体任务就是要把今天的资源投入到创造未来中去”。
2)极限编程:打破程序员的“领地意识”
比尔·盖茨曾说过:“团队合作是企业成功的保证,不重视团队合作的企业是无法取得成功的。”我们不难发现,不少程序员对待自己的代码都有一种很微妙的状态:一种“领地意识”,即我负责我的模块,你负责你的模块,井水不犯河水。这种状态在工作中甚至是一种常态。
想让程序员突破这种状态,并不容易。于是我们将极限编程的工程实践运用在了研发工作中,比如采用结对编程、统一编码规范、实现代码集体所有权等等。
在团队初期时,新人较多,会采用“老带新”或“两个新人”结对编程的方式,在编程中互相提醒、协作。结对编程的频率也会增加。
随着频繁的结对编程,成员会从新手转为熟手或高手,彼此间更有默契,此时,大家能够拉齐到同一水平甚至更高的水平中。到了后期,固定的结对编程形式就会减少,并逐渐演变为更多的代码评审和设计评审。
在这一过程中,代码集体所有权也会逐渐深入团队成员的观念中,帮助团队更好地维护项目。
3)人才是公司最大的资产
大荣法则告诉我们:企业未来的生存和发展应着眼对人才的培养。春哥也一直非常重视人才的培养。
在团队中,不同性格成员的协作状态和成果各有千秋。春哥认为,通过规范化的流程,新成员可以迅速融入团队。而另一方面,也要关注团队成员的效能改进。
目前我们禅道自身的实践是:
让团队Leader为每位员工建立基线,重点关注研发过程中的缺陷及其密度。例如,分析一个人完成的故事点数与产生的Bug数,帮助员工了解自己的现状。接着,团队会分析缺陷率较高的原因,如设计不足或缺乏单元测试等,并针对性制定相应的行动路径。通过监控后续指标,评估改进措施的有效性。
“人才是公司最大的资产。”每个人都是天才,但如果要用爬树的能力来评价一条鱼,它也许终生都认为自己很愚蠢。每个团队都要学会制定个性化的改进措施,保障每位员工都能提升效能,促进组织的整体效能提升。
破解流程困局,创新实践
提及管理,绕不开的是流程、人、工具三方面。要想提高效能,需要好的流程、优秀的人才和合适可落地的工具。在春哥看来,“只靠流程规范和严格的纪律,如果没有工具支持,是无法成功的。”
于是,我们将禅道的工程实践融入工具中,通过工具将这些流程、行为固化下来,做到流程工具化,管理一体化。
1) AI辅助代码,从试点到未来常态
如今AI(人工智能)应用范围的不断扩大,在众多领域展现出强大的影响力和创新力。
春哥前段时间参加了微软的一场AI Day活动(详情可看: 微软 AI Day 半日游),活动里提到,目前很多企业正在通过各种AI工具辅助编码,并且代码采纳率能达到20%~30%的实践,这比例也是目前行业普遍的代码采纳率。
我们目前也正在通过代码生成工具进行小规模的编码试点,将开发环境切换至VS Code,然后通过WAM模式辅助生成代码。实践了一段时间后,从效果来看,其可行性也得到了验证。
所以,后续禅道研发团队会统一切换至VS Code环境中,充分利用大模型的能力辅助编码。我们还会将AI工具集成到我们的DevOps流水线中,更多运用AI工具进行辅助。未来,AI辅助编码的工作方式,将会是研发的工作常态。
2)自动化工具赋能研发管理
- 编码规范,是团队技术精进的基石
无规矩,不成方圆。在编码上,禅道也有一套自己的规范。比如,我们会希望研发团队能进行渐进式的代码改动,能尽量小批量、频繁地commit代码,并且每次commit代码的行数不能超过20行。
不过在实际过程中,我们发现尽管在流程上做了很多规范,但依靠大家自发地执行,是难以监督的。春哥也提到:“指望整个团队自发地达成一个状态,几乎是不可能的事情。”
于是我们通过工具,将编码规范进行了固化落地。比如,我们在自研的DevOps平台中增加了“门禁”。当研发人员在本地commit时,会触发hook,对当前代码做diff。如果当前代码行数不能满足少于20行的要求,就不能成功提交代码。
分享我们研发团队在代码规范上的一些具体实践,希望能给大家一些启发。下图是我们的远程分支规范示例:
如图,大家可以很清楚直观地看到我们的规范,若是中长期的功能特性,我们会用Feature来作名称规范 ,补丁会用Patch ,并且必须带上 Bug ID 和Ticket ID,Bug修复用Minor等等。将流程实践固化,并用DevOps工具将流程工具化,这样既能便于领导层了解和跟进团队研发现状,也有助于新人快速上手,融入团队。
除了利用DevOps工具,固化研发流程,还可以通过自动化测试工具(比如禅道自研的ZTF自动化测试工具、ZenData数据生成器),在提高执行效率和覆盖范围的同时,尽可能保证研发的交付质量。
- 沟通,是管理的浓缩
被日本誉为“经营之神”的松下幸之助,曾言:“企业管理过去是沟通,现在是沟通,未来还是沟通。”如果没有人,那么前面的一切就没有意义。
为了团队更好地沟通,我们将工程实践与自研的聊天软件(禅道客户端)融合。比如,团队可通过聊天软件直接推送代码,使得团队可以随时进行代码评审,减少沟通成本,方便团队尽可能快地、能随时随地做持续集成。
上述这些举措,很多大厂都能做到,但显然,成本也会很高。对千千万万个像我们这样的中小企业来说,很难承担这种高额的实现成本。于是,我们团队在将这一整套研发流程跑通的同时,也将经禅道团队实践总结出来的、可落地的解决方案提供给大家。
换句话来说,实践出真知,只有经自身验证成功的实践,才能给用户带来切实可行的效益。
对企业管理来说,从来不是需要锦上添花,只有逆境突围,才更值得庆祝。