YesDev:如何使用ChatOps,让内部研发的沟通效率翻一倍?

237 阅读6分钟

团队研发的沟通障碍

当研发团队人员发展到十几人或几十人时,尤其涉及多个团队、多个职能部门沟通协作时,内部研发的沟通障碍就是一道坎,几乎每家公司都会遇到。有些团队,在有经验的人带领下,通过梳理开发流程、明确部门职责、使用合适的工具,很快就会迈过去,部门与部门之间、人员与人员之间的协作也就越发顺畅、清晰和高效。

而有些团队,因为缺少经验,一边摸索着如何开发新产品、做新项目;一边摸索如何管理团队和如何提升内部沟通和协作效率。相当于“腹背受敌”,团队和负责人同时面临项目交付和内部沟通混乱的双重压力。

磨刀不误砍柴工。要想切实提升团队的研发效率和交付质量,还得先夯实自身内部团队人员的基本软硬实力。

这一次,重点分享解决团队研发沟通障碍的解决之道和执行效果。

解决之道和落脚点

要想提升内部研发沟通的效率和闭环,要秉持着:“公开透明、真实有效、及时反馈”的原则。

公开透明: 是为了减少内部沟通的信息差,让上级、下级、同级,多个层级的人员一起接收项目信息,不需要多次重复沟通;

真实有效: 传递的信息和消息是真实有效的,而不是虚报的,最好是能和研发过程中每一次代码提交、构建、发布这些交付环节和具体动作进行关联;

及时反馈: 信息的有效性是不容忽视的重要特性,在信息黄金期间,需要让消息及时传递给有需要的人。一个人也不少,最好是能自动进行主动的反馈,不用一直问问问。

综合下来,能达到提升内部沟通效率,符合上面沟通原则和最小改造接入成本,并且最容易被接受的方式,就是把你的项目管理系统和日常使用的沟通群,进行集成打通,让信息互通有无、实时同步和自动反馈。这是目前看来最为合适的落脚点。

什么是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开源框架作者,著有《良质!》等电子书;退役士兵,华南师范大学软件工程专业,喜欢交流分享。