“软件工程经济学之父”柏瑞·贝姆: |
|
诞生伟大的软件公司中国还需等10年 |
|
柏瑞·贝姆:美国国家工程院院士,美国南加州大学TRW软件工程教授,系统与软件工程中心创始人。
□本报记者 原诗萌
“中国软件业诞生像微软、IBM这样伟大的公司还需等10年!”近日,有“软件工程经济学之父”之称的柏瑞·贝姆(Barry W. Boehm)在接受《科学时报》专访时说。
柏瑞·贝姆还表示,随着物联网、云计算等新兴IT技术与服务的兴起,软件工程正酝酿巨大变革,中国应抓住机会,迎头赶上。
柏瑞·贝姆是在参加4月26~27日由中国科学院软件研究所和International Journal of Software and Informatics(IJSI)杂志共同举办的一次国际会议期间接受《科学时报》记者专访的。在此次会议上,因为在促进软件所与国际学术界接轨方面所作的重要贡献,柏瑞·贝姆被授予了中科院荣誉博士学位。
正在酝酿的变革
在软件工程学领域,柏瑞·贝姆是一位影响至深的人物。
1981年,他出版了《软件工程经济学》一书,奠定了软件成本估算领域的基础。他1983年提出的“软件工程七条基本原理”被评价为:不能用数学方法严格证明,但此前提出的软件工程准则都可以由此蕴涵和派生。
对于软件工程未来的发展,柏瑞·贝姆表示,物联网、云计算等新兴IT技术和服务的兴起,使软件工程遇到了新的挑战,也酝酿着新的变革。
“物与物的连接所构成的系统非常复杂,因此需要有创新性的方法来支持它们之间的接口、互联与协作。”柏瑞·贝姆说。
对此,中国科学院院士、IJSI主编陆汝钤也持相似看法。他告诉《科学时报》记者,软件工程与网络的关系越来越密切,许多软件工程或多或少都在向网络方面转移。
“很多软件做得好不好,关键就看到了网络之后还行不行。很多事情到了网络上就完全不一样了。”陆汝钤说。
柏瑞·贝姆还认为,软件开发过程中如何平衡敏捷性与可靠性,亦是未来软件工程的重要挑战。
他告诉记者,软件工程目前正面临的一个矛盾是:一方面,软件开发需要更加敏捷,更易于变更,以满足新出现的需求;另一方面,人们又要求开发出的软件安全可靠,以保证产品质量。这需要有更高的技巧来平衡二者之间的关系。
中科院软件所副总工程师、互联网软件技术实验室主任王青也看到了这一矛盾。她认为,这意味着软件开发正朝着快速响应用户需求、由用户驱动的方向变革。
王青告诉《科学时报》记者,过去软件的功能和服务完全由开发者说了算,现在则是由用户体验在驱动软件的演化。因此,如何快速响应用户需求,给软件开发的方法和思路都带来了变革。
王青还表示,随着应用商店等软件社区的兴起,软件开发人员和用户的界限正在模糊,许多人既是软件的提供者,也是软件的使用者。
“软件工程更像一个流水线和平台,提供专业的环境和知识,让非专业人员在上面开发软件供用户使用。这些变化也给软件工程带来了新的挑战。”王青说。
中国如何把握机会
在新的挑战和变革面前,中国软件业应如何把握机会,提升竞争力?
对此,柏瑞·贝姆表示,要想提高软件业的竞争力,不仅要有软件工程的发展,还应重视相关基础设施的建设。
柏瑞·贝姆告诉记者,以美国硅谷为例,这里不仅有优秀的软件开发人员,还有设计人机界面的工程师、风险投资家、律师等等。这些基础设施为软件产业提供了良好的发展环境。他建议中国也参照这种模式,注重产业链的完善与发展。
“国际化”亦是中国软件业需要向美国软件业学习的重要方面。在柏瑞·贝姆看来,美国软件业在国际化方面,拥有成熟的架构和知识体系,能够快速为适应本地化提供相应的机制和措施。
而反观中国软件业,虽然已经作出了一些尝试和部署,却仍存在不少障碍。柏瑞·贝姆认为,英语水平拖了中国软件业国际化的“后腿”。
“比较一下中国和印度就可以知道。印度诞生了很多国际化的软件公司,他们除了拥有优秀的开发人员,还有专业的业务人员、财务人员,在进行国际交流和分公司建设等方面,他们更具有语言方面的优势。”柏瑞·贝姆说。
不过柏瑞·贝姆也表示,中国的学习能力很强,“未来很快会追上”。当记者问及还需多少年中国才能诞生如IBM、微软这样伟大的软件公司时,柏瑞·贝姆面带微笑,伸出了十个手指说:“十年!”
从软件工程师到系统工程师
软件业的崛起离不开软件人才的培养。作为南加州大学教授,柏瑞·贝姆对于培养软件人才有自己的一番心得。
柏瑞·贝姆认为,软件人才应具备一项重要技能,即能够把理论、原则和实践充分结合。
据了解,柏瑞·贝姆在南加州大学有一门开设了15年的软件工程的课程,一直很受欢迎,每年注册的学生有100多名。
在课程中,学生组建自己的开发团队,与真实的客户见面,了解客户在系统服务、办公自动化或者社区服务方面的一些需求。
了解需求之后,学生将帮助客户确定功能,然后进行项目的计划、设计、开发和交付,并培训客户使用这样的系统。
现在中科院软件所互联网软件技术实验室担任副研究员的杨叶,就曾在南加州大学学习过这样的课程。
据杨叶介绍,2001年时,她曾负责一个开发团队,所承担的项目是为南加州大学开发一个校园开发管理的支撑系统,包括内容管理、项目管理、客户关系管理、文件管理和讨论区等诸多功能。
“在开发过程中,我们得到了系统的训练。比如,我们学会了如何跟客户沟通和协商,如何确定产品的需求,评估市场上有哪些商业产品或服务可以集成利用等等。”杨叶说。
柏瑞·贝姆告诉记者,首先应该认识到,要培养系统工程师,而非单纯的软件工程师。
“提起软件工程师,大家都会觉得他们编程很厉害。但在现在的软件产业中,很多软件开发的前期工作更为重要。”柏瑞·贝姆说。
他认为,作为一名软件开发人员,应该走进公司,去了解一个组织对当前新兴技术的需求。以及这些需求的优先级是怎样的,现有系统和未来系统相比有哪些缺陷,如何改进,如何评估云计算等新型计算技术,以及如何改进公司架构等一系列问题。
“编程可以帮助我们开发一些系统的原型,但这些早期的分析活动比编程更重要。”柏瑞·贝姆总结说。
“要想提高软件业的竞争力,不仅要有软件工程的发展,还应重视相关基础设施的建设。”
《科学时报》 (2011-05-12 A3 技术·经济)