随着年龄的增长,对人对事物的认知就越真,包括知识也是如此。
很多年前,在软件开发领域中发生了一个有趣的转变,软件变成了系统中最为昂贵、最为重要的部分。从前,硬件曾经是系统中最昂贵的部分;但现在,软件开发所需的开销超过了硬件。这正是软件开发的现状~
人是最为昂贵的资源。软件产业正在逐渐地变成一个劳动密集型的产业,而不像几乎所有其他产业那样朝着知识密集型或资本密集型的方向发展。如今,计算机硬件的成本遵循
摩尔定律()不断下降,计算机也日益普及。但是,我们的软件开发模式并未作出相应的调整,以至于无法适应这样全新的情景。
面临对软件开发人才需求的爆炸性增长,
软件工程的应对方式是:
对初学者进行一次短期的培训,教给他们相当有用的一些技术,通常这样的培训课程周期不会超过6个月,其目标是让受讯学员能够立即投入项目的开发,另一方面,软件工程专家不断的努力,试图定义完美的计算机辅助软件工程( CASE )工具,希望借此摆脱对程序员群体的依赖,可惜,这方面的努力以失败告终。 “
短期培训”的想法之所以失败,
是因为这种培训课程的时间太短,就连教授编程语言的语法都不够~它们只关心语法,要么一味强调“速成”,要么试图覆盖各种各样的技术。
但是,他们却忽视了软件开发的本质和20世纪六七十年代积累起来的那些编程经验。
参加这些培训课程的学员 根本不了解软件开发的本质。在毕业以后,他们又在自己的项目中继续重复那些前辈们早已见过的经典错误。而“CASE工具将最终消除对程序员的需要”这种观点也已经被证明是
荒诞不经的幻想,
因为“编写代码”早已不是软件开发中最困难的部分。在一些大型项目的统计报告中可以看到:它们的生产率通常是每个开发者每周10到100行代码,
这不是因为开发者写代码的速度太慢,而是因为需要花费很多时间才能弄清“该怎么写”。