锤子和敏捷

用锤子钉钉子是日常劳动的一种,利用惯性让力量集中爆发,从而让要费很大力气的事情变得轻松。

一枚钉子,立在墙上,如果是强行摁,很少有人有力气能将钉子摁进去。

锤子为什么可以呢?因为使用锤子需要有节奏,首先是准备,积攒,然后挥动,冲刺,最后接触钉子,爆发。

其实我想说的是敏捷。

题目里的敏捷,我指的是敏捷开发。大致意思,是以前开发很久才上线,然后又花很长时间开发 2.0,上线,这样的时代已经过去了,应该更早的上线,接触用户,听取反馈,更快更小的改进。

为什么?我的理解是成本的考虑,节省金钱和时间的成本。世界变得太快,今天炙手可热的东西,明天就是一堆垃圾。软件开发也是一样,没人弄得清自己想要什么,没人接受的了大把时间和金钱的投入,换来自己不想要的软件产品。

做做看吧,做出来我才知道自己想要不想要。为了适应这样不稳定,不确定,不靠谱的需求,就有了敏捷。

敏捷有他的好处,它让需求具象化,可以操作可以把玩的产品,比需要想象而不确定的需求,更生动,更容易判断。

敏捷本身无所谓好坏,只是一种工具,但敏捷这种工具,容易丢失节奏。

传统的软件开发流程,比如瀑布或螺旋,有很明显的阶段,这个明显又死板的阶段,客观上把握了节奏。

到了敏捷开发,因为每次修改更容易,更轻量,代价更小,很容易出现对软件系统随意修改的情况。如果开发人员由于松懈,或出于尽快完成的目的,容易将一些本来需要仔细、系统思考的修改,变为不经意、随意的修改,或者说,用不合适的工具,强行完成了任务,而这些任务,本来是需要站在整个系统层面去思考的。长此以往,系统就会出现漏洞,变得难以维护,生产效率降低。

类比敏捷开发和钉钉子,缺少节奏的敏捷开发,过程就是:前几锤子很轻,很有目的,后面不在准备、冲刺、爆发,而是通过锤子摁钉子,花的力气很大,效果确很差。

标签: none

添加新评论