管理软件的新生存法则

发表于:2008-04-18来源:作者:点击数: 标签:法则生存管理软件
关键字:管理软件 生存法则 ----有项目难过,没项目也难过。这是目前困扰很多管理软件提供商的不解难题。这个问题的背后是软件产业生产率低、失败率高 传统生存法则的不解之症 ----自上个世纪40年代出现软件以来,尤其是1955年第一家软件公司CUC成立以来,软
关键字:管理软件 生存法则
---- 有项目难过,没项目也难过。这是目前困扰很多管理软件提供商的不解难题。这个问题的背后是软件产业生产率低、失败率高 

传统生存法则的不解之症 

---- 自上个世纪40年代出现软件以来,尤其是1955年第一家软件公司CUC成立以来,软件产业开始独立于硬件产业,并从此走上了高速发展之路。微软也因此而一举登上了全球市值最高的宝座。不过,在全球保持高速发展的背后,软件产业却也有令人心酸的一面。20世纪90年代中期,业界曾对软件产业的现状进行过3次重要且非常著名的分析。这3次分析均得出了相似的结论,即软件项目的成功率非常低。如果说"成功意味着成本、进度、质量、特性集和创造利润等方面均达到了客户期望"的话,那么只有10%的软件项目取得了成功。 

---- 不仅如此,在新的市场环境下,用户对软件需求的个性化越来越强烈。计世资讯(CCW Research)认为,用户的有两个表现:空间和时间上的个性化。"空间上的个性化"是指不同用户对软件系统的需求是不一样的。例如,不同行业的用户对ERP系统的需求是不一样的;同一行业的不同用户对ERP的需求也是不一样的。"时间上的个性化"是指同一用户在不同时间不同发展对软件系统的需求是不一样的。例如,一个企业在实施管理软件系统之后一年,甚至半年,市场环境变了,企业规模变了,其管理模式、组织机构、业务流程都要随之改变。管理模式等的变化必然要求企业管理软件也必须随之变化。无法深度用户"个性化"的需求,也使管理软件的应用满意度非常之低。 

---- 出现上述情况并非偶然,而是传统的应用软件开发模式、目前软件产业基本矛盾的必然反映。计世资讯(CCW Research)认为,现阶段软件产业的基本矛盾是不断增长、日益复杂的社会需求与落后的软件生产力之间的矛盾。和美国、日本、印度等软件产业发达的国家相比,中国软件产业起步较晚,其发展历程与现状均有着鲜明的"中国特色"。在"不断增长的社会需求与落后的软件生产力之间的基本矛盾"下,计世资讯(CCW Research)认为,现阶段中国软件产业表现出来的主要矛盾是"用户需求的个性化与软件产品的通用性之间的矛盾"。 

---- 处于这样的基本矛盾之中,又没有非常好的技术与方法来解决这个矛盾,自然使传统的软件生存"染上"了不解之症。 

银弹的出现:业务流程管理平台 

---- 为解决软件产业的基本矛盾,人们一直在进行着持续不断的努力。概括起来,人们的努力有两个方向,一是软件工程、软件项目管理的方向,一是软件技术革新的方向。从诞生到现在,软件产业涌现了大量的技术革新。每一次的技术革新都向解决软件产业的基本矛盾迈进了一步。在所有的技术革新中,软件平台化是最有意义的,也是最有生命力的。 

小资料:软件平台的定义,业务流程管理平台与其他软件平台的关系 

---- "软件平台"并非一个新鲜的词语,它由来已久,也早为人们所知道,并在软件开发中应用已久。例如,操作系统、数据库WebLogic中间件都是人们早就熟悉的软件平台。但"软件平台"的定义是什么,它应包含哪些基本要素,它的作用又是什么,一直以来业界都没有一个很明确的说法。 

---- 计世资讯(CCW Research)认为,"软件平台化"的本质是将复杂的软件系统分层,是分层理论在研发软件系统中的具体应用,并由此而找到软件开发中标准化与个性化之间的恰当的契合点。一个软件系统,尤其是企业应用软件系统,往往是一个复杂系统(甚至是巨型复杂系统)。对于这样的复杂系统的分析与实现,分层理论认为,降低其复杂性与提高效率的最好办法是将系统分层实现。软件平台化的思路正源于此。 

