选择无聊技术,创新实践
核心摘要
著名的文章"Choose Boring Technology"指出了使用新技术的两个问题:
- 新技术有太多"未知未知",而无聊技术的陷阱已被充分记录
- 闪亮技术有持久存在的维护负担
两者都指向一个观点:技术的主要成本是维护。
技术 vs 实践
"即使某东西容易构建,也不一定容易持续运行。我们不能'放弃'关键任务技术。"
假设团队用Julia构建新服务,两年后发现是错误选择:
- 方案A:昂贵的数据迁移(Julia代码 → Java)
- 方案B:昂贵的持续维护(保持Julia运行 + 培训工程师)
无论哪种,公司都需要投入资源。
但实践呢?同期尝试TCR(test && commit || revert)两年后腻了:
- 简单:不做了就行
- 没有"遗留实践"需要支持
- 没有维护负担
创新令牌
- 技术:有3个"创新令牌"
- 实践:有6-7个"创新令牌"
- 可以放弃实践来换回令牌
材料 vs 工具
进一步细分,技术可分为两类:
- 材料(Material):需要运行来支持业务
- 代码、服务架构、数据、数据库引擎
- 替换成本高
- 工具(Tools):用来制作材料,但材料不依赖
- 编辑器、个人bash脚本
- 替换成本低
工程控制 vs 管理控制
"社会过程比技术'更不稳定',需要更多工作维持。
这就是为什么工程控制被认为比管理控制更有效地减少事故。"
启示
- 技术选择保守:选择无聊技术,因为替换成本高
- 实践选择创新:大胆尝试新实践,因为放弃成本低
- 工具选择灵活:可以比材料更创新地选择工具