关于企业应用软件设计开发解决之道的一点个人思考
关于企业应用软件设计开发解决之道的一点个人思考
J道--java解决之道,解决java?我想应该不是吧,java只是一门编程语言,语言者,工具也。从jdon的首页上可以看到一句话:“解惑授道,企业信息化解决之道”,我想,banq的意思应该是指用java做企业应用软件过程中的软件设计开发解决之道吧,因为企业信息化包括诸多要素,除了软件(软件除了设计开发也还有需求,实施等要素),还包括企业管理,流程重组,资金,人员等等,而jdon主要还是讲企业应用软件的设计开发等问题,有设计模式,有领域建模,也有框架,并被誉为三件宝,但怎么来运用这三件宝呢?有什么指导思想呢?到底什么才是企业应用软件的设计开发解决之道呢?我想很多人都有考虑过这个问题,也在寻找这么一条通向罗马的大道。在这里,把我个人的一点想法和思考写出来,希望能和朋友们交流,共同提高!欢迎朋友们批评指正!
道,我的理解就是事物的本质规律,顺着事物的规律办事就是循道!循道就是不能超越事物的本质范畴,不能越界,所谓物极必反正是这么一个道理。循道则通,通则久!所以,道也是属于方法论的范畴,哲学的范畴,无不是在阐述某一事物或某一行业的本质规律,根本的解决方法。
其实,企业应用软件的设计开发解决之道的答案也容易找,就在J道网站的logo里面,jdon里的那个o在logo里是一个太极八卦图标,太极八卦者,易也。易,群经之首,大道之源!易道,太极之道!易是中国乃至世界上古老的唯物主义哲学体系,阐释着万事万物的本质规律,具有明显的科学的辩证法特征,是优秀的辩证方法论,是亘古不变的真理,把它运用于为人便是为人之道,用于政治即是政道,用于战争即为兵道,用于商战即为商道,当然用于企业应用软件的设计开发也就是企业应用软件的设计开发解决之道!
企业应用软件的设计开发解决之道有几个要素,有主观的,有客观的,有个人的,也有团队的,有静态的,也有动态的,总的来说有公司的资金保障,实际业务系统的复杂度(即需求),现有技术和工具,项目经理,开发人员,软件过程管理,项目组组成结构等。但是,纵览国内许多软件公司的项目,有着强大的资金支持,有着成熟的技术,有着拼搏精神,有着良好的软件过程管理,项目经理和开发人员个人技术能力都很强,业务需求也不算复杂,但仍然不能做出客户满意的能应对市场需求的软件,其中一个最重要的原因就是缺少一种哲学要素,方法论要素。这种哲学要素是处于最高统治地位的,上述提到的几个要素应该是仰望着它的,它统帅着整个软件设计的理念,贯穿着整个软件的生命周期。看看国内外有着成熟稳定产品的、受客户欢迎的成功的软件公司,无不有着自己独特的哲学。
讲了那么多,我们就不禁要问了,易道到底是什么?怎么把它运用于企业应用软件的设计开发呢?我觉得易的精髓可以从几方面把握,从宇宙观上是唯物论,人生观上是自然论,方法论上是辩证法。这三方面再综合一下,那就是平衡两字,或者说是和合两字。易经说,一阴一阳之谓道,易道就是阴阳平衡之道,就是要和天和地和人!企业应用软件设计开发之道就是前面提到的各要素平衡之道,那么这些要素的和天和地和人之法是什么呢?下面就讲一下这个问题。
一、 软件设计开发的和天之道
对于我们企业应用软件设计开发人员而讲,软件设计开发的天道要素有软件政策,市场需求,现有技术的成熟度,软件发展的潮流等。易经说,天行健,君子以自强不息!天道的最大特点就是永恒不息,不是我们个人所能左右的,要想使它固定下来据为己有是既不可能,也代价太大,结果只能是自己被绊得粉身碎骨。我们要想真正地拥有它就只能是在天道的动态运行中顺着它的势去掌握它,这样才能为我所用!
软件政策就不用说了,目前国内对软件的政策是大力扶持的,如果还要反抗这个政策的话那可以尽早离开这个行业了,呵呵。
市场需求方面,因为现在是市场经济体制,全球一体化迅速加剧,市场瞬息万变,机会转瞬即逝,在这样一个大背景下,企业需要的正是一种灵活的应变机制,要能够迅速有效的和别人沟通,获取各种有用的信息,以做出相应的决策,所以现在的社会迅速有效的沟通是至关重要的,那么,对于这种市场需求,对作为工具的软件提出的要求是什么呢?我觉得这种要求可以归结为六个字,那就是:“开放、标准、集成”。开放就是打开自己的大门,增强软件的互操作性,我们国家80年代都改革开放了,软件经历了这么久,也该开放了。标准就是要遵循世界公认的工业标准,比如web标准,通讯协议标准,数据表达标准,对象管理组织的建模标准,等等,大家都遵循同样的标准就容易使软件更加开放,相互之间的调用就不用转换格式了。集成就是系统之间的模块要集成,数据要集成,流程要集成,甚至要在互联网的基础上和客户集成,和供应商集成,和合作伙伴集成。总之一句话:就象全球一体化趋势一样,软件也要一体化,这是趋势,不可阻挡。所以,现在企业协作商务软件(CPC)是趋势,是在ERP的基础上转变了焦点,以前企业的核心焦点是企业的生产制造,市场方向变化比较少,现在主要焦点是市场导向。但是现在还是有很多软件公司做软件根本都没有做这方面的考虑,信息孤岛还在不断地增加,整个系统是呈烟囱式地突出来。现在业内炒得很火的SOA正是在这么一个时代背景下提出来的应对系统集成的解决方案,虽然现在由于标准和技术都还不够完善,真正实现还有一定难度,但是总方向是对的,我们不可回避,必须静观势态,顺势而作。
对于现有技术的成熟度,我们也要有所把握,总的来说,现在的软件编程语言,数据库,网络技术是比较成熟的,相应的工具也都比较多,硬件技术也是成熟的,是足够满足我们做企业应用软件的,但是也还有一些技术是还不够完善的,比如现在的web service技术,建模技术和工具等都还不够成熟,主要是这方面的理论也还不够成熟。所以我们做软件的时候也要考虑到现有技术是否能够实现我们的目标。
对于软件发展的潮流,我这里主要要说的是分析设计方法的潮流和软件过程的潮流发展。Banq在一篇帖子中讲过分析设计方法的历史发展(http://www.jdon.com/mda/modeling.html),企业应用软件分析设计的方法主要经历了三个阶段,首先是围绕数据库编程的面向过程的分析设计方法,其次是面向对象的分析设计方法,目前最新的阶段是在面向对象的基础上发展起来的综合了分析设计的模型驱动的方法,在我的另一篇帖子“用科学的思维方法指导软件的设计开发”中我提到的模型化的思维方法就是讲在对企业业务系统建模时所需要的思维方法,现在科学问题包括我们的企业业务都是变得越来越复杂,模型驱动的分析设计方法也正是在这么一个背景下出现的,可以说代表了目前分析设计方法的最新方向,综观整个分析设计方法的历史发展过程,模型驱动分析设计方法的出现也是必然的,我们也不能回避,虽然相关的理论和工具还不是很成熟,但是我们的思想必须走在前面,如果思想不能先行,理论永远不会成熟,工具永远不会出现。软件过程的发展也可以说经历了两个重要的阶段,首先是瀑布模式过程,需求,分析,设计,开发,测试,运行,维护,每一步的启动都建立在前一步已经完全完成的基础上,这个过程最重要的是一开始就需要确定全部需求,需求不可以随意更改,而需求恰恰是最难确定,最难保持不变的东西。第二个软件过程那就是迭代模式过程了,它是先把软件最最基础的骨骼做出来,先让它能运行起来,然后再根据需求的变化,每一个需求都按瀑布模式的过程在原来的基础上迭代,这其实就象人类的胚胎发育过程,先有整体,然后再由整体慢慢地衍生出各个组成部分,这也是生物体的生长发育过程,记得有个朋友把软件系统比喻成生物系统,非常有道理。我们大家都知道逻辑思维是相当重要的,但是,又有几个人能真正了解逻辑呢,逻辑是历史的规律在我们思维中的再现,是剔除了历史中的偶然性与多样性,历史是决定逻辑的,了解历史的发展才能运用逻辑思维去推理将来,所以我们了解了分析设计方法的历史发展,才能真正知道模型驱动分析设计方法的必然性,了解了软件过程的历史发展,才能真正体会迭代过程的必然性。
天道不可违,顺天者昌,逆天者亡,所谓人定胜天,实在是一些人自欺欺人的幌子!
[该贴被killer于2007年10月06日 20:45修改过]