软件的体重

塞班的失控

Nokia的没落,是科技史上的大败局事件。除了大家熟知的战略决策层面问题,讲个小故事,瞅瞅还有哪些背后的玩意儿导致了它的帝国覆灭。

故事来了:

一位Nokia的退休主管讲:我有一部E71,在手机锁机状态下,会弹出个对话框盖住提示信息。我问:“能把这个弄小5毫米吗?”。

他们研究了一下手机代码说“找不到那行可以将它缩小5毫米的代码,手机上有2000w行代码(2000w行的代码量已经接近windows xp),找到它是不可能的。”

仅仅改动一个对话框尺寸都会如此,说明事情已经到了失控的边缘。

软件的体重

软件的体重就是代码量。现代软件工程的各种规则,框架和工具保证我对代码的控制能力。与此同时,实践的越多,你会更加意识到方法的界限:没有魔术可以减小真正的复杂度。

能反映复杂度的代码量增加一倍,维护成本要增加很多倍。而一个开发好的系统,可能开发人员1个,后续的维护人员占据就要到1-1.5个之间,亦或更多,除非你说旧系统砍掉或不管,否则不断的演化就是人力黑洞(软件开发是一场长跑,你是胖子当然跑起来比较费力,软件的维护成本通常占总成本的40%-80%)。

当然阻碍Nokia翻身的还是其作为曾经成功的公司所培养起来的现代官僚主义。很多公司都不能幸免,包括大型的互联网公司,也是不断在于这样的文化搏斗,斗不过就危险了,这些组织上的癌症要是打不过你,也就没有行业新旧的兴替了。

从类比生态系统的进化来说,组织患上病症是正常不过的事情,是衰老的天命。只是某些公司的治理比较聪明有效,是超级赛亚人,青春期长一些。天才是超级赛亚人,不常出,故珍贵。

感想

大家多数时候是在用工具工作,对工具的生存历史都不太关心,觉得作为从业人员,缺少一点点这方面的八卦精神也是不好的,或许说明不是真正的热爱,咱也看到了八卦起历史来,微观层面总有精彩故事。:)

教训经验

  1. 再次重申KISS圣经

  2. 软件开发是长跑,不断锻炼自己,保持一个轻体重,或通过SOA好好治理吧

  3. 兴衰是常事,看《浪潮之巅》你能懂更多