当我们谈论“远程开发”时,我们在谈论什么
在上世纪末,国内有一批顶级程序员为众人所知,在很长一段时间里,这批程序员的才华传为佳话。他们所开发的软件系统好用而复杂,同时还有另一个特点:单独开发。也就是说,从美工到界面交互设计到后端程序的开发和维护,他们那时的软件很多是靠一个人完全开发出来的。而进入互联网时代后,这样的软件产品就急剧减少乃至凤毛麟角。我们可以说,软件开发单打独斗的时代已经结束,如今已是团队协作开发的天下。
【当我们谈论“远程开发”时,我们在谈论什么】说到“团队协作开发”,我们在企业招聘中就可以看出端倪。现在几乎每一家软件公司都会在招聘开发者时列出一个要求:有团队精神。这很好地说明了团队协作开发的普遍性和重要性。然而,吊诡的是,虽然我们都知道团队协作开发的重要性也都以这样的形式进行开发,却似乎难以找到一个公认的、合适而有效的软件/互联网服务作为团队开发时协作上的保障。
请别误会,我并不是说没有用来辅助团队开发的软件产品或服务。实际上,这类产品随手拈来,从 Ones, PingCode 到 Jira, GitHub, JenBrains 系列,帮助团队更好地进行开发的工具不一而足。而自从跨入云原生时代以后,这类云端协作服务也逐步为人所知。我想说的是,这些互联网服务更多是被用来辅助开发,既非开发环境,也不是运行环境,而对一个开发团队而言,缺乏一个更底层的、统一的,不随时间地域改变的,能任意重现开发者电脑上历史环境的软件服务。
毫无疑问,团队开发意味着团队协作,这个过程不仅持续而有序,同时充满了沟通,方案的评估或废除,各项指标的达成,众多状态的变更和流转。我注意到,这些事务的背后离不开两个东西:同步性和时效性。在团队进行开发时,假如同处一个办公室,排除理解差异的因素后,成员之间的沟通可以毫无障碍,彼此之间的信息即时抵达并同步,从而有序地推进项目前进。“时效性”似乎是“同步性”带出来的东西,一句话,一个命令/指令的执行,往往都在时间上有限制,一旦限制被突破,可能会带来方案或进程上的变更。
或许就是这些特性造成了“那个”软件服务诞生的困难,即便如今文字和视频的沟通如此简便而高效。然而,虽然同步性和时效性如此重要,我并不觉得不能打折扣,就我的开发经历而言,良好的管理方式能极大地降低对高同步性和高时效性的要求。假如满足了这两方面的要求,这样的软件服务看上去仍然不可能实现:我们要怎么做才能跨越协作上的困难,让我们即便身处四方,但仅仅通过软件服务就能即时构建出自身的软件环境,从而将某个特定的软件现象展示、复现和分享出来呢?
这就是“远程开发”的核心。TeamCode 希望能突破一些限制,打破一些常规,做到一些不可能,从而给现代的软件开发方式带来一些意想不到的、更美好的远程协作体验。我们希望,开发者们将来的“协作”不仅不再束缚于地域,也不再被各自的电脑环境所捆绑,甚至不再看重开发者的口头或文字沟通能力,做到“环境即代码”,做到真正意义上的“远程开发”。
推荐阅读
- 第三节|第三节 快乐和幸福(12)
- 这辈子我们都不要再联系了
- 诗歌:|诗歌: 《让我们举起世界杯,干了!》
- 我们重新了解付费。
- 那件我们忽略的小事叫感恩
- 我们应该和什么样的人交朋友
- 我要我们在一起(二)
- 宋仲基&宋慧乔(我们不公布恋情,我们直接结婚。)
- 情节33.0
- 那些年我们玩过的街机