远程办公正当时,不同于传统面对面的办公与沟通形式,在远程办公过程中,如何能保持高效的工作状态,成了不少企业与组织的挑战。作为一群开发者们,看飞书的用户@Authing,他们是怎么做的。

本文内容来自于飞书的用户@Authing

Authing 是中国领先的 IDaaS 服务提供商,对标美国独角兽 Auth0。创始团队来自字节跳动、百度、IBM、阿里云、滴滴出行等互联网企业。Authing 提供开发者友好、易拓展的身份认证和授权平台,赋能企业在云端管理身份。支持云交付和私有化部署方式,帮助企业和开发者千倍级提升生产效率。

开发者群体是个与其他工种不同的群体,他们热爱创造,工作是为了满足自己的创造欲,是完全自驱的;而优秀的开发者,完全不受地理位置限制。

这就是我们要建设分布式研发团队的原因 —— 一个多样化的团队是更好的团队

我们成功建设了一个分布在中国五个省市的高效研发团队,我们构建的产品,服务全球七个国家和地区的用户。当来自各个地区,拥有不同背景的人联合起来后,极大的拓展了我们的力量。本篇文章将总结我们在建设一个分布式研发团队时所面临的问题和解决方案。

分布式研发团队相比坐在一个办公室里的团队,存在着更多问题,比如工作时间不重叠、信息不透明、团队融合和激励,但实践来看,最需要解决的是以下三个问题:

  1. 协作问题
  2. 项目管理问题
  3. 价值观和文化的传递问题

协作问题

当你和同事坐在同一间办公室时,吼一嗓子就能得到回应。但在一个分布式团队中,经常会出现消息未读、电话没人接的情况,分布式协作是一个自由的环境,这种情况是允许出现的。当然,这种事情并不说明项目会得到延期,因为某个模块的开发者会在其他时间完成该做的事情。但这样的情况往往会使得不到回应的人抓狂,软件系统变复杂后,模块之间往往相互关联,如果没有得到及时回应有可能会导致工程出现问题。

沟通上的另一个问题是团队之间可能没有见过,不过这在开发者群体中不是什么大问题,开发者已经习惯了在 Github 上向陌生人提 Issues 或者帮助陌生人修复 BUG。

从实践中来看,协作主要包含两点:沟通和信息同步。为了保证高效的分布式协作,我们制定了以下基本的协作原则:

  1. 由一个人来起草月计划,其他人一起做修改和补充,周计划围绕月计划进行;
  2. 每周一上午一次视频周会,同步上周的进展和本周的计划;
  3. 每个人以去中心化的方式(非项目组织者统一指挥)制定自己的计划,每个计划必须激进(猛跳能够到的目标)和有明确的 Deadline;
  4. 产品开发允许延期和变动,若有延期或变动,在群内同步原因和后续计划,做到每件事必有 Deadline;
  5. 内部测试不追求完美,若有可预览的进展,及时在群内同步并请大家测试(我们没有专门的 QA,遵循的原则是由非模块开发者来进行测试);
  6. 使用高效的工具做即时推送,对信息进行最大限度的同步;

这需要给每个人一点时间来适应,一旦适应好之后,协作效率会和和同事在一间办公室一样甚至更高。

项目管理问题

分布式协作另一个大的问题是项目管理,我们由开发者自己决定每月每周每天要做什么,并按计划进行,这一点基本上没有什么问题,参与分布式协作的人必须是能够自我管理的人。出问题的环节也不在这里,而是需求质量。

我们出现过至少两次需求不合理导致返工的问题,这对开发者本人和项目本身都是很大的损耗,每当出现这种情况时,团队便会出现抱怨的声音。这类问题往往有如下几种场景:

  • 产品经理在提需求时没有想清楚,开发者 review 时也没有思考完全,做了一半后发现技术上是不符合逻辑的;
  • 开发者在写方案时没有将方案对齐到具体的参数、返回结果和报错信息,同时也没有其他人及时留意到这个问题,导致实际使用时需要进行二次修改;

这个问题的解决方案也很简单粗暴,就是由每一个干系人仔细讨论,因此我们制定了一个流程:

  1. 模块负责人在可以在线编写和协作的文档中起草方案;
  2. 相关干系人在文档中评论,提出问题和疑惑,将解决方案对齐;
  3. 所有疑问和边缘条件都解决后,我们将所有需求细化到任务管理工具上并开始开发;

