信息化 频道

建立团队精神

编者按:未来的软件设计,需要自动化程度更高的开发工具和流程。

  在一般人的眼中,今天的程序员就像是一个孤独的开发者,一个没日没夜辛苦劳作的代码牛仔,聊以为伴的只有手边的Jolt可乐和吃剩的冷匹萨。

  其实,这种情况已经发生了很大变化。这当然不仅仅是因为几乎已经没有人喝Jolt可乐了,而是因为在软件行业,项目式软件开发的模式在三五年前,甚至更早就出现了。软件系统的规模变得越来越庞大,越来越复杂,分布也越来越广泛。这样的大型项目,需要的不再是个体编程人员,而是一个程序员开发团队。同时,开发未来的软件项目,需要自动化程度更高的开发工具和流程。分布在世界各地的程序员,将越来越依赖于协同工具和技术来完成大型软件项目的开发工作。

  “以前的开发人员通常各自为战。只有在团队合作或开发大型项目时,他们才会在一起工作。而如今的软件开发,正在逐渐演变成团队活动。未来五年,这样的团队开发模式,将有助于迅速提高软件的生产效率。”软件工具开发商美国宝兰软件公司(Borland Software Corp.)产品运营高级总监比尔·帕塔奇(Bill Pataky)说。

  今天的企业应用软件已经变得非常复杂,用任何其他开发方法都将难以应付。因此,帕塔奇认为,下一代的软件开发技术将出现自动化的趋势,以适应这种开发的需要。他还补充道,软件开发自动化趋势和由此带来的开发效率的提升,对于协调分散的开发队伍、保持复杂的IT项目正常运行非常有必要。

  市场调研公司顾能公司(Gartner)应用开发部研究总监迈克尔·布莱夏(Michael Brechar)表示,并非大多数公司都拥有非常先进的IT技术,因此对他们而言,自动化和可视化的编程工具更适合。“尽管他们也能进行简单的Java和. Net等的编程,但是当遇到特别复杂的情况时,他们就无能为力了。”他说,“这些公司发现,要想让普通的编程人员从事高级Java和.Net应用程序的唯一方法,就是尽量使用可视化和代码自动化等编程工具。”他还提到,几乎所有的主要软件供应商,比如国际商业机器公司(IBM)、微软公司(Microsoft)、甲骨文公司(Oracle)和太阳计算机系统公司(Sun)等,都在研发下一代可视化与自动代码生成工具,来帮助那些不太懂得技术的客户,以便他们从事复杂的开发工作。

  在未来三五年中,软件开发工具很可能具备这样的能力:一旦企业希望对业务流程做出改变,开发工具就能自动在编程中实现这种改变。目前,市场上一些主要的开发工具供应商正在考虑如何为开发人员提供综合性的工具,这些工具可以建立业务流程模型,并分解模型,然后将其转换为代码。IBM公司则希望能够更进一步,由企业用户确定业务变革方向,然后由软件建模工具从中提取出业务需求,继而将它转化为新系统的设计。不过,IBM公司的著名工程师艾伦·布朗(Alan Brown)表示,这样的系统还要过好几年才会出现。

  有些人认为,在谈到软件开发时,“自动化”几乎就是“方便使用”的同义词。微软公司开发人员部企业工具高级产品经理普拉桑特·西达兰(Prashant Sridharan)说:“‘自动化’是一个颇有意味的词语,它让我想到了工厂和机器人。其实,我们认识的软件开发还远不止写写代码那么简单。现在,软件开发的目标,更多地放在促进团队协同工作能力上,来帮助团队改善工作质量,提高工作效率。我们所开发的自动化工具,正是反映了这种客户需求。”

  将来的软件开发到底会朝着怎样的方向发展呢?我们或许可以从毕益辉系统公司(BEA)的Java开发工具—Weblogic Workshop中窥得一斑。它用“控件”或者命令组操作Java对象,这些Java对象是一些代表业务操作的代码模块。开发人员通过这个开发工具,就可以把控件与客户的业务模块(比如某库存系统)连接起来,由该控件提供到某库存系统的访问接口。在可视化的环境下,系统就可自动生成履行客户订单的代码,以及库存系统中的交易记录的代码。

  自动化对软件产品的质量控制也很重要。随着应用程序规模的逐渐扩大,应用程序与其他应用程序的数据交换也在不断增加,潜在的问题也相应地增加了。“完全孤立的简单应用程序不会再有了。”自动安全测试软件防御软件公司(Fortify software Inc.)市场部副总裁迈克·阿米斯蒂德(Mike Armistead)说道。

  供应商也明白,必须提高开发工具的协同能力。“现在的工具对于个人开发来说,确实有帮助;但是对于团队的开发行动,却无所助益。”西达兰说。微软公司将在今年发布的Visual Studio 2005团队系统版,将着眼于解决团队成员之间代码和测试结果共享的问题。

  帕塔其说,一些简单的共享流程已经开始出现,比如“共享调试”,也就是两个开发人员在同一时间不同地点查看同一代码,以查找软件的故障。几年后,主要开发工具供应商为了在开发过程中找出问题会嵌入更多的协同功能。“如果项目发现了问题,却没有及时去解决,那么时间拖得越久,修改的成本就越大。”他说。

  目前,更多的开发工作已经被离岸外包,所有这些自动化开发工具是否会威胁到编程人员的工作呢?布莱夏不这样认为。“这不仅称不上是一种威胁,而且,对于开发人员来说,想要把自己的工作做好,就必须采用这些开发工具。”他强调说。

  CMP Media LLC2004年登记版权。原文刊登于InformationWeek杂志。

  Copyright 2004 CMP Media LLC. Originally published in InformationWeek.

(信息周刊)

0
相关文章