核心观点:不要追求完美主义,尽早发布,基于真实反馈快速迭代。
一、问题的普遍性
在我曾经发布过的软件中,没有一个能让我满意。哪怕一个也没有!
像很多软件开发者一样,我是一个完美主义者。于是,有些问题就不可避免了:
- 开发计划太激进,时间太短了
- 碰到了原先没有预料到的技术问题
- 设计做错了,不得不在开发过程中改变
- 团队内部发生摩擦
- 客户跟我们想象的不一样
- 设计师、开发者和项目管理之间的沟通效率不高
- 高估了自己学习新技术的能力
二、错误的心态
在启动项目时,你憧憬着你的软件会成为软件工程历史上一座光彩夺目的丰碑。然而在开发周期结束的时候,你最终做出来的却只是那座丰碑的暗淡影子。
看到这里,你也许想要认输了——往开发计划里增加更多的时间,这样就能在软件发布之前把它做得更好。
这种做法是错误的。
三、为什么第一版做得差也要发布
除非你把软件发布出去、送到用户和客户的面前,否则你无法知道那些被做砸的东西到底是什么。
我们知道, 有些事是我们知道的。 我们也知道, 有些事是我们不知道的。 然而这世上还有一种未知的无知, 那是些我们不知道的事, 但我们尚未意识到它们的存在。
与其在与世隔绝的实验室里花3个月修复第一版的问题,不如把这3个月用于倾听来自真实世界里用户的反馈。别把时间花在你想象中的软件上,也别去想象你的用户。他们存在于真实世界里。
四、正确的心态
如果你没有被你的第一版软件搞得局促不安,那说明你还发布得不够早。
重要的不是软件的初始状态有多么完美,重要的是:你在把软件发布之后都做了些什么?
你的团队对用户反馈的响应速度会为你的软件定下基调,这是任何一次软件发布都不能起到的作用。那才是你真正需要去提高的方面。
不要再沉迷于发布一款神话中的完美软件,应该对你的用户和客户做出及时的响应,并且通过基于他们的反馈持续改进和完善你的软件来展示你对他们的诚意。
五、结论
只要有可能的话,请尽早发布你的软件。然后把剩下的时间都用在基于真实世界的反馈进行的快速迭代开发上。不管你预算的时间有多少,你终将做出更好的软件来。这是毋庸置疑的!
即使第一版做得很差劲,也要坚持把它发布出去。