组织方法这种有组织的方法适合长期致力于项目的大型开发团队,尤其是使用 Scrum、Kanban 等敏捷流程模型,因为 CCD 的迭代和反射特性在这里得到了最佳支持。正如第一部分中已经描述的,您的团队应该在架构和质量方面形成共同的思维方式,因为并非所有开发人员都具有关于干净代码架构和质量的相似水平的知识。因此,你应该优先考虑团队绩效而不是个人绩效。您可以将整个事情视为在日常工作中进行的共享且持续的培训。
根据我的经验,将 CCD 引入开发团队会产生以下方法:您的开发团队将共同致力于在 CCD 级别上取得进展。在这里,我也建议迭代长度至少为 21 天。如果您在项目中使用两周的常见冲刺长度,则 CCD 迭代最好运行两次冲刺。最好从黑色等级的迭代开始,因为这里没有积极遵循任何原则和实践。您可以使用此迭代来为红色级别做好准备。关于这些原则的短期入门培训课程也被证明是成功的。在迭代过程中,可以确定两个可以同时考虑的任务:一方面,您关注当前所在级别的原则和实践,另一方面,您准备下一个级别。我将这两个任务称为“规划流”和“实践流”,现在我想向大家更详细地介绍一下:
规划流程
在内容上,培训应包括术语解释以及实践和原则的目标。
培训课程应由不同的开发人员准备和举办。
引用与这些原则和实践相矛盾的遗留代码有助于说明负面案例。然而,解决方案只能在实践中开发。
练习流
在签入之前,您可以使用列表 律师电子邮件列表 检查是否所有内容均已遵守。
如果违反了原则,将会在签到评论中进行解释。
审核者使用该列表来检查签入并验证违规原因。
如果理由不充分或者根本没有理由,请联系开发商,共同寻找解决方案。
结果要么是按照原则办理登机手续,要么是由两个人证明合理的例外情况。评论中的推理很重要,因为它清楚地表明这是一个有意识的决定。
在日常站立中,您和团队应该始终简要反思是否存在任何违反原则的情况。这确保了只有“干净的代码”被签入生产代码库。例如,偶尔检查签入是否符合当前原则可能是软件架构师或首席开发人员的任务。
您可以借助静态代码分析工具(例如 Sonar、PMD、Checkstyle 或 Findbugs)在 Java 环境中映射一些原理。然而,只有当你真正关注这些工具时,它们才会有帮助。您应该谨慎使用“SuppressWarning”注释,并始终在评论中注明原因。但 NET 环境中也有一些工具可以支持您的努力。 NDepend、Simian 或 SourceMonitor 是一些示例。
晋升到下一个学位
只有遵循该程序,才能晋升到下一个级别。与个人方法相反,您的团队只能一起前进到下一个级别。但是,如果发现毫无根据地违反某个等级的内容,则同一等级将在另一次迭代中运行。因此,晋升是一种奖励,体现了整个团队的质量努力。这也确保了您的开发人员朝着同一个方向努力。一旦您一起考虑 CCD 的原理,您就会注意到您的代码库向干净代码转变的速度有多快。
团队内部的变化(例如由于新员工的出现)自然意味着并非所有开发人员都处于同一级别。如果你们以红色等级的团队重新开始,这是最容易的。这意味着新员工可以尽快了解 CCD 主题,并从团队在之前迭代中获得的经验中受益。
到达下一个级别并不意味着您可以忽略在之前的迭代中已经通过的其他级别。这只是意味着您应该在日常工作和阅读专业文献时特别关注您当前的水平。
重要的是,可以在开发人员的工作场所以书面形式找到级别概述,包括您定义的最重要的提交规则。纯电子图像(例如维基文档中的图像)并不是特别有效。每天引人注目的印刷和层压 A4 纸张已被证明是有效的。