| 发表于:2007-11-22 10:16:394楼 得分:0 |
软件开发的后‘pc'时代(二) “pc化时代”的新机会 中科院软件所软件工程技术研究中心首席研究员、中国软件行业协会副会长冯玉琳新近提出了中国软件业的“中间突破”战略,认为网络分布式计算环境下的中间件是与操作系统和数据库一样的核心技术,在软件生产走向组装化的新格局下,中间件和构件的开发将是中国软件产业的新机会:“现在做中间件正是时机,因为中间件还没有统一的标准,垄断没有形成。 技术上,咱们也基本上与国外同步,并不落后多少。做中间件还有一个好处,向上可以拉动应用软件,向下可以屏蔽操作系统。”在产业格局上,从中间件和各类软件构件“突破”,还可以带动大批中小软件企业的发展,进而构建整个国家软件产业的核心基础,推进以pc化组装为特征的“中国软件大制造”。而“大制造”已经被证明是中国it产业的优势和机会之所在。 其实国内软件生产的“pc化进程”上世纪末已正式启动。北大软件工程研究所、中科院软件研究所、四川托普集团、上海普元公司等已相继进入这一领域,专业研究推广软件构件技术。信息产业部公布的2001年重点投资计划中,软件领域的第一个项目就是采用cmm管理模式开发以构件、中间件为基础的软件工程化生产开发平台,并建立相应的国家软件库。这期间,专业构件开发和组装式生产模式也为国内越来越多的软件公司所接受。 但新机会中也隐匿着新陷阱。对中国软件业来说,一个突出问题是如何在 “大制造”中提高自己的技术含量,创建中国的软件品牌。 已有人提出,“pc化”时代的软件企业将遵循“购买而不创建”(buy, don't build)的“开发哲学”,因为基于构件的软件开发让“一切从头开始”的程序编制转向了软件组装。浪潮通软总裁王兴山对此提出了异议。他以前面提到的浪潮通软的“6+3+1+x业务模式”为例:如果说前两项(通用标准模块和行业专用标准构件)还可以从市场上购得的话(有的也需要自己开发),后两项(个性化需求和需要特殊处理的东西)就必须是自己的创造了。王说这4项的比重在不同开发企业和不同软件系统里会有所不同,“有的标准构件多一些,有的个性化东西和需要特殊处理的东西多一些”,但软件组装只“购买”不“创建”却是不可能的事情。 王提出异议的第二个理由,是他的企业要“做品牌的软件”和“品牌的企业”,其特征是“有行业咨询能力,能够提供行业解决方案”。这些方案的构件可以是买来的,但方案设计一定是面向对象的,解决的思想一定是自己的,组装的过程也一定是创造的。“神州数码、联想、东软、ibm都是这样子的,浪潮通软也是这样子的。”他评价目前中国软件企业“同质化严重”,软件生产的“pc化”转型如果无助于创建品牌甚或反过来扼杀品牌的话,那它就失败了。 在软件生产的“pc化”转型中做着品牌梦和技术梦的远不止王兴山一个人。投身“软件大制造”的中国企业家们显然不满足于仅仅充当“硬件大制造”中oem的角色,不希望那种“缺芯少魂”依样画葫芦给品牌厂商做代工的现象在自己的领域重演。 圆中国软件技术梦和品牌梦的机会,同样存在于“pc化”带来的新的分工和经营模式的转型上。按台湾省咨询软件协会副秘书长程家麒的看法,软件组装模式将改变这一领域的产业结构,产生“软件元件设计发展商”、“软件元件经销商”、“直接接触客户的软件应用系统集成服务公司”三种新的商业形态。其中软件元件设计发展商“专注于研究自己专长领域的软件元件开发”;软件元件经销商转向基于电子商务模式的软件“元件库”的建构;软件应用系统集成服务公司则会发展成为“知识服务的元件整合商”。置身每一种商业形态中的企业,都可以沿着新的分工方向创造出新的技术品牌和企业形象来。 西安交大博通公司技术委员会主席谢晓把“聚焦于更窄的领域深耕细作”看做“软件元件设计发展商”成功的根本,理由是这样做才有利于形成业务积累和技术创新。“譬如我们做管理软件就定位在采掘、线缆、纺织几个有限的行业,这几个行业的模式基本接近,便于开发出成熟的软件模块来。” 国家信息中心软件评测研究中心主任王克照批评那些不注重积累,做完一个项目解散一支开发队伍的做法是“违背软件规律”。他的看法与谢晓不谋而合:不应该把软件当做项目来做,而应当作为一个产品来积累,否则永远做不出“品牌的软件”来。 王兴山认为这个道理同样适用于软件经销商和系统集成商,“即便是ibm做软件也不会全通吃”,它也是做电信、金融几个有限的行业。做技术做品牌的最高境界表现在微软公司那句话上:“要么不做,要做就是最好。” [b]?评论? [/b] “玩”组装的背后 谈及软件企业也“玩”pc机那种流水线组装的理由时,人们往往会引用c++语言的发明者、编程大师 bjarne stroustrup那句告诫:“永远不要重新发明轮子。” 的确,既然“构件”是可以复用和商业化的,我们又何必事事“从头做起”呢?问题在于,许多事是无法用“应该”或“不应该”去衡量的。拿软件编程来说,“应该”的事多了,可如果你沿用“不应该”的老办法一样能赚到钱,又有几个肯弃旧图新的? 显然,软件产业走到“玩”组装这一步另有原因。第一是用户需求方面的原因。由于技术更新、业务转型和业务规则的修订越来越频繁,“往往一个系统还没开发完就已经过时或满足不了企业需求了”。破解的办法莫过于买现成的软件构件组装。提高软件复用率还会降低成本,这也是用户最想要的。有人统计,软件系统的开发中若复用程度达到50%,则其生产率提高40%,开发成本降低约40%,软件出错率降低近50%,时间快出一倍以上。 第二个原因是工程量激增。早期的程序代码很简单,20世纪90年代初已发展到上百万行,航天飞机有4000万行,空间站是10亿行。开发这种动辄成百上千万行代码的超大规模软件,不从“构件”开始是难以想像的事情。这就如同设计“奔腾”这种承载了960万个晶体管的超大规模集成电路必须从ip核(拥有知识产权的电路的集合体)开始,而不是从单个晶体管一样。 第三个原因是开发人员的频繁流动。如今的软件人员通常两年左右就换一家公司,被称为软件行业的 “2yl(2 year's loyalty)现象”。这在以前还不算什么,因为那时多是些短平快的小项目。现在都是大工程,若仍然一切从头开发,“跳槽”员工的活儿就得由别人接手,这是很困难的事情,会造成时间拖延和成本上升,甚至可能导致项目失败。 第四个原因是减少bug。按auscert安全研究人员杰米的说法,在受到恶意攻击的情况下,一个缺陷都可能引起系统崩溃。去年发生的“仅仅通过5行简单的html代码”,黑客就可以利用微软ie6.0中一个bug致该系统崩溃的事,曾引起了广泛关注。从工程学的角度考察,减少bug除了软件开发管理的科学化以外,选用标准化和成熟化的模块组装应是最有效的方法,后者可以把缺陷密度降至原来的1/5到1/10。 | | |
|