---- 计世资讯(CCW Research)认为,软件平台是指用来构建与支撑应用软件的独立软件系统。它是开发与运行应用软件的基础,是任何一个应用软件得以实现与应用的必要条件。软件平台有两个基本要素,即支撑环境和开发体系,其中支撑环境是指应用软件系统开发与运行的基本条件,开发体系是指开发与维护管理应用软件的工具与方法。按此定义,可以发现,操作系统,如WindowsUnixLinux等是软件平台;数据库,如Oracle9i、SQL Server等是软件平台;一些中间件,如IBM的WebSphere、BEA的WebLogic等也是软件平台。 

---- 事实上,软件平台不仅有很多,而且还是分层次的。计世资讯(CCW Research)认为,目前软件平台可分成以下三个层次:操作系统平台、软件基础架构平台、业务流程管理平台(如图1)。其中操作系统平台是最底层的软件平台,其作用在于实现了应用软件与硬件平台的交互;软件基础架构平台是在操作系统平台之上的层次,其作用在于为复杂应用软件提供技术基础设施;业务流程管理平台是软件平台的第三层,其作用在于实现软件开发过程中技术和管理业务之间的分离。在每一个层次,软件平台都为其上一个层次屏蔽了自身及以下层次的技术细节,每一个层次都对提高软件生产力具有重要的作用。当然,软件平台的分层是与时俱进的,是不断发展的,软件平台的第三层――业务流程管理平台就是现在诞生的,以前所没有的。  

 

---- 在软件平台的每一个层次中,又包含有很多具体的软件平台。例如,操作系统平台包括Windows、Unix、Linux及嵌入式操作系统平台等;软件基础架构平台包括数据库平台、中间件平台、EAI平台、Web Service平台等,而数据库平台又有Oracle9i、Sybase、DB2、SQL Server等软件平台,中间件有WebSphere、WebLogic等;业务流程管理平台有思维加速的TIB、东软金算盘的VP、用友的UAP、金蝶的BOS、SAP的NetWeaver、BAAN公司的DEM等;软件工厂有KCOM的『KCOM 商业工程』。 

---- 从上个世纪50年代中期第一个简单的批处理操作系统诞生到现在,软件平台已经历了50年的发展。在过去的发展历程中,有三个标志性的软件平台,即操作系统平台、数据库平台、中间件平台(应用服务器)。正是这三种软件平台的诞生,极大地推动了软件平台及软件产业的发展进程。计世资讯(CCW Research)认为,进入21世纪,软件平台出现了一些新动向,最为主要的有三点,一是软件平台市场表现出极大的混乱,二是中间件平台开始向软件基础架构平台转变,三是业务流程管理平台的诞生。 

---- 业务流程管理平台是一种技术创新,它使软件平台又多了一个层次,并将应用软件的业务逻辑和开发技术,使得应用软件的开发者可以仅关注应用的业务任务,而不必关注其技术的实现。这使管理与业务人员参与应用软件的开发成为可能。  

 

---- 计世资讯(CCW Research)认为,业务流程管理平台是指以业务导向和驱动的、可快速构建应用软件的软件平台。业务流程管理平台包括集成应用平台、开发体系两个部分。从技术角度分析,业务流程管理平台为复杂应用软件系统的开发提供了一个基本框架,并有与之相应的、方便易用的开发与维护管理工具。这个框架给出了一些复杂应用软件的基本组成部分和实现方法,并且预置了很多供参考的软件模块。有了这样的准备,在业务流程管理平台之上开发管理软件就可以降低复杂性,省去很多基础性的研发工作,从而大大缩短研发周期,提高研发效率。具体来说,业务流程管理平台能满足复杂应用软件系统开发的如下要求: 

---- 1. 速度要求。通过业务流程管理平台提供的基本框架,以及预置好的模块,软件提供商能很快地研制出用户所需要的复杂应用软件系统。 

----2. 灵活性要求。通过业务流程管理平台提供的开发与管理工具,软件提供商能很方便地满足用户个性化的需求,以及用户在发展过程中各种各样变化的需求。 

