代码重构的“另一面”
代码重构是敏捷环境中常用的一项技术。它致力于改善代码的内部结构、风格、运行与条件,同时保持其外部的功能与性能。
重构往往意味着重写代码、修补bug,以及完善可见的或功能性的代码。重构的目的在于通过改进某些属性(如长度、不必要的重复及复杂性)、加强理解,说明采用更佳的设计决策所带来的收益,从而提升代码的可维护性。
重构亦是代码改进的一种形式,它可以关注到代码质量、需求质量、测试、集成,以及开发生命周期内的任何其他基于流程的可交付成果。
聚焦于连续性地改进产品,代码重构可以借助集成项目管理 SP1.7 “为组织级过程资产做出贡献”、通用目标 GP3.2 “收集与过程相关的经验”,以及技术解决方案 SP3.1 “实现设计”中的指南而得到改善。
运用集成项目管理过程域,提升代码重构
敏捷的收益之一,是借助许多闭合的反馈路径来进行学习。反馈在工作时完成,不会延迟到项目后期;项目后期是没有时间来开展爆炸式的学习的。精益管理告诉我们,任何重做的事都会导致浪费。然而代码重构是反馈的闭环,敏捷团队可以用来持续性改善他们开发的软件。重构在敏捷中是一项非常好的实践,可以运用在其他工作产品的改进上。集成项目管理过程域,提供了一些可以拓宽代码重构收益的指南,比如:
· 识别出重构的代码、改进后的user story、准确的story规模产物的最佳实践案例
· 在sprint回顾之外,设置知识分享的目标,用以抓取知识并为其他团队创造培训机会
· 将获得的知识提交给负责定义、部署和支撑文档化敏捷实践的支持性组织
运用技术解决方案过程域,提升代码重构
重构被敏捷团队用作持续改进软件的反馈闭环,将促使从其他团队获得的知识可以被应用于更广泛的改进主题落地实践中。技术解决方案过程域提供的指南,可以在实现设计的过程中,增加重构的收益。例如:
· 运用经过验证的配置工具、统计分析工具、动态分析工具、单元测试套件、模拟工具等
· 在执行阶段使用最佳实践,例如已经重构过的代码、修改过的user story等
· 通过上文提到的那种培训,确保团队成员理解并运用这些最佳实践