写点什么

当我们谈论“远程开发”时,我们在谈论什么

作者:Draven Gorden
  • 2021 年 12 月 02 日
  • 本文字数:1203 字

    阅读完需:约 4 分钟

当我们谈论“远程开发”时,我们在谈论什么

村上春树的这个句式很有点意思,似乎可以引发人挖掘一句话更深层的含义。


在上世纪末,国内有一批顶级程序员为众人所知,在很长一段时间里,这批程序员的才华传为佳话。他们所开发的软件系统好用而复杂,同时还有另一个特点:单独开发。也就是说,从美工到界面交互设计到后端程序的开发和维护,他们那时的软件很多是靠一个人完全开发出来的。而进入互联网时代后,这样的软件产品就急剧减少乃至凤毛麟角。我们可以说,软件开发单打独斗的时代已经结束,如今已是团队协作开发的天下。

说到“团队协作开发”,我们在企业招聘中就可以看出端倪。现在几乎每一家软件公司都会在招聘开发者时列出一个要求:有团队精神。这很好地说明了团队协作开发的普遍性和重要性。然而,吊诡的是,虽然我们都知道团队协作开发的重要性也都以这样的形式进行开发,却似乎难以找到一个公认的、合适而有效的软件/互联网服务作为团队开发时协作上的保障。

请别误会,我并不是说没有用来辅助团队开发的软件产品或服务。实际上,这类产品随手拈来,从 Ones, PingCode 到 Jira, GitHub, JenBrains 系列,帮助团队更好地进行开发的工具不一而足。而自从跨入云原生时代以后,这类云端协作服务也逐步为人所知。我想说的是,这些互联网服务更多是被用来辅助开发,既非开发环境,也不是运行环境,而对一个开发团队而言,缺乏一个更底层的、统一的,不随时间地域改变的,能任意重现开发者电脑上历史环境的软件服务。

毫无疑问,团队开发意味着团队协作,这个过程不仅持续而有序,同时充满了沟通,方案的评估或废除,各项指标的达成,众多状态的变更和流转。我注意到,这些事务的背后离不开两个东西:同步性和时效性。在团队进行开发时,假如同处一个办公室,排除理解差异的因素后,成员之间的沟通可以毫无障碍,彼此之间的信息即时抵达并同步,从而有序地推进项目前进。“时效性”似乎是“同步性”带出来的东西,一句话,一个命令/指令的执行,往往都在时间上有限制,一旦限制被突破,可能会带来方案或进程上的变更。

或许就是这些特性造成了“那个”软件服务诞生的困难,即便如今文字和视频的沟通如此简便而高效。然而,虽然同步性和时效性如此重要,我并不觉得不能打折扣,就我的开发经历而言,良好的管理方式能极大地降低对高同步性和高时效性的要求。假如满足了这两方面的要求,这样的软件服务看上去仍然不可能实现:我们要怎么做才能跨越协作上的困难,让我们即便身处四方,但仅仅通过软件服务就能即时构建出自身的软件环境,从而将某个特定的软件现象展示、复现和分享出来呢?

这就是“远程开发”的核心。TeamCode希望能突破一些限制,打破一些常规,做到一些不可能,从而给现代的软件开发方式带来一些意想不到的、更美好的远程协作体验。我们希望,开发者们将来的“协作”不仅不再束缚于地域,也不再被各自的电脑环境所捆绑,甚至不再看重开发者的口头或文字沟通能力,做到“环境即代码”,做到真正意义上的“远程开发”。

用户头像

Draven Gorden

关注

还未添加个人签名 2021.10.20 加入

还未添加个人简介

评论

发布
暂无评论
当我们谈论“远程开发”时,我们在谈论什么