在产品触达用户之时,DevRel 团队都要做什么

797c396d4608cc56c4f96bbcca699422

经尾尾邀请,在“聊聊 DevRel && 技术运营”群做了一次关于 DevRel (开发者关系)的分享,以下是分享内容,希望对你有帮助。

w1eo0
ua922
wqt85
vghz5
4busk
mt63u
4qv7s
r9kr5
l33ws
saqam
0zagp
r3uw8
2a1m0
2nf9c

Slides 地址:https://docs.google.com/presentation/d/1n6XBLfmpSCDg3196LIn_8FGKIqkCIp-qN9sMQ-uxzVk/edit?usp=sharing

《布道之道》链接:https://www.ituring.com.cn/book/736

直播回放:https://bytedance.feishu.cn/minutes/obcnxp28x2898p51qk37zrzy

如何将一个commit 变成一系列宣传资源

灵光一闪

作为技术人,对于做 Branding 的事情其实不那么上心,也因为不上心,导致在实际做事情的时候,难免做的不好。

我因为从事过运营,所以有一些经验,这里,分享一下我自己的思路。

以这个 Commit 为例:

这个 Commit 制作了一件事,就是在 GitHub 项目的目录下创建了一个 funding.yml ,从而实现开启 GitHub 的 Sponsor 功能。

第一层思考

那如果我们要将其转换为宣传资源,我们可以这样思考:

  1. 内容形态:这个内容我能不能做成文字类型的,或者是能不能做成视频类型的?

如果可以做成文字类型的,那么可以针对这个 commit 写一篇文章,比如就叫做

如何开启 GitHub 的 Sponsors 功能

如果可以做成视频内容,就可以做成

手把手教你开通 GitHub 的 Sponsors 功能

第二层思考

在第一层思考,我们可以很容易获得一篇文章和一个视频,但我们如果不满足以此,希望获得更多的推广内容,我们要怎么做?

我们可以延展思考一下,GitHub 的 Sponsor 功能是基于特定目录下的 yaml 文件来配置的,那我能不能有一篇文章延展介绍一下这个特定目录下的其他功能?

比如:

  • issue template
  • GitHub Action
  • Pull Request template

这样,我们就从之前的文章中,延展出来了第二层思考,这个时候,我们有了第二个主题,同样,可以延展出一篇文章和一个视频。

第三层思考

在第二层思考中,我延展出来了三个不同的服务,那在这种情况下,我可以再写三篇文章,分别介绍这三种不同的服务

这样,我就喜提三篇文章:

  • 如何使用 GitHub 的 issue template 来规范用户的提交?
  • 如何使用 GitHub 的 Action 来完成应用的自动化
  • 如何使用 GitHub 的 PR template 来规范用户的 PR

以及他们对应的视频。

总结

实际上,只要你愿意去思考「为什么」和「能不能」,很难在计算机领域写干,因为这个领域足够大,足够一个人写一辈子的原创了。你需要做的仅仅是,从你最熟悉的领域,选择一个话题,然后开始写作,不断的延展话题。

此外,如果你想写但又不擅长写作,我之前在 GitChat 和图灵的英子老师一起搞过一个写作课,你可以看看这个网站,我将我们当时的课程内容整理并发布在了互联网上。

关于运营,我在腾讯学到的最有价值的三件事

06522e7ca193c1bc41e40d25887a4b39

2019 年从上一家公司离职后,我在休息了一个月后,以开发者运营的身份加入腾讯,后多方原因,我在 2020年,入职一年之际,离开了腾讯。

虽然离开了腾讯,我依然很感激腾讯的小伙伴,以及我的 Leader —— 小昱。大家的宽容,让我可以在这一年里,磕磕绊绊的,学到了一些东西,掌握了过去自己所不能掌握的知识。

也正是如此,我希望延续我作为工程师的习惯,将我自己所学的知识分享给各位,希望这些信息可以帮助到大家。这些知识对于已经从事运营多年的同学来说可能没有价值,但对于当时刚刚开始做运营的我来说,确实帮了大忙。

以下三条,是我在腾讯做运营,学到的最有价值的东西。

1. 运营就是对于资源的调度和利用 —— 小昱

这句话源自我问小昱:「运营的核心到底是什么?」。彼时的我,还陷在运营就是打杂的境地之下,每天总是在怀疑自己所做的事情到底有什么意义?我所做的事情,到底有什么价值。于是我找到了小昱,问出了上面的问题。

她给出了上面的答案。