----3. 集成性要求。业务流程管理平台为复杂应用软件系统提供了一个集成框架,不仅为集成同一平台上的各种不同软件提供了规则,还为集成其他应用软件系统提供了集成接口。 

---- 除了软件平台的基本特性外,业务流程管理平台还具有以下独有的特性: 

----1. 面向业务。操作系统平台、软件基础架构平台等都是面向软件开发人员,它使用起来技术门槛是比较高的。业务流程管理平台是面向业务人员的(并非说由业务人员来开发管理软件,而是业务人员要能理解),它使用的更多是"业务语言"或"管理语言",一种业务人员就能理解的语言。正是这个特性消除了复杂应用软件系统一直存在的两张皮现象(即缺少复合型的专业人才,懂技术的不懂管理,懂管理的不懂技术,管理人员、业务人员与技术人员之间一直存在着很难弥合的"鸿沟")。, 

----2. 技术无关。技术无关性不是指业务流程管理平台和技术没有关系,而是指业务流程管理平台屏蔽了操作系统、软件基础架平台的技术细节,开发人员在利用业务流程管理平台开发复杂应用软件系统时,关注的焦点在于业务逻辑、管理模式,而不用关心采用何种技术来实现。简单地说,这种技术无关性其实也就是跨平台,通过业务流程管理平台开发的软件能够顺利地在各种异构环境下运行。 

管理软件的新生存法则 

---- 业务流程管理平台的出现使软件平台多了一个具有革命性意义的战略层级,为降低大型复杂系统的实现难度提供了新的途径。这也就是说,它使大型软件复杂应用系统的体系结构出现了新的变化,也会对复杂应用系统本身产生重大的影响。 

---- 一直以来,复杂应用软件系统的开发有以下几种情况,一是基于硬件平台直接开发;二是在操作系统平台上进行开发;三是基于数据库平台开发;四是基于中间件平台开发(具体见图3)。在这四种开发模式中,由于后者的开发平台均比前一种要高,因此后者的开发模式难度更小,开发周期也更短。这也说明,不同软件平台层次的诞生,有助于提高软件生产力。 

---- 虽然四种开发模式的发展在很大程度上提高了软件研发效率,但它们依然有着明显的不足:开发难度依然比较大,开发周期依然比较长。再加上这四种模式都是从技术层面进行的改进,和应用软件主体,密切相关的业务比较远,因此他们无法解决因业务的复杂性而带来的管理软件的复杂性。这些缺点导致了管理软件的应用与发展还存在很大的问题,主要表现在两方面,一是管理软件不能很好地满足用户的业务需求,其柔性非常差,不能适应用户业务的快速变化;二是软件提供商管理软件的开发效率低,实施周期长,成本压力大。这是目前管理软件应用失败率高居不下的主要原因。  

 

---- 自中间件和应用服务器出现以来,大型复杂应用系统便充分利用他们来降低系统实现的难度。如今,业务流程管理平台的诞生使之出现了新变化(如图4所示)。计世资讯认为,业务流程管理平台的出现有助于解决这些问题。  

 

---- 不仅如此,业务流程管理平台对管理软件的开发模式也有革命性的影响,并导致一种革命性开发模式的诞生。这种全新软件开发模式便是EMA(企业模型自动化)。MDA为"分离业务功能分析设计的制品与实现技术之间紧耦合关系"的目的,通过业务流程管理平台和企业建模工具得到了很好的实现。业务流程管理平台通过自己的支撑环境,将开发和运行复杂应用系统所需要的底层技术进行了彻底的封装。人们在进行应用系统的开发时,只需关注业务模型,无需关心技术平台与相关实现细节。正是由于"技术无关性"这样的变化,使管理与业务人员有能力参与应用系统的开发。 

---- EMA基于业务和管理层面,以业务建模为基本手段,从而构架、开发和维护业务应用系统。它的最大特点是业务导向和技术无关性。业务导向是指EMA基于企业工程理论和企业参考模型,为软件设计和开发提供有效的导向和依据,帮助开发者全面、正确和迅速地实现管理者的管理和业务要求,大幅度地提升管理软件的开发、发布和维护的效率及质量,并在业务持续完善的过程中实现快速调整;技术无关性是指EMA通过运行平台直接执行企业的业务,实现业务模型和系统实现技术的分离,使应用系统可以在各类主流和标准的基础平台上运行,并可以顺利地迁移到未来的实现技术上。 

