程序员修炼之道系列 | 如何用“完美”来搞垮一个产品

2021-05-10 16:06:00
LuLu
原创
2292
摘要:不要过分追求完美,而要首先完成目标,持续迭代。

Done is better than perfect(比完美更重要的是完成)是 FaceBook 创始人扎克伯格从创业初期,就贴在办公室的标语。这个标语成了所有员工的行动准则:不要过分追求完美,而要首先完成目标,持续迭代。

在《程序员修炼之道》这一书中,作者也一直在提倡对用户够好即可的软件。

1.什么是够好即可的软件

“够好即可”这个词并不意味着草率或糟糕的代码。简单概括为“完成好过完美”。对用户而言,与未来那个理想中的完美软件相比,现在够好可用的软件更加务实。

2.切勿画蛇添足

先画完了蛇,本可赢得一壶酒的门客,由于得意忘形,给蛇画脚,结果落后于其他门客,反而输掉了这壶酒。

画蛇添足的例子在实际开发过程中也经常出现。用户需求很简单,而我们往往过于追求完美,添加一些没有必要的功能,这种画蛇添足的行为不但不合适,反而毫无益处。

为避免这样的误区,可以尝试将MVP(最小化可行产品)推向市场,以最小的成本和有效的方式验证产品是否符合用户需求,进而调整方向。

3.怎么做到“够好即可”

  • 训练自己,编写出足够好的软件。只要软件能满足当前用户和未来维护者的使用, 又能让自己满意即可。 
  • 让用户参与权衡。先给用户一个不那么完美,存在某些瑕疵,但是足够使用的软件,让用户及早使用,他们会反馈出他们真正的需求,把我们引向更好的最终解决方案。今天的了不起软件比明天的完美软件更加可取。 
  • 知道何时止步。追求完美是个不错的理念,当用户觉得足够好时,就可以暂时止步了。我们可以容忍它是有缺陷的,千万不要因为过度修饰和过于求精而毁掉完好的程序。

完美的产品是不存在的。高手程序员不是放弃了完美,而是用更快的速度、更少的成本先完成,用够好即可的产品让用户反馈。  

够好即可,有利于落地极限编程中的简单设计、测试驱动开发、重构等实践,从而提升团队协作效率。你们团队的产品是否做到了“够好即可”?欢迎大家在评论区留言。