这几天我发现了圣斗士星矢居然有所谓的天界篇和混沌篇这样的同人漫,看的我不亦乐乎。而且这两部同人作品其实并起来是一部,大致讲的是圣斗士们所处的宇宙是秩序宇宙,相应的它就有另一面被称为混沌的宇宙,秩序宇宙的大老板宙斯感应到混沌宇宙的大老板即将觉醒,他们必有一战,所以宙斯用摧毁人界的方式选择出最强的12人穿上神衣(比神圣衣更厉害)与混沌宇宙的斗士决战的故事。。。

我国也有盘古开天劈地从一片混沌中分解出天与地的传说。。。

扯的有点远了,其实我想说当今我们的世界的确充满了秩序,所以我们的思维方式都会不自觉地朝着有秩序的方向去思考。但如果我们by default用秩序的思维看待所有的事物,那么可能就会拿不到事情的重点了。

比如说编码这个活动,它是秩序的还是混沌的呢。如果有一个进度条,左边表示着完全的混沌,右边表示着完全的秩序,那么编码这个活动,其实更应该偏向混沌。因为编出同样功能的程序,其代码可能有无数种可能的能work的形态,让2个人来编写同样功能的程序,功能可以完全一样,但里面的code可能会完全不一样。

这就和造汽车或者修摩托车不同了,摩托车可以分解为很多个零件,每个零件都有其自己的标准,虽然这种分解与分析的思维方式也可以应用在编码的过程中,但是因为编码的可能选择实在太多,所以无法形成有效的标准。甚至对编码的设计的选择也不是唯一的,也就是说可能达成目标的正确的分解与分析的思维方式本身可能就有许多种不同的方式。

你看,这不是混沌又是什么。

所以,如果一个东西的本质是更偏向混沌的,我们就不能把希望全部寄托在使用秩序的手段就可以很好的控制编码中存在的风险。比方说做很好的high level low level design,分解出很细致的work item,定出非常明确的mile stone和timeline,严格的每周或者每日例会及进度审查,制定很好的code review的机制。这些东西对控制风险有用,但不是绝对的有用。

《人月神话》《人件》《重来》等等无非就是讨论的按照秩序的所有手段,也无法很好的控制软件工程风险的这件事情。所以我们千万不能抱着这些东西按步就班的都有了,就能很好的控制项目的风险了,这样的想法。正确的想法是即便这些东西都有了,对项目的风险控制也只能起辅助的作用。

我并不是说我们不要这些手段,这些手段我们当然全都要,我说的是对编码或者软件工程这个东西的混沌本质的根本认知我们还是要有正确的认识的。

那么秩序的手段只能起辅助作用,能起决定作用的是什么呢,那么起决定作用的就只能是人了,是人在编码过程中的判断,这些判断来自过往的经验和直觉。所以tech lead的判断,对项目的成败关系极大。

归根到底,像编码这种事,最重要的是人的判断,而不是管理方法。

都说铁打的营盘流水的兵,但在科技公司,情况可能并非如此。

上一篇 下一篇