一说起「编程」和「合作」,毫无疑问,我想大家的第一反应都是 GitHub 吧。然而,如果真的要做好一个项目合作,只有编程可是不行的,还需要专门进行交流和沟通,确保编程方向正确,确保项目顺利实施。

两个小伙伴的组队缘由

我首先说一下项目背景:朋友A在异地读研假期接了一些编程的私活。又有一次通过聊天,了解到他的项目使用Vue,恰好我也会一点点Vue,就说可以在他的编程基础上当一个「Copy-Paste-person」。所以我们两个就达成了口头上的一致,并开始愉快地干活了。

编程合作,这肯定是GitHub了。但是信息交流呢?因为朋友A作为项目的接口人,他需要随时和甲方联系,获取甲方的资料,传达甲方的需求。而我作为一个编程代码背后的人,往往不能直接了解甲方需求。所以我们至少需要聊天、视频会议、共享文件这三类功能从而进行编程内容的交流。

其实最开始的时候,我们并没有统一的协作交流软件。我们用过Trello、Outlook、Zoom、AnyDesk、iCloud、Pages,还有必备的微信、QQ。🤔️想一想都觉得有点不可思议。从这么多的工具一眼就可以看出,我们的前期交流是非常混乱的。

于是我计划给国外的他推荐飞书,但是在使用过程中,飞书每个平台的功能都不全面(Web、iPad、Mac、Android Phone、iPhone),又发现小伙伴的飞书在视频过程中经常莫名其妙地闪退,所以暂时仍然使用Zoom作为视频会议的主力军。

就这样,坚持了一个月之后,我们厌倦了这种痛苦,下定决心换一个。尝试了Worktile,发现它不满足我们的需求,最后还是觉得飞书可以接受。而且竟然没有闪退现象了。

此时,我们的协作模式就基本成型了,GitHub + 飞书。

GitHub 协作

Git作为一个分布式的代码管理工具,对于多人协作,最有效的功能就是Branch(分支)、Pull Request(提交请求)、Merge(合并)等。

但是在协作的过程中,常犯的一个错误就是两人对于任务分工不明确,对于某些错误代码彼此都会修改,而且用的还是不同的编程风格,这就最容易导致代码冲突了。然而,如果某一方解决完冲突,而不进行调试,又有可能导致新的错误。

我们在协作的过程中,的确遇到了这个问题。

慢慢地,我们就需要磨合,作一系列防止代码冲突的措施。比如,每次只更改一个代码页面,每次Commit仔细说明修改内容,及时使用issue 进行代码报错问题说明。

飞书协作

使用GitHub进行代码协作,这算的是技术层面的事情,还是非常容易达成统一的。但是使用飞书,进行沟通,这可以算得上是一个管理问题了,比起前者复杂十倍,看一看我们前期尝试的工具就能明白沟通的痛苦了。

 

飞书协作空间

「飞书协作空间」,是飞书官方开发的一个工具。最开始,我们两个人使用「飞书协作空间」进行办公,列出todo-list,然后进行指派处理。但是,使用一个月之后,每次只能在电脑端修改协作任务,而且从消息对话页面到项目的待办页面,至少需要点击4次,这些因素都增加了我们的不满意情绪。慢慢的,我们就放弃了。

然而,飞书协作空间也有一个不错的优点,那就是你如果在项目群里上传文件,该文件会自动作为项目文件显示在飞书协作空间。尽管我们在6月中旬已经弃用了飞书协作空间,但是她的项目文件仍然更新到了7月28日,这是我们最新上传文件的时间。🤩所以,飞书的自动化的小细节值得称赞。

共享文件
主要用于存放甲方提供的各种资料,同时通过云文档,协同合作,记录我们两个人的工作进展。

安排日程
这个真的是一个很好的功能。因为创建一个日程时,它可以选择不同时区的时间,这对于在国外的伙伴A来说很方便,至少不用进行时区换算了。而且我们创建了一个公共日历,我们两个人可以设置各自的日程在此公共日历显示。

视频会议
之前有说到飞书可以安排日程,它在建立会议日程的同时,生成了一个视频会议的链接。只需要复制链接,然后将其粘贴至「加入会议」,就可以进入当前会议的视频通话界面了。经过我们近十次的视频通话,通话质量很不错,而且也支持共享电脑桌面等功能。

通过日程的安排,直接确定一场视频会议。我认为它是一个非常值得称赞的小细节。通过这个视频会议链接就可以直接将日程与会议连接起来,而不用进行一些无用的操作,比如说先征求大家的日程安排,等待一轮询问之后确定会议时间后,再创建会议。

即时交流

除了必要的视频通话外,我们两个人更常见的交流形式就是聊天了。只需要发出消息,就可以观察是否有绿色的已阅标识。已阅标识对我们来说非常重要,尤其是两个人处于不同的国家、时区。基本上我晚上发消息,然后另一个人白天回复消息。尽管存在时差,我们依旧是通过飞书的聊天交流逐渐优化代码。

而且飞书是多平台同步的,同步速度也不错。所以就随时随地都可以打开飞书(Android、iPadOS、iOS、macOS)查看两个人的消息记录。

我的结语

通过选择GitHub和飞书作为远程小伙伴共同开发代码项目的协作工具,它们两者在协作方面都体现出了巨大的优势。GitHub自然不必说,已经算的上是龙头老大的位置了。而,飞书作为一款近两年出现的协作工具,从字节跳动的国际化工作团队孵化而来,从一而终地体现了远程协作的优势。也许不久,国际市场上飞书、Lark可以获得更大的关注、更多的使用。

但是我还是好奇,什么时候飞书和Lark可以统一啊,能不能提供一样的功能。总感觉国内的工具在整个世界版图上就像是孤儿一般的存在。不要打我🤔

2
3