情况:
有一个由4个不同国家的6名开发人员组成的远程团队。它使用CI,版本控制,Slack和每周状态调用。他们对每个拉请求进行代码评审(总是同一个审阅者)。然而,没有关于代码组织、样式和布局的正式规则。一些团队成员兼职工作,所以每天的站立不是一种选择。
问题是:
关于正在开发的特性的知识是“siloed”--每个开发人员通常都知道他正在开发的代码库中有一个单独的部分。任务在问题跟踪器中定义,团队讨论每个开发人员在每周电话会议上所做的事情。然而,这些特性在本质上是复杂的,如果不看代码,就很难真正理解发生了什么。因此,团队发现一些功能被重复了3-4次.由于不同的开发人员有不同的编码风格(例如,继承深度有多大、行长等),因此有些特性很难维护,代码库的演化也是在正交方向上进行的。
问题是:
这个团队可以实现哪些特定的过程,以便对代码库和体系结构有一个共同的理解?
发布于 2017-01-27 13:06:52
您的语言或框架通常有一个样式指南。取决于所使用的语言或框架,这可能足以规范代码样式。您可以根据您的语言中可用的工具将自动样式检查集成到CI过程中,尽管将当前的代码基转换到工具可以接受的状态可能需要大量的工作。
至于知识仓,你可以尝试扩展你的复习过程。每个人都应该检查所有的代码。这也将有助于统一所使用的风格,因为每个人都会接触到其他人的风格。
为了共享当前的体系结构,获取一些描述它的图片,并花时间研究它们并回答任何问题。希望您可以从代码库本身生成这些代码。
发布于 2017-01-27 09:28:25
共同的理解主要来自于关于你将要建立什么、为什么和如何建立的共同对话。即使在分发的时候,如果你们能够一起开会讨论工作,也会有很大的帮助。尤其是当你估计一起工作时,你可以依靠的是“以前的工作”,结果往往是这样。
否则,您将期望团队领导能够保持某种概括性,并能够让您开始一些事情,同时指出您可以重用或采用的现有代码。
您提到的审阅者还可以考虑新代码如何与现有的代码库相结合,如果存在重复,评审可以指出这一点。
如果系统太大,一个人无法保持概述,那么您可以考虑为每个组件/区域分配一个“备份”人员,否则这将是一个筒仓。如果不对其进行积极的编码,备份人员至少可以了解组件所做的事情、应用了哪些更改、出于什么原因,并进行任何代码评审,以便更深入地了解这些组件是如何组合在一起的。
https://softwareengineering.stackexchange.com/questions/341022
复制相似问题