歼击机设计与软件开发
跟北航的朋友借了本北航出版社2001年版的《飞机总体设计》。我对飞行器设计一窍不通,也不想学习,主要是看到这本书的主编是大名鼎鼎的顾诵芬(歼8,歼8-II),才拿来翻一翻。没想到,才看了前言就发现,沈飞这些飞机设计专家们谈到的飞机总体设计问题,和今天我们遇到的软件开发问题几乎一模一样。看下面这两段话(我猜这两段话就是顾诵芬写的):
“……这一成功(指歼教-1的成功),却给部分同志一个错觉,误认为飞机设计并不困难,好像20世纪50年代学校教的那些材料也够用了。这种思潮一直延续到文化大革命以后,甚至航空院校认为飞机设计没有什么好教的,为了评职称、评成果,大批搞飞机设计的教师都转向了结构有限元分析和优化设计,以至于20世纪80年代以来的飞机设计专业毕业生分配到设计研究所后,大都一时拿不起工作,要经过几年实践之后才能逐步胜任工作。”
“另一方面,改革开放后与国外航空发达国家一接触,发现我们和国外歼击机的差距关键在功能系统,特别是航空电子火控系统。飞机设计已不能再停留在气动、结构、强度等专业,要设计出现代化的歼击机,总体设计人员必须懂得组成优良歼击机的各个系统。由于各种系统的专业技术不断发展,系统设计的人员越来越深地陷入了本专业的技术发展,而忽视了本专业在飞机总体中的作用,因此摆在总体设计人员面前要权衡折衷的问题越来越多。飞机设计实际上是一门能够合理地折衷各种专业矛盾,而使飞机整体最优的工程专业。……”
前一段话说的航空院校不重视应用,只重视评职称、评成果,这不和现在大多数计算机系的情况差不多吗?说毕业生毕业后一时拿不起工作,要经过几年实践之后才能逐步胜任工作,这我自己太有体会了,大多数有用的知识不都是在工作中学的吗?
后一段话就更能说明问题了。飞机总体设计在本质上是一门权衡和折衷的艺术,软件的总体设计又何尝不是如此啊!
我见过不少程序员一心想成为系统分析员或软件架构师,却总也不愿意承认从全系统角度考虑问题的重要性,总也不相信好的系统都是无数次权衡和折衷的结果。他们把自己绝大部分时间都花在钻研某种时髦或自己最喜欢的技术上,并坚定地相信该技术可以帮他们解决所有问题。
——我不是说这样做不好,我的意思是说,像这样持技术至上观点的人非常适于做项目组内的技术攻关者,但绝对不适合做系统分析员或软件架构师,因为他们很少考虑客户的意见、用户的习惯、资源的限制、市场的制约等等重要问题,在遇到困难时,他们也很少愿意在技术上做出任何让步,“权衡”和“折衷”对他们来说,也许只是另一个世界里的词汇罢了。
再重复一遍:“飞机设计实际上是一门能够合理地折衷各种专业矛盾,而使飞机整体最优的工程专业。”把这句话里的“飞机”换成“软件”,也一样成立。