先要好代码? 还是好产品?
【更新】很多朋友不同意我的意见,其实我想表达的是一个先后顺序的问题, 并非是重要程度。好的产品能让技术重要起来.
做项目,特别是创业项目, 实现好的点子总是一件令人抓狂的事情。明明非常有经验,为什么还是总延期呢?看上去没有技术难度,却很容易陷入到实现细节中出不来呢。这几天想了很多,基本上笔者总是遇到下面一个循环:
- 关于某个功能,有了一个好点子
- 开始实现, 但是很快发现在细节上要做的东西貌似比较多
- 于是开始设计复杂的对象关系和结构, 希望通过代码把它们管理起来. "以后好扩展"(很多人的口头禅)
- 但是...发现点子需要调整, 设计上有变化。
- 发现明明只是小调整, 却要改很多地方, 大量的"以后好扩展"的设计完全用不上了?
- 直接重新开始写代码, 但是不知不觉又慢慢滑入步骤3的流程中.
这个循环,很明显会浪费掉宝贵的时间。如果是创业的小团队,更是耗不起,但是为什么会这样呢?直观的看:这是过度设计。但是这个错误背后,我觉得有一个更大的错误:在好产品还不存在的情况下就开始追求好代码
这是一个错误吗? 我想很多人可能不会同意。 但是仔细想一下, 它很有可能是! 特别是在时间紧迫的情况下。 我的理解是这样:好代码的用处不是为了自娱自乐, 而是为了方便修改, 应对变化. 但这一切都有赖于产品细节的支撑, 可惜的是, 初创的产品细节可以认为是最不稳定的. 没有它们做支撑. 强求好代码, 结果多半是一些设计模式/经验模式的堆砌. 写起来很爽, 过期得更快. 毕竟我们人类的智力是总结经验, 而不是预测未来。
结论: 对于创业的团队来说, 最重要的东西不一定是最优先的,就算技术是核心竞争力,代码虽然重要,但是必须得先有好产品,等产品相对靠谱了,再仔细设计你的技术架构吧