hi,朋友们,我是柱子,见字如面。 对于软件工程团队来说,用规则和指南,来约束和指导工程师们的创造工作,来提升团队整体的质量和效率,是一个有效的措施。 首先,来了解一下规则和指南的区别:
规则和指南,本质是提升团队的一致性,通过一致性来提升团队整体的、长期的效能。 为什么要有规则做事时,搞清楚背后的目的,是最重要的。 工程团队制定的相关的规则和指南,其目的是:鼓励好的行为和规避不好的行为。 其中,好和不好并没有一个绝对普世的标准,更多的是一个主观的,根据团队自身需要来定制的,取决于团队当前关注什么。 规则和指南,是为了让工程师们将好的实践方法,注入到每一次的行动中,发挥出一定的杠杆作用,将共同的发展模式推向期望的方向。 在创建规则和指南时,要考虑的关键问题是:我们要达成什么样的目标? 当我们关注有效的目标时,就可以更好的识别出那些规则能更好的的支持目标的达成,也就更容易提取出有价值的规则。 创建规则的指导原则Google创建规则的核心指导原则:规则的目标是管理好开发环境的复杂性、保持代码库的可管理性、同时保障工程师高效的工作。 具体指导制定规则的总体原则如下:
保持一致性的意义对于工程团队,或者其他任何团队来说,在工作中保持一定的一致性,是非常有必要的。 就拿工程团队来说,在代码上保持一致性,虽然可能会感受到一点限制,但从整体上来说,可以让更多的工程师用更少的精力完成更多更有价值的工作。 工程团队在代码上保持一致性的意义如下:
保持一致性,建议先从局部开始,再逐步的拓展到更大的范围中去。 从长远来看,一致性的范围越大,团队整体的收益的可能性就越多。 规则的应用编程规则被强制执行时,才会产生真正的、更大的价值。 规则的有效落地,需要软硬两方面的抓手:
规则的有效落地,最好的方式就是依赖于技术手段,用工具自动来执行,而不是依赖于人为的检查。具体原因: 首先,自动化的规则执行,确保了规则不会随着时间的推移或组织规模扩大而丢失和遗忘; 第二,自动化的规则执行,可以将规则解释和应用的差异最小化,更多的消除掉个人的认知偏见; 第三,自动化的规则执行,在可伸缩性有极大的保障,工具具有很好的复制性,可以低成本的无限扩展; 在软件工程中,常见的规则落地的自动化工具有:错误检查工具和代码风格工具等。 最后对于有一定规模的软件工程团队来说,建设符合自身需要的工程规则和指南,是非常有必要的。 首先,将一组有效的规则和指南,融入到工程团队的工作流程中,可以让组织的扩展性和可持续性更好。 第二,规则和指南所提供的一致性,可以有效的帮助团队来管理复杂性,并构建易维护的工程代码。 |
|