对于我而言,这句话让我豁然开朗。运营需要将自己所做的事情当成资源看,不仅如此,你所做的任何的事情和所接触到的人,你所拥有的物料、人脉,都会成为你的资源,当你从这个视角来看待你所做的事情的时候,就会跳出细节,进入到一个更加宏观的层面来看待这个问题。你会被这句话强行拉到一个更高层次来看待运营和你所做的事情。从而也会更加理解你自己在整个团队中的价值,和你能够提供的价值。

2. 运营的价值,是拉近产品和用户之间的距离 —— 读书

这句话同样出现在我迷茫的时候,当我迷茫的时候,我开始疯狂的去读各种各样和运营相关的书籍,希望从中找到我想要的答案,而这句话,便是我找到的答案。

我们提起产品,往往会想到「产品经理」、「产品研发」,运营的身影仿佛很少出现,那运营的价值是什么?

运营的价值便是用各种各样的运营手段,去拉近产品和用户/客户之间的距离,你所做的一切,只要可以帮助拉近用户和产品之间的距离,那便是有价值的,反之亦然。

因此,你在做事情的时候,可以思考一下 —— 我做的这件事,能否拉近产品和用户之间的距离,如何可以,背后的逻辑是什么?

3. 漏斗模型 —— 小昱

漏斗模型是我在看小昱的述职报告时学到的。

7b2a2

漏斗模型的形态很简单,便是一个分层的漏斗,根据每一层的名字不同,会区分 AARRR 漏斗模型、AISAS 漏斗模型、AIDMA 漏斗模型等等。但核心还是这个漏斗模型。

对于漏斗模型而言,你需要关注到漏斗是分层的,因此,每一层的流量都会依次减少。而能够影响流入到下一层的流量的因素有两个:流量总量 和 转换率。

流入下一层的流量 = 这一层的流量总量 x 这一层的转换率

当你在做任何工作的时候,都可以去思考,我做什么样的事情,才可以提升我这一层的流量总量,以及提升这一层的转换率。

而这个简单的逻辑,无论是你做拉新、留存、促活还是营收,都有意义。

总结

我的上面三点认知,对于一个多年的运营可能是没有价值和意义的,但我希望上面的这段话,可以帮助到那些刚刚开始从事运营工作的人。当然,这篇文章,也会放在我正在准备的电子书《GrowthForDev》当中,希望这段话,可以帮助到那些有心给自己项目做运营的开发者们。

视频课程制作手册

导语

因为我有“好为人师”的坏毛病,所以我经常制作一些视频,去指导别人,要如何做一个东西,在这种场景下,我会考虑制作一些视频。

这篇文章是介绍我的视频制作的课程,介绍一下我是如何制作视频的,并将这个流程分享出来,让大家了解,并给出一些建议。

流程说明

  1. 确定题目:制作视频之前,需要有一个主题,我不会平白无故就要制作一个视频,必然会有一个主题。有些时候,这个主题会是别人给我的,也有的时候,是我自己想起来的。这个环节耗费的时间往往是最少的,灵感来了,就会加入到主题里,并开始进行下一个流程。
  2. 背景调研:为了做好一个视频,显然不能简单的基于我自己的认知来制作,我需要借助一些别人的经验,这个时候,我就会进行广泛的调研,获取不同渠道的信息,以补全我对这个问题的认识(虽然并不能确保我的认知就一定正确,但往往会有更多新的视角出来)。这个环节往往是比较耗时的,因为需要做好相应的数据调研,准备好课程所需的资料。
  3. 准备 PPT & 讲稿:在准备好了所有的内容基础以后,就开始制作视频课程所需的 PPT,这个往往是比较快就可以完成的(当数据都已经准备好了)
  4. 视频录制:视频录制是整个环境最为简单的环节。特别是当你熟悉以后,往往是一遍就可以过,所需要的只不过是一个还算不错的麦克风(我一般是头戴式的,目前用的是 Jabra Envolve 20),头戴式的麦克风可以确保你的嘴唇离屏幕的距离始终是一致的,声音的一致性会更好。在视频录制的环节,我使用的是 Screen Flow ,这个软件可以很方便的完成视频录制 & 剪辑。Windows 你可以选择 Camtasia Studio
  5. 视频剪辑:视频在录制完成后,需要进行一些简单的剪辑,删除整个录制过程中出现的一些小的错误。比如口误(如果口误,你可以直接说下去,这样后续可以剪辑掉口误的部分,用正确的部分替换,有效的提升你的剪辑效率)、噪音(尽可能选择底噪低的环境,比如小的房间、会议室等)。
  6. 视频渲染:视频的渲染需要花费很长的时间,所以我一般是选择将所有的视频剪辑完成后,放在一起渲染,然后选择晚上睡觉的时候渲染,这样早上起来就已经渲染好了。
  7. 视频发布:视频录制完成以后,就是发布的过程,这步很简单,对外发布就好。

