软件开发并非表面看起来那样软性

软件开发的早些时候,人们都竭力地为开发好的软件系统而奋斗。越来越多的人被投入于解决问题,而结果就是让事情变得更糟。但随着最近我们亲眼所见的一个新的有趣的现象:那就是少数几个开发者如今能够开发出成百上千万人使用的软件系统。那么这是怎么做到的呢?

非技术的人们都会认为软件是软性的或者是很容易改变的。由于看不到任何可见的具体细节,并且也没有什么可让人们揭露的东西,因此人们总会认为软件是能够凭着一时的念头就进行修改。当然,实际上并非这样。软件,就像任何的机械软件系统,都有一定的设计和架构;它并非表面看起来那样软性。

然而,商业的加速发展要求软件能够有更灵活的变化。旧的开发方法已经完全不能适应如今商业发展的需求。如果使用分布式模型,这些改变就不可能做到,整个开发的周期就会过长,软件系统会导致过度设计,花费也会过多,并且整个工作的完成状况时常也不够好。

九十年代,一些软件开发的快捷方法崭露头角。虽然它们在细节上有所不同,但它们大都认同,软件开发需要进行大量的重新构想。首先,软件必须接受改变。今天的假设和需求很可能在明天就会改变,而软件就需要很快地对这种改变作出反应。为了能够应对挑战,快捷的方法提倡简明。用尽可能简化的软件系统,满足今天的需求,并且在明天来临的时候能够立即准备适应。

再分解能够让快捷的软件系统适应改变,并且是优雅而灵活的。就像一名室内装潢设计师不断地更改你的家具布局,快捷方法的开发者在修订软件代码的时候也是将整个产品作为一个整体来改进。软件代码在不断地修改,这让我们能够获得最简单最有效的软件系统,并且它是反映出我们当前的需求的。

为了确保所作的更改不会破坏软件代码,快捷方法引入了单元测试。每个快捷项目的展开,就构成了单元测试的基础。每项测试都是致力于软件系统的单个元素,并且保证这个元素能够按照预想的情况来工作。一般说来,这些测试都不断地对软件代码运行作出测试,并且在出现错误的时候就需要立即修复。

使用快捷方法开发的软件系统是更为成功的,这是由于它们是不断进化并且能够适应新的问题的。就像有生命的有机体,这些软件系统总是不断地重构,动态地适应变化的需求。毫无疑问,快捷方法对如今我们开发软件的思考有着重大影响——动态的并且是持续不断的。

其中的秘密在于,其中有效的努力仅是由很少的一部分人完成的。只需要一点的纪律加上澎湃的激情,高素质的工程师就能够独立开发出高度精密复杂的软件系统。

加上现代编程语言,良好的程序库以及快捷方法,比起一群中庸的开发者大军,这个领域的一些聪明的人就能够将事情做得更快更好。

陕西弈聪软件信息技术股份有限公司
电话:13679229477    02989322522
陕西省西安航天基地神州四路科为城墅20栋4301