前几天看公司离职同事反馈的各种意见建议还有抱怨,很有价值。但是反馈中有一点,我是无法赞同的,那就是对待「试错」的态度。有两位同事抱怨说,为什么要不断「试错」? 这样多折腾? 搞得开发人员多累。客户为什么要不停的要我们修改设计稿? 多烦。
首先要说的是,我在工作中看到不少人混淆了「试错」和「错误」这两个事情。有些试错根本就是纠正错误,既然事情无法一次作对就别找别的客观理由了,一个功能,每改动一次,都会出现新的问题,这样产品人员肯定要你不停的去修正,几次三番,作为开发人员自己没意识到自己的责任,反而会把问题怪罪在产品人员头上。但实际上,这样的情况应该先看看自己做的事情是否不够严谨,自己考虑得是否不够周全。
绝大多数人都不喜欢频繁的被动的改动自己的已经「完成」的工作,文案不喜欢改来改去的,设计稿也不喜欢改来改去的,做完的功能不喜欢改来改去的,总而言之,你别来折腾我,别来烦老子,别来惹老娘…有点情绪可以理解,但我们应该认识到的事情是,如果你要把东西做的更好,就是要不停的改动,不停的改进。没有人能一次弄出来一个完美的东西,除非你是神。对了,乔布斯不是神,因为 iPhone 第一代产品现在看起来根本就是个半成品。「改动」和「改进」的差别在什么地方呢? 差别就在于改进是要使产品、项目乃至工作变得更好,能进步。
一看到「进步」两个字,很多人说,我喜欢进步,更想得到成长,但是我讨厌别人来折腾我。听起来你没错,只是因为「反馈」的信息不在你这里,而是被别人掌握,可你又从没想着去了解这些反馈。举个简单的例子,程序员和产品经理搭配工作,产品经理要程序员改动某个功能,程序员觉得你很脑残啊,要改动你怎么不早说,之前你干啥去了? 答案是之前他犯错了 – 因为经验或是能力的问题或是因为概率问题,然后他试图纠正或是校正这个问题。这是他的工作性质决定的。他不可能一次把所有的东西都做对,除非你做一个根本不会有人用的东西,没人反馈问题,因而也就看起来没问题。
不对劲儿,你说的好像哪里有点问题: 产品人员能否提前去做好调研,做好分析,做好各种准备工作,做好决策,然后让工程师一次把东西弄出来不需要频繁改动呢? 当然能啦,在过去的软件开发工作中差不多就是这样的。好吧,跟我们的环境有点远。还有一种呢,是离岸外包,需求分析说明什么的文档写出来一大堆,然后开发人员直接实现就行了,你可以想见,这样的环境下每个人都不过是螺丝钉,然后你一定又会觉得,哎呀,接触的东西太窄了,这样长此以往人都废掉了怎么办啊? 去「试错」。
还有一种不需要试错,其做法就是跟着别人的产品去复制,别人有的东西你也要有,别去问为什么,只是因为「竞争对手做了,我们也要做」。这样的做事思路下,的确不需要试错的,因为这个时候对错已经不重要了。
绝大多数中小公司做事情,就是要不停的试错,创业团队尤其是要如此,这并不丢人,也不是为无能找借口。因为真实世界真实商业环境真实的用户需求就是远比我们认为的还要复杂,只有不断尝试才可能找到可行的解决办法。柳井正写书剖析优衣库的成功之道,「一胜九败」,如果我们「一败」都没有过,就想有「胜」,未免也太自大了一点。如果你只想按部就班的做事情,我建议你还是早点想办法进入大公司进入大的机构去。
如果你没做成什么事情,那是因为你犯过的错误不够多,你试错的次数太少,或是你根本不愿意试错。
试错是正确之母。
Updated: 要知道,试错是有很高的成本的,这个成本,基本上是由公司在承担,公司心在流血啊…当然,个人也会浪费时间。如果能不用试错当然是最好的。问题是,谁能呢? 如果你知道,请一定要告诉我,我请你喝一杯咖啡。