您如何确保软件代码质量?在敏捷环境中值得吗?

How you assure software's code quality? Is it worth it in an agile environment?

首先对无代码问题表示抱歉,但我想澄清一件事。

我在一个积极推动代码质量的团队中有一位高级开发人员 - 合并请求审查,没有糟糕的代码等等。但是团队中的大多数其他人都有 - 完成任务的心态。作为一名业务人员,我根本不检查代码,但如果我没有那个关心质量的人 - 在我看来,我们会在某个时候遇到一些繁重的重构周期。

当然,过分关注质量也有不利的一面 - 这样做需要时间。当我们不得不随着业务需求的变化而调整时,也许我们将不得不抛出很多漂亮的代码。

两个问题:a) 您如何保持产品质量?你使用什么做法? b) 对代码质量的关心够不够(不能太少也不能太多)?

获取并实施良好的单元测试框架,并通过自动化集成测试对其进行支持。

关于敏捷,我发现早上 10 分钟的站会很有用,但 end-of-sprint 会议往往很长。

代码质量很重要,与您是否开发敏捷无关。你说的对,质量改进需要额外的时间。大多数人失败是因为他们花时间在更大的块 ('refactoring projects') 或多或少地清理任意位置的代码,objective 尽可能减少质量问题的数量。

我建议使用的过程是遵循 童子军规则 总是让更改后的代码比以前更干净(更好)。这意味着无论何时更改函数、过程、方法或其他代码单元,都要修复其中的质量问题。好处是您已经理解了代码(因为无论如何您都必须更改它)并且它将被测试(因为您需要测试您的原始更改)。这意味着质量改进的额外努力(添加评论、改进标识符、删除冗余……)非常低。此外,您只改进您正在使用的代码,不要浪费时间改进从未接触过的代码。

遵循童子军规则可确保质量不会下降,而是随着时间的推移稳步提高。也是'caring'的合理水平。我写了更多关于此的内容 here. In addition you need a good quality analysis tool like Teamscale 可以可靠地区分遗留问题、新问题和您最近更改的代码中的问题。

我使用 Sonar Qube 一个我们用于静态代码分析的工具获得了很好的体验。所以我们可以跟踪 我们代码库中的代码异味等。另一点是,可以在冲刺中计划解决问题! IDE 集成也可用!