EGONetworks|团队重构大型内部工具的经验教训( 三 )


我们也支持在其它团队维护的工具中嵌入对Crossbow的支持 , 帮助他们维护这样的工具 , 并把功能提供给Crossbow的用户 。 提供了更好的开发环境和文档 , 我们就可以驱动产品工程团队开发功能 , 与客户支持团队开发的功能互为补充 。
我们最后接管了许多技术支持工程师们维护的工具 , 弄清楚了哪些Cloudflare配置被传递给了哪些URL , 哪些可以用于分布式性能测试 , 等等 。 然后我们将这些工具废弃掉 , 把它们的功能融合进了Crossbow 。 由另一个Cloudflare团队维护的名叫EdgeWorkerDebug的工具也被我们融入了Crossbow , 然后那个团队就把他们的工具废弃了 。
成果
在2019年12月16日到2020年1月22日我们对工具做用户分析的期间 , Crossbow的使用量增加了4.5倍 。 这么大的增幅仅仅发生在四个星期内 。 我们只是为这个工具增加了许多大家最想用的功能 , 因此就在技术支持工程师的群体中快速推广开去了 。
结论
砍掉了需要大力维护却价值极低的功能 , 又进行了大刀阔斧的重构 , 我们最终得以极大地提升Crossbow的代码质量 , 提高交付速度 。 再引入衡量使用率的功能 , 建立有效的渠道接收用户的功能需求 , 还有测试驱动开发的模式 , 我们大大地提高了工具的使用率 。 工具整合减轻了整个公司内部开发支撑工具的工作量 , 我们得以为技术支持工程师们提供相同的开发框架 , 让大家使用相同的功能 。 在这个项目里我们有两点特别的收获 。 首先是在认真有效的沟通的前提下 , 削减功能竟然可以提高使用率 。 旧版的Crossbow也带有网页版的图形化用户界面 , 但它并没有提供什么CLI不具备的功能 , 还因此带来了许多的维护代价 。 废弃了图形化界面 , 我们的技术债务就大大减少了 , 因此可以把精力投入更加重要的功能 , 提高交付速度 。 这么做需要极高的沟通技巧 , 要与受此决定影响的人做好有效的沟通 。
其次 , 工具开发的效果主要是看用户口碑 , 缺乏客观的评估手段 。 增加日志主要是为了安全审计的需要 。 建立用户反馈渠道是至关重要的 , 必须有客观的方式来衡量新功能有多成功 , 以及它是怎样为用户所用的 。 有效的评估可以影响将来对工具的决策 , 而且从长远的角度来说 , 关于工具使用情况的数据会比功能自身更重要 。
作为一个CTO , 我为什么反对“平台团队”