「人与人之间的如何高效协同?」这是一个伴随人类诞生以来,从未停止过追求更高目标的课题。从原始社会的集体狩猎、语言的创造和改进、农耕文化的协作耕种、工业革命后的协作生产再到现代文明中公司的团队协同,从始至终,「协同」在创造和生产中起到至关重要的作用。
在软件研发中也不例外,其生产过程中最核心的角色是「产研团队成员」。「成员之间的透明高效协同研发」也是当前 DevOps 理念中非常重要的一个部分,为此,海内外也有很多优秀的公司一直在深耕这块领域,一直通过产品沉淀理念,帮助研发团队不断迈向协同高效的新高度。(今天我们不讨论具体的产品,有兴趣同学可以联系我们细聊)
回归到今天的话题,我们先共同分析下:
只有通过分析了解和深入认识什么是协同,才能进一步讨论分享协同的实践。基于自身的一些实践总结分析,在这里罗列出了几点高效协同团队的共性:
以上罗列出的内容不一定全面,只是想通过自己的思考,针对「研发协同」这一话题进行一次 Erda 团队的实践分享,希望能给大家带来一点帮助或启发,也非常希望有同学能够深度参与进来一起讨论,共同促进团队的高效协同。
良好的协作氛围是团队迈向成功的基石,良好的「团队文化」能促成团队成员之间相互信任,并能坦诚、开放、平等地沟通等。关于什么是团队文化,这里引用了百度百科的解释,主要关键词就是培训、统一、规范、凝聚。
团队文化是社会文化与团队长期形成的传统文化观念的产物,包含价值观、最高目标、行为准则、管理制度、道德风尚等内容。它以全体员工为工作对象,通过宣传、教育、培训和文化娱乐、交心联谊等方式,以最大限度地统一员工意志,规范员工行为,凝聚员工力量,为团队总目标服务。” https://baike.baidu.com/item/%E5%9B%A2%E9%98%9F%E6%96%87%E5%8C%96/6348971?fr=aladdin
加入到 Erda 项目的同学,进入项目后第一眼就会看到团队崇尚的协作文化,核心是透明和异步协同。
我曾经一度认为,人与人之间面对面同步沟通和协作是最高效的,但是随着与开源社区接触和对异步协同的理解不断加深,这个曾经正确的想法也在不断被挑战。接下来,我们来看一个最典型的会议场景:
有关开会的段子更是层出不穷,“开会的人基本不干事,干事的人基本不开会”、“人多的会议不重要,重要的会议人不多”……相信每个职场人看到都能会心一笑,一群“状况外”的员工凑在一起,期望通过一到两小时了解事情的来龙去脉,附带提出深刻的建设性意见,这可能吗?
有些公司或者团队为了提高会议质量,制定了一系列规范措施,比如:
这些措施执行到最后,往往都会变得形同虚设,有的执行好,那还得专门配备监督人员,成本增加的同时,收益微乎其微。
Erda 项目崇尚的异步协同的方式,核心主要围绕以下几点:
「高质量的发言」还可以理解为让别人能看明白、听明白,为此,事前要有充分的图文信息做支撑,让人清晰的知道你要干什么、要达到什么目的、要什么样的协助等;
异步协同不追求成员做到时刻在实时通讯 APP 保持“待机”状态,但是要求至少每天来协同平台看一次,哪些需要自己处理和回复。同时,在内容发出之前,需要对内容质量负责,确认自己写的内容能够让别人明白。
科学上认为「21 天能养成一个习惯」,但如果每来一个新人就是一个新的循环,这对于一个团队来说成本有点高,与高效协同的愿景相悖。
这样的话,能不能把这些协同的规范和理念沉淀到协同产品的「功能特性」上,培养用户使用产品功能时的「用户心智」,不知不觉中按照团队的文化规范进行下一步行为?
Erda 始终致力于将这样的特性与自身产品相结合,把所有的内容都提炼为 flow,然后通过实践沉淀 flow 配置,以配置内容的方式去分享自己的最佳实践。比如,研发协同事项上针对需求、任务、缺陷都有相应的状态流转流程,对应的状态需要相应的角色进行处理,每个角色处理好对应的内容后才能流转到下个状态,同时,流转状态会触发相应的动作……这些都是通过一条 flow 或者 多条 flow 配置来完成。这个和研发的分支管理策略配置沉淀是一样的,详细可以查看上一篇《8 年产品经验,我总结了这些持续高效研发实践经验 · 研发篇》文章。
在团队的「协同」文化下,产品规划也变得井然有序,Erda 产研团队推行和建议采用以下策略:
在团队文化和研发迭代规划方针下,接下来就要真正进入产品/项目的迭代研发阶段了,在这个阶段中整个团队围绕的目标是明确的,在这个目标之下 PD/PM 会规划制定产品/项目的 RoadMap,把相关的目标拆分成若干迭代的需求来完成,当然目标拆分落地始终需要遵循 MVP 理论(Minimum Viable Product –最简化可实行产品)。
任何规划和计划都一定的策略,在 RoadMap 规划这个事上,Erda 产品主要由以下的策略来支撑有效落地:
RoadMap 规划完成后,接下来的过程可能大家就非常熟悉了——迭代研发的阶段。围绕目标,研发团队在敏捷迭代评审会议上明确迭代的需求范围,然后紧接着就是需求、任务拆分、研发、测试、缺陷解决、发布上线等内容,本次主要还是围绕协同相关的需求、任务和缺陷进行讨论分享,研发过程相关内容可以查看上一篇《8 年产品经验,我总结了这些持续高效研发实践经验 · 研发篇》文章。
迭代开始后,所有的研发成员都是应该围绕「需求」进行落地,产品经理确保需求的 PRD(Product Requirement Document)是清晰的,能够让所有成员明白这个是要做什么?谁用?解决什么问题?(BRD - 商业需求文档和 MRD -市场需求文档这边就不展开讨论了)
为此 Erda 产品对需求的管理主要采用以下策略进行:
迭代开始后,基于需求,「能够合理有效拆分任务和合理成员安排」是整个迭代中非常关键的一个内容,由于缺陷整理和任务管理类似,所以就合并在一起来讲了,具体的 Erda 团队实践的内容如下:
迭代过程中关键进度和风险同步中,「看板」和「晨会」绝对是比较重要的两把利器,对于看板相信大家都比较熟悉,在此就不赘述,对于 Erda 晨会还是想罗列几点供大家参考讨论:
正如开始所说,高效协同是一个永恒的话题,大家对于高效协同的目标也一定会伴随科技和文明的发展而有更高的追求,效率问题也一定会有一些创新的思维和方法来解决,比如 github 把五湖四海的研发兄弟姐妹汇聚在一个开源项目上进行协作开发,slack 让大家的异步沟通协作变得更轻松,等等。这些产品和大家正在创造新协作产品,肯定会让软件研发行业的远程异地协作模式变得越来普及和简单!最后欢迎对此有兴趣的小伙伴和我们一起来探讨~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。