Reference

项目中的视野

a woman looking out a window at a city

因为目前在做运营,所以经常要做一些活动。

在做活动的时候,会涉及到不同的角色,就工作人员而言,会分为 Owner 和 Staff 两种。

Owner 是活动的主要负责人,无论是最终的活动效果、活动转化率等等,都是由 Owner 背负。

v72cb

而 Staff 则更多是项目中的合作者,他们可能是单项特别强,或者是掌握了相应的资源,或者是因为没有什么事情,被拉来帮忙的。

不过,无论 Staff 因为什么原因加入到 项目,可以肯定的是,Owner 相比于 Staff 能够了解更多的信息,在这种情况下,Owner 可以给 Staff 提出建议,当然,Owner 也可以不给 Staff 建议。

在之前的活动中,我曾经吃过亏,因为Owner 没有给 Staff 建议,结果 Staff 在对接资源时,对接了大量的非目标群体的渠道,致使钱花了,效果达不到。

此外,这里强调,是建议而不是要求。对于外包,可以给出要求,但对于项目的合作者,还是要给出建议,给 Staff 一些拓展的可能和空间,从而让活动有更多的可能。

SOP – 标准作业程序

标准作业程序(英语:Standard Operating Procedures,常缩写并简称为SOP)是指在有限时间与资源内,为了执行复杂的事务而设计的内部程序。从管理学的角度来看,标准作业程序能够缩短新进人员面对不熟练且复杂的学习时间,只要按照步骤指示就能避免失误与疏忽。

https://zh.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E4%BD%9C%E6%A5%AD%E7%A8%8B%E5%BA%8F

标准作业程序的成立理由,通常有下列几点:

标准作业程序可以节省时间,进而达到高效率。

标准作业程序可以节省资源的浪费,从而达到环保效应。

标准作业程序可以获致稳定性,稳定可以使组织继续存在,也是主要动力。

https://zh.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E4%BD%9C%E6%A5%AD%E7%A8%8B%E5%BA%8F

标准作业程序也可能产生若干问题,反而阻碍目标的实现:

标准作业程序常会抗拒变迁,无法因应特殊环境需要而适时调整。

标准作业程序的执行可能会延误时机,无法满足多数人的需求。

标准作业程序往往造成“新政策”与“旧实务”之间的矛盾,较难推动改革。

https://zh.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E4%BD%9C%E6%A5%AD%E7%A8%8B%E5%BA%8F

运营工作难做就难做在没有 SOP

为你的兔小巢加上实时消息推送

如果你也和我一样,使用[兔小巢][1]来作为你的产品用户社区,那么你一定会遇到一个问题:反馈不及时,由于兔小巢本身没有和用户的强关联,只有当用户主动填写了个人信息,或关注了兔小巢的服务通知,你才能对用户进行消息的触达。因此,你的回复的时效就十分重要了,快速的回复可以让你的用户在还没有失去和你的联系时获得反馈,完成一次有效的用户交流。因此,实时的信息反馈就十分重要了。

但是,兔小巢本身并不具备实时推送问答的能力,因此,我们需要借助一些第三方工具来完成自己的目的,在这篇文章中,我将向你介绍,如何使用腾讯云云函数将兔小巢的消息转发到企业微信当中。当然,如果你使用的聊天工具不是企业微信,而是诸如飞书、Slack、Bearychat,你也可以参考这里的说明,完成自己的相应的需求的实现。

需求

  1. 腾讯云账号
  2. 兔小巢

流程说明

yk5da

这里使用兔小巢的提供的 WebHook ,来接管所有的用户请求,并辅以腾讯云的 API 网关和云函数的能力,将实时推送的消息转发至企业微信

这里我实现了企业微信,但对于你来说,还可以用来实现其他同类似渠道的能力。

优势

  • 轻量:如果你的需求仅仅是实时转发,那你不再需要重新启动一个项目,配置各种环境,通过云函数就可以完成这些工作。
  • 无需代码基础:如果你是一个运营,而不是一个开发,那么我这段代码你复制即可,简单修改其中的一些基本信息,就可以完成实时推送的功能,对于没有代码基础的同学来说,是十分方便的。

操作步骤

由于这篇文章是兔小巢的高级用法,因此,对于如何创建一个兔小巢产品,就不再赘述,此外,以下步骤均在电脑端操作,因此,请使用电脑来执行下述流程。