这个流程虽然看上去多了些扯皮的工作,但是能显著提高需求质量。

项目管理上另外一个很重要的点是使用「高效的生产力工具」。你可能会想「生产力工具」本来就是高效的,前面再加个「高效」,是不是重复了。其实不然,生产力工具很多,选择最好用的工具将事半功倍 —— 工欲善其事,必先利其器

我们核心只使用了两款工具:

  • Jira —— 用来做敏捷开发;
  • 飞书 —— 用来做即时沟通、文档协作和 ChatOps;

除了这两款,还有邮箱用来和海外用户交流、Git 用来管理代码,不过这属于基础工具了。

工具链保持简洁很重要。前段时间,我们在 Tower、Jira倍洽、企业微信、Notion、石墨和 Google Docs 之间到处切换,直到有一天团队再也受不了,我们争执了一番后将即时沟通、文档协作和 ChatOps 换到了飞书上,Jira 不变依然用来做敏捷管理。

飞书的 Notice Bot 很有用,我们的 ChatOps 都是依赖飞书的 Notice Bot,我们在内部打造了一个「推送」的世界。

Git 消息推送

响应时间过长或服务不可用推送

用户反馈推送

SDK 需求推送

这些都属于一个研发团队中比较基础的操作,但当你处于一个分布式协作团队中时,因为看不到彼此在干什么,因此当所有信息即时推送、即时同步时,会让团队每个人都有安全感。我们的研发团队是一个紧密型小组,我们紧密合作,构建并交付解决方案。这种推送让分散的小组对他们正在构建的东西、什么能提高效率有清晰的认识,并具有主人翁精神,这让它非常适合于团队的分布式性质。

价值观和文化的传递问题

最后一个问题是价值观和文化的传递问题,这是最难的问题。无论是沟通问题还是项目管理问题都能用流程和工具来解决,而价值观光和文化只靠这些是不够的。

首先说一下我们团队的组建过程,早期的开发者是大学同学,后来有从用户转化过来的开发者,我们的用户爱我们的产品,从用户变成了这款产品的创造者和维护者。此外,所有不涉及商业核心的代码,我们都是开源的,由此也吸引了一批开发者为我们维护各语言的 SDK。

当然,我们还是要依靠一些现代工具。

首先是视频会议,我们使用的飞书会同步每个人的日历(我们希望每个人都能将自己的日程信息化透明化,这样会非常方便的知道每个人的行程,便于安排时间),这样会议协调会很容易,同时我们保证每次会议大家都能露脸,这让每个人都能见到其他人的神情、动作,虽然隔着屏幕,也比看着聊天框里的文字和表情要亲近一些。

除了这样的工具外,就是每天的具体细节。尊重和信任是对人最大的激励、鼓励每个人分享的团队文化才是正向的。同时还要鼓励每个人把自己的能力贡献给项目和组织,并获得事业上的发展。鼓励每个人互帮互助,没有等级,团队的工程师可以直接开喷领导者(我不是说开喷是好事,而是允许这种情况发生)。

这些都是通过线上交流获得的,线下活动也是必不可少的。比如每个月邀请大家聚到一起娱乐、一起喝酒、一起打游戏、每个节日互送礼物。总之,让大家成功,让项目成功,是构建组织文化和价值观的根本目标。


减少会面,共克疫情,飞书免费开放全部远程协作办公服务 2020年1月28日 - 5月1日期间,飞书面向全体用户免费开放全部远程办公能力,点此

