How XDSD Is Different

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

eXtremely Distributed Software Development(简称XDSD)是一种与传统软件开发团队工作方式有很大不同的方法论。大多数XDSD方法与传统方法相差甚远,但却非常重要,因此很多新手会感到困惑。本文应该能帮助你在加入一个以XDSD原则管理的项目时快速入门,不论你是开发人员还是项目赞助人。

与许多其他项目不同,在XDSD中,我们只支付已关闭的任务和约定的时间预算。让我用一个例子来解释一下。假设你是一个Ruby程序员,你得到了一个新的任务,需要你修复一个损坏的单元测试。这个任务的时间预算是30分钟,这在大多数情况下都是如此。不过,有时候任务的时间预算可能是15分钟或1小时。

在我们的例子中,我们同意按照每小时50美元的合同费率进行计费。对于这个有问题的测试,你将获得25美元的报酬—以每小时50美元的费率计算的30分钟任务。

无论你实际上花多长时间修复这个测试,你在项目上实际花费的时间可能是5分钟或5小时。然而,你只会为30分钟的工作获得补偿。如果你在5分钟内修复了这个问题,你将获得25美元。如果任务花费了你一个小时,甚至一个月的时间才能完成,你仍然只能获得25美元。

此外,如果你未能修复单元测试并完全关闭任务,你将不会获得任何报酬。

您可以在以下文章中查看有关这一原则的更多详细信息:无义务原则或已完成定义。

如上所述,这是XDSD和其他方法之间最重要的区别之一。许多人在看到这个原则付诸实践时感到困惑,有些人因此离开了我们的项目。他们习惯了每个月都能收到工资—不管他们实际上交付了多少工作。在XDSD中,我们认为这种方式非常不公平。我们认为那些交付更多结果的人应该获得更多的报酬。相反,那些没有交付的人应该得到更少的报酬。

由于我们的大部分任务都是半小时大小,我们鼓励开发者提交未完成的组件。在下面的文章中,了解更多关于这个概念的内容:拼图驱动开发(Puzzle Driven Development)。

与您可能合作过的许多其他项目或团队不同,XDSD不使用任何非正式的沟通渠道。明确一点,我们从不使用电子邮件,从不在Skype上聊天,也不进行任何会议或电话交流。此外,XDSD没有维护任何类型的邮件列表。我们唯一的沟通方式是一个工单跟踪系统(在大多数项目中,这个系统由GitHub Issues组成)。

此外,我们不鼓励开发人员之间关于个别任务范围的横向沟通。当分配一项任务时,您的唯一联系人(也是唯一的客户)是任务的作者。您可以在工单中与作者沟通以澄清任务要求。

当任务要求明确,并且您完全理解它们时,将结果交给作者,并等待作者关闭任务。作者关闭任务后,项目经理会支付您。

我们对这个原则非常严格-没有非正式的沟通。然而,这并不意味着我们对您的意见和建设性批评不感兴趣。相反,我们鼓励每个人提出建议和错误报告。顺便说一下,我们会为错误支付报酬(有关错误报告和支付的详细信息,请参阅下一部分)。

由于我们没有正式的沟通,项目团队成员不需要在特定时间工作。相反,团队成员可以在自己所在时区方便的时间工作。这包括工作日和周末。

与许多其他软件团队不同,XDSD欢迎在我们所有项目中报告bug。因此,我们要求公开提出bug,并期望团队成员进行报告。请查看以下文章以获取关于XDSD bug报告的完整详细信息:《欢迎报告Bug》。

我们期望参与项目的每个人都要报告发现的每个bug。此外,我们鼓励团队成员提出建议。在XDSD中,我们会为每个正确报告的bug支付报酬。

XDSD为报告的bug支付报酬,因为我们相信我们能够发现的bug越多,最终产品的质量就越高。一些新的开发人员会对收到“你必须在A类中找到10个bug”的任务感到惊讶。通常,自然的反应是询问:“如果没有bug怎么办?”然而,我们相信任何软件产品都可能有无限数量的bug;只是需要花费时间和努力去发现它们。

我们从不授予团队成员对master分支的访问权限,无论你在项目上工作多长时间。因此,你必须始终通过拉取请求提交你的更改(我们的大多数项目都在GitHub上完成)。

我们执行这个策略不是因为我们不信任我们的开发人员,而是因为我们不信任任何人。当然,这只是个玩笑。阅读这篇文章:主分支必须是只读的。

在将任何更改合并到“master”分支之前,我们会使用单元测试和静态分析器检查整个代码库。单元测试是现代软件开发中非常常见的组成部分,你应该不会感到惊讶。然而,静态分析的严格性常常让XDSD的新手们感到沮丧,我们理解这一点。我们对源代码的质量和一致性比大多数竞争软件开发团队更加关注。

更重要的是,我们从不妥协。如果您的拉取请求违反了静态分析器的任何一个规则,它将不会被接受。而且,这个合并过程是完全自动化的,无法绕过。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-17 at 15:27

sixnines availability badge   GitHub stars