学软件开发前景好吗?
我只是一个刚迈进软件世界的草鸟
不知道自己学出来了到底做什么
学软件开发前景好吗?
我只是一个刚迈进软件世界的草鸟
不知道自己学出来了到底做什么
IBM软件集团Rational软件总经理,Eclipse创始人之一,Eclipse主要推动者,Danny Sabbah 博士在上周的IBM 2006开发者大会为我们带来了精彩的演讲。
Danny Sabbah:大家早上好,谢谢各位,很遗憾我不能用中文介绍,我希望我讲的话题大家能够明白,今天讲的是软件开发的前景以及IBM所看到的一些发展态势,特别Rational方面发展的态势。我会讲到我们面临的一些挑战,我们都是软件开发商,我们都面临着很多的挑战,我会具体分析这些挑战,然后介绍一下我们认为这些挑战将会对软件开发产生什么样的转型影响,我们如何能够在这种变化的条件下,如何面对这些挑战实现既定的目标面向实现服务的架构也就是SOA。
如果看一下今天商业环境,特别是软件开发的商业环境,我们发现我们受到速度、全球化、新的管制、特别在全球范围内开展业务的时候,我们必须要建一个软件,它能够适应于各种不同管制的要求,同时也要被迫迅速做出变化,这样才能保持它的竞争力,同时也能够使许多所服务的企业从中受益,我们受到上述所有因素的挑战。除此之外还有非常有意思的转型,也是我们在今天的市场中所看到的,我到中国来的时候就感受到这一点,而且感受非常强烈,很多商业模型都在发生转变,如果想一下一个新兴的经济体,没有任何一个经济体可以像30、40、50或100年前的方式发展,所以信息技术确实触发了迅速的变化,也触发了技术生态系统的迅速变化。这些企业必须要随着速度的要求来重新定位自己来发展,这是他们面临很大的挑战。
我提出了一些全球管制方面的例子,我们必须要应对这些管制的变化,我们因此要做出这样那样的变化来迎接它。这些管制是面向业务的发展方面,我们作为开发商必须要改变我们的重心,特别在新的市场当中要更加注重新的市场新的商业模式以及不断产生新的想法。
这是从另外一个角度来说,我们在实施有效解决方案时候看到的情况,即使在新的市场当中,即使我们面临崭新的业务,你们很快会发现你在创造一些软件,你在创造自动化,特别在IT资产中实现软件和自动化,这是随着要求的变化,随着应用不断更新,随着管制不断变化对你提出的要求,而且你发现软件演进方面有一些问题,虽然你不是长期进行软件的开发,但是软件演进变得越来越难管理了。
这是一个电子器材零售商的例子,从其中可以看到所有的应用资产之间的相互关系和相互依赖性,这是一个中等规模的零售商,并不是很大型的企业,这只是四页报告中第一页。正是在这种特定的类型下,这是一个特定软件生命周期的环境,我们现在面临着一个事实,就是我们要加速自己的变化,要不断创建、修改、管理IT资产的演进,所以情况有所不同,在一个集成开发的环境之下,你需要坐下来,然后创建简单的Java代码,写一些简单的Java程序或者C++程序已经够了,现在情况完全不同了。
现在很多企业和业务人员都面临的问题,如果他们不能应对这样的挑战就不能取得成功,因为在今天以IT为主导的环境当中,我们都面临全球的竞争压力,你或许要改变自己,或许要让自己实现自动化,或者扩展自己业务生产的领域,或者进入一个新的具有新的管制性条例的市场当中,否则只能死路一条。所以我们要了解软件开发的角度就是当我们创建出一个应用的时候,当我们在写可重用代码的时候,当我们想要建立一些解决方案来解决业务问题的时候,我们必须要考虑,我们不仅要解决今天的问题,而且我们所建立的软件应该是能够实现迅速演进的,因为不用多长时间,这张图上所显示的相互关系,随着公司的购并,随着新业务的出现,随着进入新的市场,这样复杂的相互关系都是我们大家要面临的新问题。
软件开发作为一个规则,也必须要继续保持下去,在我们讨论业务的速度以及业务转型速度的时候,实际上我们已经对个人的生产力提出了很高的要求,同时对大家作为整体软件开发的社区和一个群体给了更大的压力,我们必须要更快做出这样的软件,在今天的环境当中,你所要做的就是你可以在北京四处看一下,你可以看到各种各样起重机在不断工作,来建立起高楼大厦。
北京是一个很好的城市,我们实际上可以更快的建立一个大型的购物商场,也许建大型商场的速度要比一个公司实施一个ERP的系统要更快一些,所以我们今天面临的主要挑战就是让我们软件或者让软件的资产能够尽快地运转起来,使我们在不断前进的过程当中,我们可以在很短的时间内也可以和城市共同的发展。
现在可以看到互联网以及个人电脑的革命,实际上通过这些革命把计算的概念带给每一个人,我们不断开发各种互联的装置,我们在利用带宽,这时候信息技术和计算的资源实际上已经影响到了所有人的生活,而且是每天的生活。所以社会联网、社会计算的出现已经给我们带来了很多的压力,要求我们做出更快的变化,而且要求我们提供更多软件的资产,我们要以一个可管理的循环模式来管理它。同时要有开发工具和开发平台,你必须要考虑一个事实,如果只是着重于提高个人开发者的劳动生产率已经不够了,而且也不具有吸引力的,我们必须要在广泛的范围之内提高它的生产率,这样才能确保我们自己能够随需应变,而且能够适应情况。
我们要考虑到业务的转型,还有应用的采纳,所以作为一个真正的软件开发者必须要考虑新的变化,而SOA的概念就是一种集成的概念,是把现有的资产集中在一起,可以提高能力。现在全球部署还有新兴的商业模式,如果我们不谨慎,不了解软件的演进,不考虑建立一个软件开发的生命周期管理的话,我们在整个进程中就会出现中断,我们就会迫使自己不得不在商业和社会的演进过程中放缓我们的脚步。
软件工程化正在成为核心和具有创造性的资产,对于任何社会都是这样,如果我们不能把它作为一个定律遵循的话,我们就会看到它不是一个资产,而将会成为前进道路当中一项障碍,阻碍我们的步伐,所以我们如何能改变这个状况呢?