Software Development Tools Do Not Make Teams Fast
工具并不能让团队变快。
团队之所以高效,是因为其成员、清晰的目标以及完善的流程。工具无法创造这些东西。
正确的工具只做一件事:它们不再让团队变慢。
许多工程团队陷入了一个恶性循环。他们觉得慢,于是购买新工具,追踪指标。结果却好坏参半。于是他们得出结论,认为工具选错了,然后继续购买更多工具。
这种方法是错误的。你不应该寻找能“增加速度”的工具,而应该寻找能“消除摩擦”的工具。
如果你追求速度,你就会购买功能繁多、基准测试表现优异的工具。这些工具通常很复杂,需要专门的知识储备,反而会产生新的摩擦。
如果你追求消除摩擦,你会购买那些“乏味”的工具。你会寻找那些能把一件事做好、能与现有技术栈集成、且维护成本低的工具。
最昂贵的摩擦并不存在于你的 IDE 或你的 CI 平台中。它存在于它们之间的缝隙里。
开发者编写代码,提交 commit,CI 流水线运行,结果出现在聊天应用中。每当需要人工在这些工具之间传递信息时,时间就会被浪费。
不要孤立地评估工具。摩擦并不存在于单个工具内部,而是存在于工具之间。
在选择工具时,请问自己这四个问题:
- 团队究竟在哪些环节浪费了时间?
- 解决该特定问题所需的最小化工具是什么?
- 该工具能否与我们现有的工具集成?
- 随着系统的增长,这需要多少维护工作?
避免工具泛滥。使用过多解决相同问题的工具会造成混乱。它会增加新人上手的难度,并拖慢每次事故响应的速度。
最好的工具是“隐形”的。它们运行、报告,然后退居幕后。如果一个工具需要你不断关注才能维持正常运转,那它并没有在帮你。
停止购买功能。开始消除摩擦。
