团队研发的沟通障碍
当研发团队人员发展到十几人或几十人时,尤其涉及多个团队、多个职能部门沟通协作时,内部研发的沟通障碍就是一道坎,几乎每家公司都会遇到。有些团队,在有经验的人带领下,通过梳理开发流程、明确部门职责、使用合适的工具,很快就会迈过去,部门与部门之间、人员与人员之间的协作也就越发顺畅、清晰和高效。
而有些团队,因为缺少经验,一边摸索着如何开发新产品、做新项目;一边摸索如何管理团队和如何提升内部沟通和协作效率。相当于“腹背受敌”,团队和负责人同时面临项目交付和内部沟通混乱的双重压力。
磨刀不误砍柴工。要想切实提升团队的研发效率和交付质量,还得先夯实自身内部团队人员的基本软硬实力。
这一次,重点分享解决团队研发沟通障碍的解决之道和执行效果。
解决之道和落脚点
要想提升内部研发沟通的效率和闭环,要秉持着:“公开透明、真实有效、及时反馈”的原则。
公开透明: 是为了减少内部沟通的信息差,让上级、下级、同级,多个层级的人员一起接收项目信息,不需要多次重复沟通;
真实有效: 传递的信息和消息是真实有效的,而不是虚报的,最好是能和研发过程中每一次代码提交、构建、发布这些交付环节和具体动作进行关联;
及时反馈: 信息的有效性是不容忽视的重要特性,在信息黄金期间,需要让消息及时传递给有需要的人。一个人也不少,最好是能自动进行主动的反馈,不用一直问问问。
综合下来,能达到提升内部沟通效率,符合上面沟通原则和最小改造接入成本,并且最容易被接受的方式,就是把你的项目管理系统和日常使用的沟通群,进行集成打通,让信息互通有无、实时同步和自动反馈。这是目前看来最为合适的落脚点。
什么是ChatOps?
ChatOps 是指由对话驱动的开发。 将工具植入到对话当中,使用被关键插件和脚本改良过的聊天机器人(例YesDev钉钉群机器人),团队能够自动执行任务和协作,效果更好、成本更低、速度更快。
在YesDev使用ChatOps,让项目管理实时打通钉钉/企业微信/飞书等工作沟通群
先来看下,YesDev实时同步项目动态、需求变更和任务指派通知的消息效果。
以钉钉为例,简单概述,你可以在你的钉钉工作群,实时接收需求指派、需求变更、需求流转、Git代码开发提交推送、需求完成等一系列的通知推送。除了有操作人员、被通知的人员,还有每一次变更的说明。除了可以有文字介绍还有图片(需求描述中的第一张需求图)和需求详情链接可以直接点击查看。钉钉群还有一个很好的地方,就是可以支持在群里@成员。这样可以知道谁已读和未读指派的消息。
继续以钉钉为例,配置群机器人很简单,整个过程都不需要5分钟,任何人都可以进行配置。企业微信和飞书类似。
第一步,在你需要接收项目通知和进行协作的钉钉群,创建一个机器人。
选择自定义。
机器人头像用YesDev的Logo图片,机器人名称用:YesDev,勾选:加签,勾选:我已阅读并同意,最后完成。
第二步,进入YesDev - 群组 - 工作组 - ChatOps群机器人 - 钉钉群。把刚刚创建成功的群机器人Webhook地址、和加签的密钥,填入到YesDev的弹窗配置。
确定保存,成功配置后,在钉钉群会收到一条测试消息。最后,就可以开始在群里进行项目管理和协作了。类似:
自定义群机器人
如果需要通过自定义群机器人,同步接收有必要的消息通知推送。可以在工作组继续配置自定义群机器人的回调地址。YesDev将会以POST请求的方式,将以下格式的JSON报文推送到你的回调地址。
可以让你进行内部系统的信息互通,不需要人工在内部多个系统来回进行操作,减少内耗、非常高效。
请求方式
POST
请求头
Content-Type: application/json;
请求的参数格式
| 参数名 | 类型 | 说明 | 备注 |
|---|---|---|---|
| message | 结构体 | 本次推送消息结构体 | |
| meta_data | 结构体 | 消息更多元数据 | 没有时为null |
message结构体格式:
| 参数名 | 类型 | 说明 | 备注 |
|---|---|---|---|
| title | 字符串 | 消息标题 | 示例:项目xxx - 已完成 |
| content | 字符串 | 消息内容,markdown格式 | |
| content_html | 字符串 | 消息内容,HTML格式 | 可直接使用,根据content解析转换所得 |
| at | 结构体 | atMobiles表示@的手机号,没有时为null;isAtAll表示是否@全部人,布尔值 |
meta_data结构体格式,可用于同步获取更多和项目相关的原始元数据(没有时为null,例如测试回调地址时):
| 参数名 | 类型 | 说明 | 备注 |
|---|---|---|---|
| msg_type | 整数 | 消息推送类型 | 推送类型列表待补充 |
| msg | 字符串 | 推送的消息内容 | |
| module_type | 整数 | 模块类型 | 1项目、2任务、3需求、4问题、100周报、101PRD、200文档、300测试用例、310测试计划、400工作组 |
| module_type_id | 整数 | 对应模块的ID | 例如:项目ID、需求ID、问题ID等 |
| push_staff_id | 整数 | YesDev员工ID | |
| push_staff_name | 字符串 | 员工姓名 | 如:张三 |
| extraEmailSendextraMessageInfo | 字符串 | 手动填写的备注内容 | |
| app_key | 字符串 | YesDev企业key |
请求参数示例
推送的数据示例:
{
"message":{
"title":"项目#25 project - 已完成",
"content":"#### 项目#25 project - 已完成
单元测试的文本
手动填写的备注内容……
[查看详情](http://www.yesdev.cn/m/pages/project/detail?id=25)",
"content_html":"<h4>项目#25 project - 已完成</h4>
<p>单元测试的文本</p>
<p>手动填写的备注内容……</p>
<p><a href="http://www.yesdev.cn/m/pages/project/detail?id=25">查看详情</a></p>",
"at":{
"atMobiles":null,
"isAtAll":false
}
},
"meta_data":{
"msg_type":2,
"msg":"单元测试的文本",
"push_staff_id":1,
"module_type":1,
"module_type_id":25,
"app_key":"gc",
"extraEmailSendextraMessageInfo":"手动填写的备注内容……",
"push_staff_name":"示例"
}
}
响应要求
对响应返回的结果和HTTP状态码无要求,但需要在5秒内响应,超时失败不重试。
关于YesDev
YesDev是一站式企业研发管理、目标管理与协同办公平台,支持敏捷开发、DevOps、Scrum、硬件项目等多种迭代方式,能为企业管理者智能生成项目投入产出的数据模型,真正实现项目研发全流程数字化管理。
YesDev 标准化研发流程
关于专栏作者
黄禅宗 dogstar,果创科技创始人,YesApi果创云亿级流量PaaS平台创始人、YesDev研发协同SaaS创始人; 前唯品会高级开发工程师,千万级架构经验; 前MobVista高级工程师、前租租车技术经理; 10年以上互联网经验,对软件领域有独特见解;PhalApi开源框架作者,著有《良质!》等电子书;退役士兵,华南师范大学软件工程专业,喜欢交流分享。