找到你的兔小巢产品 ID

首先,你需要打开兔小巢的管理后台,打开产品设置 ,在其中找到 产品 ID,复制这里的产品 ID,后续我们会用到。

产品 ID

创建一个企业微信机器人

由于我们本次要实现的是兔小巢消息推送到企业微信,因此,我们需要创建一个企业微信机器人。

在你需要推送消息的群上,右击,选择其中的添加群机器人

并在弹出的窗口中选择从新创建一个机器人

k2ccc

在新弹出的窗口中输入机器人的基本信息,并点击添加

eyo6f

添加完成后你会获得一个 WebHook 地址,复制这个地址,后续会用到

d270k

创建一个腾讯云云函数

访问腾讯云云函数控制台,点击界面中的新建,新建一个云函数。

4hv9a

这里函数的地域可以根据你的需要选择,几乎没有影响,我选择的是广州地域。

随后,在新建函数的时候,输入函数名称、运行环境(运行环境选择 Node.js 8.9),以及创建方式,选择空白函数。

6klat

填写完成后,点击下一步,在新的页面,设置函数的描述,这里需要注意,执行方法不要做任何修改,使用默认的,除非你知道你在干什么。

ylpng

然后,复制这段代码,粘贴在下方的代码框中,操作步骤参考动图

lnnis
'use strict';
const request = require("request")
const productId = ""
const botUrl = ""
function requestPromise(r,t){return new Promise(function(e,n){request({uri:r,method:"POST",body:JSON.stringify(t)},function(r,t,i){if(r)return n(r);try{e(i)}catch(r){n(r)}})})}
exports.main_handler = async (event, context, callback) => {
    const txcData = JSON.parse(event.body);
    if (txcData.type == "post.created") {
        await requestPromise(botUrl, {
            "msgtype": "markdown",
            "markdown": {
                "content": `**新增用户反馈**\n\n${txcData.payload.post.content}\n\n[点击查看详情](https://support.qq.com/products/${productId}/post/${txcData.payload.post.id})`
            }
        })
    }
    return "ok"
};
Code language: JavaScript (javascript)

然后,将第三行的 productId 中加入你的兔小巢产品 ID,将第四行的 botUrl 中加入你的微信机器人地址。
比如,我的修改完是这样的

'use strict';
const request = require("request")
const productId = "149567"
const botUrl = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=d8c1e6b1-ccbf-467e-8dcc-31c1961baf41"
Code language: JavaScript (javascript)

这里需要注意,不要删除放好的引号,把 ID 和 WebHook URL 放在引号内部就好,以免你的输入法输入了中文引号导致出错。

修改完成后,保存文件(按下 Ctrl + S 或 Command + S),点击下方的 完成,进入到函数的详情页。

32s1w

配置函数请求地址

接下来,我们为函数生成一个请求地址,用作后续兔小巢的消息提醒。

在函数的详情页,点击左侧的触发管理,选择创建触发器,创建一个 API 网关触发器

触发器的具体配置可以参考下方的图片。

8betg

创建成功后,你会获得一个访问路径,这个路径就是你的函数请求地址了。复制这个地址,下一步我们就会用到。

qqaef

兔小巢后台设置 Webhook

回到兔小巢的后台,找到左侧菜单栏中的 开发新反馈实时通知

p8yln

将刚刚你生成的函数的访问地址,粘贴在这里,点击保存并发布

oekm7

保存成功后,就可以去你的兔小巢中发反馈,测试一下效果啦

测试效果

当我在兔小巢社区发了一个新的反馈后,我的企业微信群内就出现了一个新的消息提醒,提醒我有了新的反馈,同时,还带上了一个链接。点击这个链接,就可以跳转到我的兔小巢对应的反馈页面,方便快速回复。

h4z1e

总结

通过简单的配置,我们就可以很轻松的实现兔小巢反馈的实时推送,十分的方便。对于广大使用兔小巢的运营同学来说,现在你可以不用每隔几分钟就去刷新一下社区了,耐心的等待机器人的推送就好了~工作效率大大的得到的了提升。

内容在产品运营中的价值

内容在产品运营中是一个重要,而又不太被重视的部分。

重要是,这玩意就像基建,很难看 ROI,但对于产品的长期发展来说,是有不少好处的。不太被重视是,产品运营的工作本身很难去做内容产出,因为产品运营在团队中更多是 Connector 的属性,需要连接不少人。

挺难的。不过,也更加让我自己明白其中的价值。