近日加入了新的团队做新的项目,上周在一片空白的情况下赶出了一个软件原型,这周又在花了两天完成了需求分析初稿。不得不承认,这些都是体力活,因为没有充足的资料跟经验,所以做起来也很累。昏天暗地奋战一宿总算完成了,却总觉得自己提交上去的就是一些完全脱离本质的废纸。
就这个问题,最近总是陷入了整体与局部的矛盾中。到底现如今我们做事是应该快速试错不断迭代还是循序渐进稳扎稳打?就目前来看,前者似乎更有优势,然而我想,如果我们没有坚持住自己的底线,会不会很容易变成一只无头苍蝇四处乱撞呢?
诚然,现在社会的节奏越来越快,按部就班已经不能适应外界不断发生的变化了。正是这种不稳定才要求我们小步快跑来应对各种易变的因素。我们越来越适应这种快餐文化了,但是现实告诉我们,快餐吃多了人会变得不健康。如果我们为了完成一些指标一味地追求一些小而快的方法,有作弊嫌疑地东拼西凑,那我们很难达到专业的水平。我们难以形成一套标准,因为为了快,什么事情都是可以放弃的。
快速试错还会影响我们的思维方式,我们更容易接受花时间去调整错误,而不是花大力气一次把事情做好。虽然在很多时候快速试错很管用,但是我们很容易就会疏漏一些很隐蔽的问题,假如我们走大运漏过了一两个关键点,那么面临的结果将是难以接受的。
稳扎稳打也许会有带来更多的问题,在一切未知的情况下,如果我们选择闭门造车,也许还不如躺在床上睡大觉,稳扎稳打的前提是我们对问题领域已经有定性的了解,只有对事情有了定性了解后稳扎稳打做定量分析才会有好的效果,无异于盲人摸象。
其实,我还是很赞成快速试错的方法的,正如我经常提醒自己的,任何事情都不能完全准备好了再去做,这是一种病态心理。但是任何事情都有两面性,只有我们能认识到他的两面性我们才能取其精华去其糟粕。所以,问题是我们怎么去其糟粕呢。
首先,我们得知道处理什么问题采用什么方法。正如敏捷开发一般适用于小型项目,对中大型项目就不适合了。再次,在问题内部也可以兼用两者,大方向上要稳扎稳打,小细节上快速试错。最后就是接纳不完美的心态,无论是稳扎稳打或是快速试错,都会有问题存在,只有把问题暴露出来才能把事情做好。如果没有接受不完美的心态,项目就不会有稳步推进的一天,按照香农的信息论,接受的信息越多,问题的不确定性就越少,即使接受的是错误的信息。