乐趣区

关于远程:当我们谈论远程开发时我们在谈论什么

在上世纪末,国内有一批顶级程序员为众人所知,在很长一段时间里,这批程序员的才华传为佳话。他们所开发的软件系统好用而简单,同时还有另一个特点:独自开发。也就是说,从美工到界面交互设计到后端程序的开发和保护,他们那时的软件很多是靠一个人齐全开发进去的。而进入互联网时代后,这样的软件产品就急剧缩小乃至百里挑一。咱们能够说,软件开发单打独斗的时代曾经完结,如今已是团队合作开发的天下。

说到“团队合作开发”,咱们在企业招聘中就能够看出端倪。当初简直每一家软件公司都会在招聘开发者时列出一个要求:有团队精神。这很好地阐明了团队合作开发的普遍性和重要性。然而,吊诡的是,尽管咱们都晓得团队合作开发的重要性也都以这样的模式进行开发,却仿佛难以找到一个公认的、适合而无效的软件 / 互联网服务作为团队开发时合作上的保障。

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

毫无疑问,团队开发意味着团队合作,这个过程不仅继续而有序,同时充斥了沟通,计划的评估或破除,各项指标的达成,泛滥状态的变更和流转。我留神到,这些事务的背地离不开两个货色:同步性和时效性。在团队进行开发时,如果同处一个办公室,排除了解差别的因素后,成员之间的沟通能够毫无阻碍,彼此之间的信息即时到达并同步,从而有序地推动我的项目后退。“时效性”仿佛是“同步性”带进去的货色,一句话,一个命令 / 指令的执行,往往都在工夫上有限度,一旦限度被冲破,可能会带来计划或过程上的变更。

或者就是这些个性造成了“那个”软件服务诞生的艰难,即使现在文字和视频的沟通如此简便而高效。然而,尽管同步性和时效性如此重要,我并不感觉不能打折扣,就我的开发经验而言,良好的治理形式能极大地升高对高同步性和高时效性的要求。如果满足了这两方面的要求,这样的软件服务看上去依然不可能实现:咱们要怎么做能力逾越合作上的艰难,让咱们即使身处四方,但仅仅通过软件服务就能即时构建出本身的软件环境,从而将某个特定的软件景象展现、复现和分享进去呢?

这就是“近程开发”的外围。TeamCode 心愿能冲破一些限度,突破一些惯例,做到一些不可能,从而给古代的软件开发形式带来一些意想不到的、更美妙的近程合作体验。咱们心愿,开发者们未来的“合作”不仅不再解放于地区,也不再被各自的电脑环境所捆绑,甚至不再看重开发者的口头或文字沟通能力,做到“环境即代码”,做到真正意义上的“近程开发”。

退出移动版