---- EMA采用模型自动执行作为软件的主要实现方式,应用软件中非常困难的实现部分和大量重复的业务逻辑已经无需编程(通用逻辑中的70%-95%)。开发人员只需要聚焦于客户的业务逻辑,并可以使用多种程序语言来支持复杂业务逻辑。  

 

对管理软件生态链的影响 

---- 由于业务流程管理平台新层级的诞生,必将导致软件产业链的变化,会出现新的产业生态群体,也会对用户的选择和应用产生影响。管理软件是目前我国应用软件中最为热门、应用最为广泛的复杂应用软件,它的生态链也为此有了极大的改变。 

---- 在新的管理软件产业生态链中,会有这几类角色存在:软件基础架构平台提供商、业务流程管理平台提供商、管理软件提供商、咨询公司、ISV及SI等合作伙伴、最终用户。和原来的生态链相比,从表面上看,只多了一个业务流程管理平台。但各个角色所蕴含的实际内容却和原来大大不同。  

 

 

---- 例如,对管理软件提供商,这并非一个新鲜的角色,不过它的内含发生了变化。用友、金蝶、东软金算盘、SAP等是这类角色的典型代表。在传统的管理软件生态链中,管理软件只是基于软件基础架构平台;但在新的管理软件生态链中,管理软件将主要基于业务流程管理平台,而基于软件基础架构平台的会逐渐变少。 

---- 管理软件提供商的变化还不仅于此。面对新的生态环境,很多管理软件提供商为了在新的竞争中掌握主动,开始研发自己的业务流程管理平台。例如,东软金算盘推出了自己VP平台,用友即将推出自己的UAP平台,而SAP则推出了自己的NetWeaver平台。管理软件提供商这种趋势对业务流程管理平台提供商在整个生态链里的位置会造成很大的冲击。从目前的发展态势看,对通用性较强的管理软件,如制造业的ERP等,管理软件提供商自己研发的业务流程管理平台会比较占优势;在一些特定行业,如电信、政府、金融等行业的管理软件,则更多的会选用第三方推出的业务流程管理平台。 

---- 无论是传统的生态链里,还是在新的生态链里,管理软件提供商扮演的都是"最终产品制造者"的角色,用户通过向他们购买相关的管理软件,直接便能应用。更进一步,管理软件提供商的客户都有三类:最终用户、咨询公司、ISV及SI等行业合作伙伴。所不同的是,在传统生态链里,最终用户和咨询公司是其最重要的客户;而在新的生态链里,最终用户、ISV及SI等行业合作伙伴会变成其最重要的客户。引起这种变化的主要原因就是,新的管理软件包含了可以让ISV及SI等合作伙伴充分发挥其技术水平的业务流程管理平台。 

---- 计世资讯(CCW Research)认为,无论是传统的生态链里,还是在新的生态链里,管理软件提供商是整个生态链的中心。绝大部分的用户会和管理软件提供商直接联系,而管理软件提供商的优劣,会对整个管理软件产业产生重大的影响。 

发展与应用趋势分析 

---- 计世资讯(CCW Research)认为,未来的2~3年内,将会有越来越多的复杂应用软件系统建立在业务流程管理平台之上。在管理软件领域,甚至会掀起一股从软件基础架构平台向业务流程管理平台迁移的高峰。预计在2006年,主流的管理软件都将基于业务流程管理平台,并且最有可能首先取得突破的会是ERP、OA、电子政务系统(如图8所示)。  

 

---- 和操作系统平台、软件基础架构平台相比,我国业务流程管理平台市场刚刚启动。计世资讯(CCW Research)认为,我国业务流程管理平台市场将在2003年得到进一步重视,并从此进入快速发展的轨道。计世资讯(CCW Research)预测,2003年中国业务流程管理平台的市场规模将达到6亿元,市场增长率达到300%。同时,会有越来越多的厂商进入这个领域,发布相关产品。到2005年,将会业务流程管理平台在市场上被充分接受的一年,其市场规模将达25亿元。并且,主流的ERP和OA软件都将基于业务流程管理平台,其市场规模将分别达到38亿元和16亿元。  

 

