以下场景在软件开发中常会碰到,它们比较客观的反映了国内很多软件公司项目开发过程的实际情况。
场景一:一项目组刚接了一个较大项目,项目的需求很明确,客户只是对性能要求比较高,整个系统要能承受非常大的用户量,响应速度很高。项目经理感觉这个项目没有什么大问题,一切都按照计划进行。可是最终部署到用户的服务器上时,整个程序的效率很低,虽然修改多次,性能仍然达不到要求。
场景二:某大型电子政务系统年底要生成大量的报表,可是报表系统忽然无法使用。这系统是由一个老程序员编写的,此时他已经离开,也无法联系,别的开发人员根本无法维护此系统。由于时间紧迫,项目经理只好决定让开发人员手工编写了所有报表,浪费大量人力物力。
主要问题
前面的场景显示了国内一些软件公司存在着规模小、技术力量薄弱、治理薄弱、设计人员缺乏等问题。除此以外,我们认为还有以下一些问题严重的制约着治理软件的进一步发展:
1.产品开发技术路线的选择比较随意,很难适应未来产品的发展的需要,软件不能进行无缝的升级。产品和项目界限不分明,通用性、定制性比较差。产品缺乏良好的结构设计,代码难以维护。
2.产品的质量很难保证。很多软件产品是从一个项目过渡来的对安全性、性能、部署环境往往考虑不够。
3.产品开发对开发人员的要求比较高,人员的流动对开发的进度影响很大。在很多公司中开发人员没有独立的分工,每个人都负担着一个模块的需求、设计、实现。很多开发人员甚至需要负担一定的美工工作,测试也不很细致,开发人员角色过多的后果就是每部分都很难做到位。
4.设计能力不足。很多项目经理和开发人员对设计重视不够,为了赶工期,设计过程过于简单,甚至无设计。
5.项目经理的治理能力不足,没有及时把握进度。进度治理必须随时收集有关项目治理的数据,开发人员总是担心治理工作会增加自己的工作量,不愿配合。治理人员甚至不知道应该收集哪些数据。
6.开发计划不充分,没有良好的开发计划和开发目标,项目的成功就无从谈起。
7.找不到软件工程或者项目治理的方法,无法大幅度提高应用软件的开发效率,开发周期长、开发费用高,实施费用超支和工期延长。更加可怕的是,随着企业的环境和需求的不断变化,“建成即成闲置”,形成软件工程的灾难。
解决之道
软件开发的问题是由多方面原因造成的,有市场的、有治理水平的,也有技术的原因。目前基于业务基础软件平台的开发方式是解决这些问题的一个比较好的解决办法。业务基础软件平台是一种技术创新,它使软件平台又多了一个层次,并将应用软件的业务逻辑和开发技术分开,使得应用软件的开发者不必关注其技术的实现。这使治理与业务人员参与应用软件的开发成为可能。
业务基础软件平台包括集成应用平台、开发体系两个部分。从技术角度分析,业务基础软件平台为复杂应用软件系统的开发提供了一个基本框架,并有与之相应的、方便易用的开发与维护治理工具。此框架给出了一些应用软件的基本组成部分和实现方法,并且预置了很多供参考的软件模块。这样,省去很多基础性的研发工作,从而提高研发效率。
应用佳例
ezframework是一套面向中小项目的基于J2EE整体解决方案,是面向电子政务、电信、税务、社保等领域的业务基础软件平台,它把开发项目过程中经常碰到的问题进行总结,通过平台的形式来解决这些问题。使用ezframework可以让开发人员把精力更多的集中于业务,而不是技术本身,所有的技术问题和通用模块都由ezframework框架来处理。
ezframework的客户端不需要安装任何运行环境,只需要有一个标准的Internet浏览器就可以了,它能自动生成界面需要的Html代码。
由于有了界面库,只需要把要显示的界面描述清楚,框架就能按照要求生成各种风格的界面,不再需要美工和程序员反复的修改程序。
ezframework框架的表现层是这个产品的一大特色。另外,这个框架还包括业务层治理和持久层治理以及一些通用的模块。作为一整体解决方案,ezframework不强迫用户必须使用到每部分,而是可自由的选择自己需要的模块。
可以看出,通过业务基础软件平台的方式来进行软件的开发是一种有效解决目前开发软件技术瓶颈的好办法。ezframework已经成为清华同方的开发框架标准,形成了以ezframework为基础的一系列技术和行业套件,开发可以从构件库中选择已有的构件,而不必从头到尾重新开发,最大程度实现了组件的重用。
ezframework系统结构图
ezframework系统运行图