Agile「敏捷式」与 Waterfall「瀑布式」

agile_waterfall.png

Agile「敏捷式」与 Waterfall「瀑布式」是项目开发过程中的两种方法论。「瀑布式」指的是项目团队需要在完成每一个阶段后再进入到下一个阶段,整个项目流程如瀑布一般只能往一层一层地往下走。而「敏捷式」则鼓励团队以协作的方式同时进行不同阶段的工作,同时还要求不断改进和迭代。简而言之,前者多是线性的,而后者则是迭代循环式的。

Complex 与 Complicated

上述的两种方法论都有着相同的目标,那就是解决问题。这里我想提一下 Complex Problem 和 Complicated Problem 之间的细微差别。

在中文的语境里,Complex 和 Complicated 皆译作「复杂」,而在英文的语境里,这两种「复杂」是有一定区别的。此处引用 Quora 的一个答案:

Complex 可以理解为 Simple「简单」的反义词,而 Complicated 则可以理解为 Easy「容易」的反义词。

换言之,Complex 意味着这个系统含有多个影响因素,而 Complicated 意味着困难,需要花费更多的时间精力。

举个例子,从某些层面上我们可以认为做蛋糕是一件 Complex 的事情,因为有很多因素 - 例如原料的产地和用量,烘培的时间与温度,都会影响到最后蛋糕的口感。但做蛋糕不一定是 Complicated 的,因为我们要做的就只是严格的跟随食谱。而解数学题则可以被理解为是一件 Complicated 的事情,因为其需要我们去思考和演算,是「伤脑筋」的事情,但这却不是一件 Complex 的事,因为数学题的条件往往很少,而正确的答案只有一个。

一般来说,在一个 Complicated 但 Non-complex 的世界里,「瀑布式」是一个不错的选择。此种情况下,一项任务很难完成,但结果是高度可预测的。通过仔细的计划和严格的执行,「瀑布式」可以将执行成本降到最低,并找到最优化的路径。

然而,在一个 Complex 的世界里,由于有太多的因素交织在一起,一切都变得更加不可预测了。因此,我们需要一个更具实验性的方法「敏捷式」,我们需要一边尝试一边获得更多的信息,并尽可能晚地做出决定,只有这样,我们才可以在一个不可预测的世界里把犯错的成本降低。

Agile 「敏捷式」的人生规划

其实,「敏捷式」与「瀑布式」的概念不仅可以应用于项目开发,还可以应用于我们日常的人生规划之中。

俗话说的好,「生活中唯一不变的是变化」。毫无疑问,我们生活在一个 Complex 的世界里,有数不清的因素可能对我们的行为和结果产生影响:健康、工作、人际关系、情绪,甚至是天气都有可能对我们的未来产生巨大的影响。在时间的长河中,我们永远也无法预测未来会发生什么。

当我即将本科毕业的时候,我发现自己还没有一个给自己设计好一个所谓的「人生计划」,对于离开校园后的种种挑战,我觉得自己还没有完全「准备好」。因此,我决定给自己一个小的「间隔年」- 在入读研究生之前给了自己一个长达 6 个月的假期,希望可以在这段时间里好好地思考人生。在这 6 个月的假期结束时,加上新冠疫情的经历,我发现我自己唯一能够想明白的事情是「我永远不可能完全准备好。」我不可能拥有所有的信息和智慧来找出最优化的人生道路,与其执着于一个完美的人生计划,还不如先去尝试,去犯错,吸取教训,再不断地做出调整。这也算是一种「敏捷式」的精神吧。

然而,敏捷并不意味着完全不做计划,我仍然有我周密的日计划、周计划和月计划,只是现在的我不再受限于那个完美的「人生计划」。我的人生规划应是开放的,并且时刻准备着面对未来无数的变化和调整。