[Engineering] 工程趣闻(一):如何落子

未来是不可预测的

[Engineering] 工程趣闻(一):如何落子_第1张图片

定式,一般是指围棋中,经过棋手们长久以来的经验累积,
而形成在某些情况下双方都会依循的固定下法。

一般通常发生在布局阶段的角落地区,
但有些在中盘时的某些固定下法,也被称作中盘定式。
围棋定式的总数在一万种以上且仍不断增加中,但常用的仅约数百种,
而且随着各时代对围棋的见解不同,旧定式也有被修正的可能。

软件工程师每天的工作,像极了围棋比赛中的落子,
软件工程师们面对的都是自己目前不知道答案的问题,
他们只能凭经验得到大致的方向,
而且,每次决定都会对以后的局势产生影响。

然而,我们有什么理由相信历史经验的正确性,
过去的经验根本不适合现在这个从未被遇到过的问题啊,
贪心的选择目前看到的最优解,真的好吗?

也有不少人怪责前人挖坑后人遭殃,
那是站在现在的角度来看的。
无论采取什么办法,未来还是会有未料到的情况出现,
如果换做我们,该怎么做呢?

变化只能被适应

[Engineering] 工程趣闻(一):如何落子_第2张图片

刻舟求剑是《吕氏春秋·察今》中记述的一则寓言。

说的是楚国有人坐船渡河时,不慎把剑掉入江中,
他在舟上刻下记号,说:“这是我把剑掉下的地方。”
当舟停驶时,他才沿着记号跳入河中找剑,遍寻不获。

该寓言劝勉为政者要明白世事在变,若不知改革,就无法治国,
后引申为不懂变通、墨守成规之意。

软件工程师讨厌需求变更,就好像需求不应该变更一样,
这是不切实际的,不符合瞬息万变的客观世界。

因此,极限编程的支持者们,认为软件需求的不断变化是很自然的现象,
是软件项目开发中不可避免的,也是应该欣然接受的现象。
他们相信,和传统的在项目起始阶段定义好所有需求再费尽心思的控制变化的方法相比,有能力在项目周期的任何阶段去适应变化,将是更加现实更加有效的方法。

我们都想一劳永逸,软件发布之后,就再也不想动它了,
可能这种认识本身就有问题。
软件这种解决方案,能不断的与问题一起生长,可能这才是它的全貌吧。
刻在光盘上的,只是这个生命体在某个瞬间的照片罢了。

参考

定式
贪心法
刻舟求剑
极限编程

你可能感兴趣的:([Engineering] 工程趣闻(一):如何落子)