远程办公如何保持高效?这群开发者们是这样做的相关推荐

  1. 想成为一个高效的Web开发者吗?来看看大牛分享的经验吧~ #精选JAVASCRIPT前端开发...

    想成为一个高效的Web开发者吗?来看看大牛分享的经验吧~ 作为一个软(ku)件(bi)工(de)程(ma)师(nong),你有没有觉得做什么事都没时间?没时间学习新东西,没时间去回顾.整理原来写的烂代 ...

  2. 想成为一个高效的Web开发者吗?来看看大牛分享的经验吧

    想成为一个高效的Web开发者吗?来看看大牛分享的经验吧~ 作为一个软(ku)件(bi)工(de)程(ma)师(nong),你有没有觉得做什么事都没时间?没时间学习新东西,没时间去回顾.整理原来写的烂代 ...

  3. 【郭林专刊】10个步骤让你成为高效的Web开发者

    要成为高产.高效的Web开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果. 下面是10个提高效率的步骤,虽然不能保证解决你在开发中的所有问题,但至少是非常实用的,可以简化你的 ...

  4. 让你成为高效的Web开发者的10个步骤

    2019独角兽企业重金招聘Python工程师标准>>> 要成为高产.高效的Web开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果. 下面是10个提高效率的步 ...

  5. 10 个步骤让你成为高效的 Web 开发者

    要成为高产.高效的Web开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果. 下面是10个提高效率的步骤,虽然不能保证解决你在开发中的所有问题,但至少是非常实用的,可以简化你的 ...

  6. 硬核!国外开发者用 25 美元做了个区块链警佩相机!

    撰文 | Jordan Mack 译者 | 天道酬勤,责编 | Carol 封图 | CSDN 下载自视觉中国 如今,视频伪造逐渐泛滥,越来越多的技术进步,也给不怀好意的人留下了可钻的空子.比如警察所 ...

  7. 粒子群优化极限学习机PSOELM做数据预测 PSO-ELM优化算法预测模型

    粒子群优化极限学习机PSOELM做数据预测 PSO-ELM优化算法预测模型. ELM模型在训练之前可以随机产生ω和b, 只需要确定隐含层神经元个数及隐含层神经元激活函数, 即可实现ELM预测模型的构建 ...

  8. 上海解封背后,这群开发者“云聚会”造了个AI抗疫机器人

    今年4月的一天,北京邮电大学研三学生吴京京在开发者社群里偶然看到好友赵泽明在刷屏--原来,对方正在研发一个服务于上海嘉怡水岸小区的AI抗疫机器人,兴致勃勃地分享计划.招揽同伴中. 一开始,吴京京并没有 ...

  9. 这个隐瞒了100多天的彩蛋,在圣诞节搞丢了一群开发者的饭碗

    郭一璞 发自 凹非寺  量子位 报道 | 公众号 QbitAI 这个圣诞节,有不少开发者发现自己被老板开了. 是没有N+1那种,这不是一次裁员,而是为事故背锅. 事故发生在UI界面的一个按钮上,平安夜 ...

最新文章

  1. 微信团队放大招!他们为了小程序居然...
  2. linux设置永久别名
  3. 在服务子程中首先关闭ie 的HTML5连接向导
  4. 解决aapt命令在Linux下无法运行的问题
  5. HEVC与VP9编码效率对比
  6. 基于R语言的聚类分析
  7. 脚本重启电信天翼网关
  8. java鼠标乱跑_win7鼠标光标乱跳怎么办?解决win7鼠标光标乱跑的方法
  9. Exchange 2019反垃圾邮件组件启用反垃圾邮件功能、设置白名单\黑名单
  10. python爬取百度首页源代码并存储到HTML文件里
  11. 计算机内存占用过高,如果内存使用率过高怎么办? Win10计算机内存占用率高的原因和解决方案...
  12. Python写简单的拼图小游戏
  13. 2020最后一天 || 时间相关单光子计数技术的原理和优点
  14. 亚马逊云科技北京区域第二个EC2可用区帮助客户构建高可用架构
  15. 测试部门KPI考核指标(绩效考核)
  16. 大数据管理与分析技术(1)
  17. SpringBoot时区问题解决,彻底解决时差问题
  18. PHP身份证有效期校验(通用)
  19. Matlab绘制三维曲线(plot3)和三维图形(mesh surf)
  20. 【黑马程序员西安中心】一匹“黑马”的自述

热门文章

  1. 【数学专题】莫比乌斯反演与积性函数
  2. 0x62.图论 - 最小生成树
  3. python办公模块_Python 办公自动化教程
  4. Oracle 物理结构(六) 文件-数据文件
  5. Java练习 SDUT-2737_小鑫の日常系列故事(六)——奇遇记
  6. C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码...
  7. ADO.NET 常用对象(18)
  8. JAVA学习笔记--数组初始化
  9. 一个Apache CollectionUtils.intersection 方法的简单问题
  10. loadrunner用javavuser进行接口测试