【IT168 专稿】
精益软件是一种可以减少复杂性并使成本最小化的软件开发方式。Forrester的分析师John Rymer认为,当前的应用开发产业要继续发展就必须走精益软件的道路。面对变得越来越臃肿的供应商、产品、应用,以及低迷的经济,精益软件将是一剂良药。他还对应用开发市场做出大胆预测,其中包括Sun公司可能无法继续生存下去。
精益软件的舞台
John Rymer认为,正如开源曾经给软件开发产业带来一场风暴一样,现在这个产业又需要一次新的范例转换,他称之为“精益软件(lean software)”。其主要目标是简单化,即尽量避免复杂的东西。
Rymer在面向Spring开发人员的SpringOne Americas年会上说,“这是必然的趋势。虽然现在大家都在孤军奋战,但是精益软件终将被广泛接受。”他认为精益软件与Spring开发人员的关系尤为密切,因为Spring Framework正是精益软件的一个很好的案例。Spring正是为了解决J2EE和EJB的复杂和庞大而开发的。
Rymer是这样定义精益软件的:一种注重目标适用性、简单性和目标实现时间的构建、交付和运行软件的方式。精益开发方式可以最大程度地减小复杂性、启动时间和资源浪费,并且可以避免与业务目标无关的功能。开发人员可以方便地将精益软件组件与其它组件组合以实现大型系统所需的功能。
Rymer列举出七个精益软件开发的原则。第一是“使用具有目标适应性的工具和平台”;第二是“使用精益和敏捷的开发过程”;第三是“遵循为工具和应用实现可插式组件的原则”;第四是“雇佣熟练的开发人员”;第五是“利用开源”;第六个是“优化部署”;最后一个是“拥有核心应用,出租或外包开发环境”。
说到开发人员的痛处,Rymer还举例解释了精益开发在此方面的应用。比如,EJB容器需要进行大量的配置,解决该问题的办法就是Spring。再比如,基于WS-SOAP(Simple Object Access Protoco)的技术规范非常复杂,而REST(Representational State Transfer)则可以很好地解决这一问题。Rymer举了一个例子:Java EE和.NET非常枯燥难懂,对此精益开发的解决方案是使用像Ruby、Perl和Python这类的动态语言。开发人员还常常因为项目时间太长,以致迷失目标而头痛。对此解决方案则是使用敏捷开发方法,它能“更紧密地将开发人员与用户联系到一起,以实现目标”。
此外,Rymer还列举了OSGi(Open Services Gateway Initiative)、SaaS(software as a service)和PaaS(platform as a service)等用以解决复杂问题的模块化且灵活的方式。当然,我们也不能期待精益开发可以解决所有的问题。“精益软件虽然可以很好地管理复杂性,但是不能完全消除复杂性。它只是引领开发人员,而我们也需要证明它是一个可行的办法。”
2009软件开发预测
此外,作为多次出席Spring会议的发言人,Rymer还对2009年软件开发前景做出一系列预测。
他预测:首先“精益软件专家将受到欢迎”;第二是“SAP平台的影响将减小”;第三是“Microsoft将击败IBM和Oracle,占领PaaS的先机。我认为在开发这种基于云的模式方面,Microsoft要比IBM和Oracle主动得多。”
Rymer的第四个预测是“Sun将通过减少生产以缩小规模,可能无法继续生存下去。他们必须大量缩减产品生产,集中精力于他们擅长的领域上。他们不能再继续充当多面手了。”
Rymer的第五个预测是“敏捷方法将成为规范”;第六是各企业将转为面向“互联网云的产品生产”。
Rymer说,在创造力与商业之间一直有一种无形的压力刺激着这种向精益软件的转变。“现在可以说已经到了某种临界点。即使大型供应商进行了整合,公司预算也有压力,开发人员仍然想要精益软件。”
Rymer认为四个企业供应商仍将支配着软件市场。它们依次是Microsoft、Oracle、IBM和SAP,其增长率从10%到25%不等,并占有整个软件市场37%的份额。这些大型企业还将通过收购其它公司来丰富他们的市场。在过去几年里,这四家主要供应商都收购了多家公司。最少的是SAP,收购12家;最多的是Microsoft,达到29家。这产生了另一个层次的软件公司,比如TIBCO、Red Hat、Sun、Software、Progress和SpringSource。
另外,Rymer认为开发人员已经很注重框架,这包括Ruby on Rails、Zend Framework、Spring、Mono、JavaFX、Silverlight、Flash Platform、Asynchronous JavaScript和PaaS等技术。