刚看了熊的一篇《做软件堪比搞装修》,感觉这个比喻的确很不错,现在中国的软件业与装修业的确是很大的相似之处,特别是在混乱程度上极为相似。
但是拿软件与建筑相比也绝不是没有理由的。且不说GoF的设计模式源自于建筑师C.Alexander的理论,在整个软件开发的过程,也是与建筑设计的过程极为相似——注意,是建筑设计,而不是建筑过程。刚好前几天我曾经工作过的一家公司就是做建筑设计行业软件的,所以也接触过一些建筑设计院,大致知道一些。
建筑设计阶段基本上相当于软件的开发过程,而建筑的建设阶段则相当于软件的应用过程。而“图纸制订后基本不做更改”的猜测是不正确的,绝大多数建筑设计图纸都会在建设阶段作少量的修改的。
而且建筑设计大体上分为两个部分:建筑设计和结构设计。在建筑设计阶段是需要很多的创造性的。不可否认“建筑业是一个已经非常成熟的工业,有非常多的规范和经验”,但这些,更多的是存在于结构设计部分,而在建筑设计部分,同样存在着巨大的变数。
——顺便说一句:前一段国内很多的大项目,如大剧院、奥运场馆等的设计搞招标,那些国外设计机构能胜出,很大程度上是由于他们的建筑设计才能。事实上他们把这些项目拿下后,拿了大笔设计费,然后基本上都是用其中很少的一部分钱把繁琐的结构设计任务外包给国内的设计院去做的。
建筑业的成熟更多地表现在流程上:比如建筑和结构的分工,多次校审,会签……这些才是软件业最需要向建筑业学习的部分。
熊最后说道:
当然,装修和软件一样,同样也在规范中,但什么时候能规范到和建筑行业一样(暂时先放过建筑行业&IT硬件业的不规范行为),那可真是个不定数了.
这虽然有点悲观,不过的确是很困难的事。毕竟建筑业有了数千年的积累,而软件业的历史不过数十年。但是也要看到,软件业的发展是很快的,建筑业的变化需要十年甚至百年的时间才能看出来,而软件业的发展只能用日新月异来形容。
希望还是很大的。