从碎石路开始:为什么 MVP 能胜过 12 车道高速公路
Source: Dev.to
Introduction
构建软件就像在不同目的地之间旅行。对我们而言,这是一段从 Problem City(问题城)到 New Solution(新方案)的旅程。软件就是连接两者的道路。开发者常常在还不知道道路是否能到达正确的目的地时,就急于修建一条12车道的高速公路。
(如果你不熟悉道路施工:修建一条州际高速公路可能需要数月甚至数年,需大量规划和人力,花费巨大,并且在施工期间会扰乱周围的一切。)
Start with a Gravel Road
一开始先修一条简单的单车道碎石路也是可以的。确实,它有坑洞、巨石,行驶速度也不快,但它仍然比步行(手工工作)快,而且能让你快速判断是否能够到达 New Solution。
在这个阶段:
- 这是一条单向道路,外观不佳,行驶缓慢。
- 偶尔会有倒下的树木或抛锚的车辆阻塞道路。
- 它能快速完成任务,且成本远低于高速公路。
最棒的是,你永远不会失去改进道路的能力。通过最初的碎石路,你会发现有很多人想去 New Solution,于是可以铺一点沥青、填平坑洞,以提升速度和容量。
Monitoring and Incremental Improvements
First Upgrade
几个月后,你可以判断这条路是否足够:
- 如果交通没有拥堵,且每个人都能在可接受的时间内到达 New Solution,则无需升级。
- 如果交通量增长并出现拥堵,就该改进道路了。
典型的首次升级:
- 拓宽为双车道,让更多人同时通行。
- 清除靠近道路的树木,防止暴风雨时倒塌。
- 增设路肩,让司机可以靠边停靠,而不是在车道中停下。
- 持续监控,修补坑洞,帮助抛锚的车辆。
Subsequent Upgrades
再过几个月,你可以评估这些升级是否有效:
- 如果道路满足司机需求,保持维护并考虑建设下一条道路。
- 如果交通再次拥堵,则进一步拓宽——比如扩展到四车道。
后续可能的增强措施包括:
- 通过添加红绿灯、路标或桥梁,将道路(系统)与其他道路(系统)集成。
- 提高限速。
循环往复:改进 → 确认改进解决了当前问题 → 监控。最终,道路趋于稳定,施工减缓,资源可以转向新项目。
When to Invest in More Sophisticated Infrastructure
一开始并不需要超级强大、复杂的系统。通常也不需要 Kubernetes、昂贵的数据库或繁复的基础设施服务。正如高速公路的例子,这些方案需要大量时间、精力和金钱。
一个实用的做法:
- Start small – 先实现少量功能,解决眼前的问题,运行在单台服务器或简单的 serverless 环境中。
- Monitor – 追踪使用情况、性能和反馈。
- Clean up – 处理技术债务,优化现有代码库。
- Maintain – 修复 bug,处理出现的问题。
- Scale only when needed – 当单台服务器的流量不堪重负时,添加负载均衡器和多台服务器,然后再考虑更高级的基础设施。
有时,只需要一条碎石路就能起步。
Conclusion
逐步构建软件:
- 从最简可行的解决方案开始。
- 基于真实使用情况持续监控并改进。
- 只有在需求足以支撑时才升级基础设施。
这种方法可以节省时间、金钱和精力,同时确保交付的价值是用户真正需要的。