MIS断想 荣耀 2002秋 每一个组织的业务都不尽相同,因此,每一个组织的MIS系统都不可能完全一样。照搬照抄的MIS系统,从来都不可能成功。 企业级MIS必须走平台化的道路。应该对用户业务进行合理的抽象。定制模式的前期开发和后期维护负担过重,厂商和用户都难以承受,因此也就很难达到理想的使用状态。 MIS的平台化可以最大限度地减少数据库、业务规则和前端代码的修改工作量。平台必须能够为用户提供比较完备地自修改功能,以提高系统自适应能力,缩短客户服务响应延时。 MIS产品抽象程度越高,适应性越强,但与此同时距离用户的业务实际也就越远,贴合用户特色需求的二次开发量也就越大。 MIS不单单是一个软件产品,更应该体现先进的管理思想。但有两个主要因素制约了这个目标:第一,MIS厂商一般缺乏业务专家,即使有,MIS厂商的所谓的业务专家,在精通业务的用户面前往往也变成了小学生。第二,按照目前国内情况,用户一般很难接受MIS厂商的业务建议,更不用说什么业务流程重组了(除了受第一个因素影响外,还有一些别的不言自明的原因)。 从人员配置来说,业务专家和开发高手、架构师同样重要,任何公司倘若意识不到这一点,终究会栽跟头。大型MIS厂商必需培养自己的业务专家,甚至应该专门成立业务专家部门,设立专门的业务专家职位。 组织的业务需求、投资规模和系统架构,决定了数据库服务器的选型。在高端,Oracle、DB2是首选;在低端,SQL Server可以满足绝大多数中小企业MIS需求。在国内,有时也可能纯粹因为地方性或行业性的习惯(势力)等原因,指定选择某一种数据库产品,尽管听上去很没有道理。 在企业级MIS领域,Windows 2000抢占了越来越多的高端服务器市场,这种势头还将持续增长。 企业级MIS的顺利实施,首先需要有现场经验丰富的硬件、操作系统和数据库架构人员。这些人员单单通过某种“资格认证”是不够的,必须具有极强的现场解决问题能力。软件系统架构的搭建费时、费事、费神,对此类人员的素质要求很高。 企业级MIS必须能够解决容错、负载平衡等问题,尽可能避免单点失败和系统瓶颈。 在有条件的情况下,MIS软件开发人员首先都应该在项目现场摸爬滚打一段时间,否则很容易落入闭门造车的陷阱。 企业级MIS的版本管理,一向是令人头疼的问题。厂商有时为了针对不同规模和性质的用户,同时维持同一软件的多种版本。必须实施强有力的版本控制手段,否则很容易陷入版本混乱。 作为一种软件产品的开发,一旦选定了开发工具,就应该尽量采用同一版本的开发工具,以避免由开发工具导致的潜在的不兼容的陷阱。 开发人员的机器的硬件配置可以比用户来得好,这样会提高开发效率,但开发人员的软件配置不应该比客户的来得高,否则,编译出来的软件,到客户的机器上可能会无法正常运行。有时候,这种陷阱可能非常诡异,难以捉摸。 假如你是一名C++爱好者,并且你“不幸地”涉入MIS开发领域,目前来看,C++ Builder可能是你目前最好的选择 — 如果你可以选择开发工具的话。 对于真正从事企业产品开发的程序员来说,语言不是本质,开发工具才是头等重要。 软件一旦进入开发阶段,对基础架构的任何修改都要慎重。 对于企业级MIS软件的设计开发来说,建模的重要性不言而喻。但绝不应该为了建模而建模,建模不是为了好看或好玩,建模不应该只做表面文章,建模的最大目的是为了规避开发风险,建模是一件严肃的事情! 一定要抑制住开发一个无所不能的产品的冲动,这个念头极其危险! 过于追求技术的MIS,是理想主义者的MIS,而理想主义者往往会栽跟头。 MIS作为一个系统,必须划定技术边界和业务边界,尽管这种边界往往很不清晰。 软件的功能越强,代码量越大,参与的开发人员越多,bug也就越多。我们往往需要一个精干而强劲的开发小组,而不是一个良莠不齐的大型开发团队。 倘若一家MIS厂商没有强有力的产品测试小组,它的产品的bug是可以想像的。靠开发人员自己来测试软件,往往难以取得良好的效果 — 开发人员难以克服自己的思维惯性。那种测试bug的任务由项目实施人员甚至用户来承担的做法,极不可取。 产品开发阶段,必须有严格的过程控制。开发人员的技术水平不一样,因为这样或那样的原因,开发人员的心态和情绪也可能会发生波动,但产品的质量和准时交付重于一切。 很少有哪个软件产品能够提前完工,绝大多数都要超期,但我们还是要尽力控制超期时间。准时交付,对外是信誉的保重,对内可以提高员工的信心。 宁愿开发一个功能有限制但bug很少而且准时交付的MIS产品,也不要开发一个功能臃肿的、充满bug的、交付日期遥遥无期的产品。 企业级MIS产品的开发应该具有一定的技术连续性。新产品的开发应该基于老产品,以最大限度地规避风险和技术陷阱,并可保证产品具有良好的升级能力。 企业级MIS厂商的部门划分,必需健康合理,那种职责不清、界限模糊的部门划分模式,是难以顺畅运转的。 技术不是MIS追求的首要目标,对用户业务的处理能力更为重要。一个MIS系统被淘汰掉,往往不是因为技术的落伍,而是因为无法适应用户的业务变化。 和Office这样的日常必备商品软件不同,MIS往往和组织的人员和管理密不可分。MIS的实施,从来都不会一帆风顺,失败的风险很大。 过于聪明而主动的客户,喜欢对厂商指手划脚,结果导致系统严重走形,不够专业、规范。过于被动的客户,将来可能会发现MIS不够符合理想使用要求。 MIS厂商必需尊重和尽力满足用户的合理需求,但MIS厂商必需能够保持对项目的完全控制,对于厂商来说,一个失控的MIS项目,对于开发商来说,不啻为一场噩梦! 和大多数专用系统比如财务系统不同,MIS不应该是一个封闭的系统。一个完善的MIS,必须有手段获取第三方系统的数据(当然,这往往需要第三方系统厂商的配合),同时MIS也必须留有和第三方系统交互的接口。 成功的企业级MIS产品,应该能够做到数据库透明,至少应该支持数种流行的大型数据库,但这并不容易做到。一个通用、强健和高效的屏蔽大型数据库的中间件的开发,除了技术难度大以外,周密细致的测试工作也非一般MIS软件厂商可以胜任。 企业级MIS必须解决广域网环境下分布式MIS数据库的同步问题。尽管大型数据库通常会提供一些数据同步机制,但这些功能往往存在这样或那样的局限,比如,无法保持异质数据库之间的数据同步。这可以通过数据交换方式实现,目前最理想的交换介质无疑是XML。 海量数据的处理和展现,是每一个企业级MIS都要考虑的问题。企业级MIS随着数据的增多,运行效率将会下降。可以利用数据仓库技术,进行数据转储处理和深层次的数据挖掘。遗憾的是,由于国内大型MIS实施时间还不够长,这个问题暴露的尚不够充分,因而没有受到足够的重视。 似乎没有哪一种软件开发领域会象MIS这样,几乎在第一时间采用最新技术,尽管往往是出于炒作的需要。 企业级MIS要求必须能够解决广域环境的问题。Web具有先天性的业务处理能力差、表现力弱的缺点,就目前来看,企业级MIS是不可能纯粹用Web方式实现的。微软.NET能否比较好地解决这个问题,目前还不好下肯定的结论。 “遗留软件”的势力,以及尚缺乏一个真正的“.NET操作系统”的现状,是限制.NET进入MIS软件开发领域的主要阻力。国内尽管已经有些基于.NET的产品面市,但产品技术含量不高,炒作的味道更浓厚一些。 尽管如此,.NET成为Windows平台上MIS软件开发的主流技术,只是早晚的事。 -完- |