---- 计世资讯(CCW Research)认为,2002年软件平台市场最大的特点是"混乱":号称为软件平台的产品纷纷问世,要研发软件平台的厂商突然变多。这种情况出现的背后是对"软件平台"和"最终应用软件产品"的定位不清。实际上,现在市场上众多的"软件平台",其实都是一些具有一定个性化设置功能的"最终应用软件产品"。在ERP和OA软件市场,这种情况尤为突出。要注意的是,这样的产品,虽然能解决某些具体的问题,但和本文里所说"新一代应用软件"有着本质的区别。"新一代应用软件"是在业务流程管理平台之上进行开发的,而上面提到的应用软件产品则不是这样。  

 

 

小资料:业务流程管理平台与管理软件 

---- 业务流程管理平台和ERP、CRM等管理软件并非等同的概念。前者是ERP、CRM等管理软件开发与运行的基础,后者是用户用来提升自己的管理水平、降低生产成本的最终软件产品。业务流程管理平台自己本身并不是ERP,也不是任何一种管理软件。用户单纯购买一个业务流程管理平台,并不能给他解决任何的管理问题,"平台"只是一个运行环境和开发工具。虽然我们一直在论述,"传统ERP"有太僵硬的缺点,但这并非ERP有僵硬的缺点,而是指用来实现ERP系统的"传统方法"有缺点。实际上,ERP本身是一种先进的管理思想与管理模式,如果有一套先进的软件系统将它的管理思想蕴含其中,那这套软件系统肯定能为企业带来极大的收获。因此,我们要改进的,不是ERP本身,而是ERP软件的传统实现方法。业务流程管理平台所起的作用正在于此。 

---- 业务流程管理平台诞生之后,管理软件可以由两种主要方式提供:一是基于软件基础架构平台,二是基于业务流程管理平台。当然,也会还少量其他的方式,如适用于嵌入式系统的管理软件、直接在操作系统之上开发的管理软件。  

 

小资料:几个误区 

---- 1. 关于建模:建模有很多,在软件开发中会涉及两类,一类是传统的基于技术的建模,为软件开发人员编写程序而准备的建模,典型代表有UML;另一类是基于管理和业务的建模,它是为管理人员使用的,而不是为软件开发技术人员所使用的。在传统的软件开发中,建模一般采用UML等方法来技术建模;但在全新的软件开发模式EMA中,建模一般采用业务建模。 

----2. 关于免编程:建模工具是不是免编程的傻瓜化工具?建模工具的确可以大幅减少代码,降低管理系统的开发难度,而且,许多业务系统也的确可以用建模工具免代码完成。但建模工具并不等于免编程工具。因为:(1)业务逻辑具有不可预测的复杂性,有些业务逻辑本身就是一种复杂的程序逻辑,如MRP中的BOM(物料清单)算法。(2)管理系统需要兼容、融合和集成现有各类IT技术,如CAD、GIS技术等,甚至需要与工业设备进行信息交换。这些必需要靠适当的编程才能实现。 

小资料:几个简单问题 

---- 1. 业务流程管理平台为什么在此时浮出水面?答:有两个基本条件导致了业务流程管理平台在现在诞生。(1)关键需求出现:由于企业管理个性化和持续完善成为竞争的基本战略,管理软件产业出现了大规模定制的要求。(2)基本条件具备:业务基础平台的理论研究基本成熟,最关键的是,企业工程理论和业务建模体系已经达到实用水平。 

----2. 如何理解业务导向和驱动?答:这其实是管理软件的实现途径和方法的问题。它是指软件开发是基于业务和管理的层面,而非技术的层面,来理解、设计、构架和集成企业的信息系统。基于业务的层面是指,开发人员只需描述企业的组织机构、业务流程、业务信息、业务资源、业务逻辑、业务事件等业务内容,而不考虑技术层面的东西,例如,系统是采用C/S还是B/S?DCOM、Corba、EJB还是Soap?.Net还是J2EE?NT还是Linux?

原文转自:http://www.ltesting.net