企业信息化软件开发的需求探讨

企业信息化软件开发的
需求探讨
                                                                                
Author:  bigmouthz
E-mail: bigmouthz@gmail.com
Date:   2008-05-03
企业信息化的发展已经有很多年了,从当初的单机版到后来的C/S以及到现今流行的B/S以来,软件的客户满意度一直都不高,真正能被用户所认可的企业信息化软件则少之又少。 从我进入软件行业以来,一直都在思索一个问题, 为什么企业信息化软件不能做到真正的为企业服务,不能更贴近用户的需要呢?
问题的提出:
         为什么客户对现有开发的软件产品总是不满意?
         为什么我们的开发人员总是抱怨客户太过刁钻?
         为什么我们的实施人员在实施的过程中感觉痛苦?
         为什么往往一个产品下来我们的功能总不能满足客户的终端要求,且需要修改之处依然很多?
         ... …
这些问题说明了什么呢?
本文就专从需求的角度来阐述这些问题。
产生的原因:
         没有需求
客户往往在上线前提不出具体的业务要求。
         需求是含糊不清的,甚至有些是倒向的
这一点要求我们与客户进行有效沟通得到真象。
         需求分类没有层次感,对其客户的满意度、重要度、复杂度没有进行具体划分
往往产品上线时会发现需求归类错误,设计出来的软件不合客户要求。
         需求挖掘不充分
在很多情况下没有真正想到客户要的是什么,需求往往停留在表层。
         不断变化的需求导致功能的迁移
没有充分思考在当前已确定需求的情况下,日后有可能会产生的变化。
         我们没有上升到一定高度,没有站在高点,简单说应与时俱进
更多的情况下我们没有真正意义上的管理专家和业务专家,促使我们应在以后更精益求精。
历史演化的进程
      企业信息化软件的演变:
         从单机版
单机环境下运行; 简单的数据录入、维护;简单的 复核 ;
         C/S结构
局域网环境下运行;企业内部共享数据;简单的 申请审核记帐;
         B/S结构
集团化数据共享。
主要应用于企业内部, 局域网环境下。
但越来越多的企业提出了基于Internet互联网的应用,更多的角色参与。
业务流程也越加复杂, 引入了工作流。
      一般企业信息化从业人员的演变:
         计算机硬件维护人员
 常用的办公软件, 单机版企业信息化软件。
         计算机网络维护人员
常用的办公软件, 一个或一个以上网络化企业信息化软件。
         专职的企业信息化人员
常用的办公软件, 两个以上的网络版企业信息化软件, 并且多个软件之间有数据协同。与多家软件公司有过合做。很多有开发经验, 甚至有自己的开发团队。
      技术的演变:
…略
以上的情况,使得我们依靠惯性思维设计软件时,就会发现现今企业信息化软件存在有诸多问题,从而引起客户满意度的下降,我们就会感叹客户越来越刁了。真正的原因是什么呢?我想是我们应该重新思考与定位的时候了。
引发的思考
设计是来源于需求的, 没有客户就没有产品, 没有需求设计也就无从谈起。 因此本文就从需求谈起,如何以发展的思路去设计我们的软件,思考下一步企业信息化的出路何在。
         企业集团化引发的思考
a)       集团化的产生, 使得我们要有能与之相适应的企业组织架构。引入了集团化的概念后,会发现设计的难度提高许多,特别对数据分级上会有更高的要求。但这是现在软件所必备的功能。
b)      集团化的产生, 使得我们要有能与之相适应的层次岗位。岗位是现实社会真实的体现,在系统当中漠视岗位的设置或岗位关系的设置会引发很多变异的设计,通常这些设计是有缺陷的。
c)      集团化的产生, 使得我们要有能与之相适应的授权机制(数据级权限| 页面控件级权限)。往往这些要求客户提出来时,我们的软件系统更改起来就会发现只有添加更多的页面来实现,这显然是不符合现代系统的。
d)      集团化的产生, 使得我们要有能与之相适应的权限角色。权限角色与岗位的不等同是真实存在的, 权限角色对应的是一个员工在企业信息化系统中的功能, 而岗位是员工在企业中真实的工作状态。
e)       数据交换工具的需求。有了集团化的概念,可以想像通常会有若干个数据库系统存在于企业内部,统一企业的基本数据,就势必有数据交换工具的需求。
f)       决策支持系统。(超出本文范围不作阐述)
g)      数据仓库。(超出本文范围不作阐述)
         企业门户引发的思考
a)       企业门户与企业信息化软件的分离。现有很多软件系统中最常犯的错误就是把企业门户与信息化软件混为一团,而客户在此基础上提出的需求就会发现有很多的功能需求早就超出了信息化软件的范畴,而往往此时又无法拒绝客户的要求。这是由于前面所说的需求分类错误引起的。
b)      企业门户与企业信息化软件的数据关系,数据的推送与提取。
c)      信息化软件 单点登录功能的引入。
d)      利用RSS信息采集来丰富企业门户的内容。
         工作流引发的思考
a)       流程的灵活度与实际情况中的不适宜。业务流程的要求往往会因为固定流程的设置而变得更复杂,除了正规的工作流设置外,还应该提供自由流程或半自由流程的方式。
b)      流程与业务应该是分离的,不应该是绑定的。流程只应控制业务流向,而不应该绑定太多的业务数据(当然公文的特殊性要求除外)。
c)      流程的推送应由专门的消息机制来完成(同样消息机制应做为系统框架提供的底层机制,供整个系统层面使用)
         界面引发的思考
a)       换肤已是现今系统不可少的的重要组成,在此提出主要是界面css定义的标准化。
b)      业务界面的模型设计。 一般而言在信息化系统中页面表现形式不会超过三十种, 换而言之,我们常常会用某些较固定的界面去处理不同的业务模型,有了业务界面模型(或称之为界面模板)标准,我们去实现业务可谓是事倍功半了。
c)      界面与业务控件的分离。 常规情况下我们的界面与业务通常是很少分开的, 但是事实上大多数情况下有些界面实现的业务功能之间是有共性的,因此推荐将某些可供多个业务模型调用的界面模块,做成业务控件。
d)      界面控制与业务功能的分离。业务功能代码并不等于简单的数据库操作封装, 而应该是基本数据操作功能之上的封装。只有界面控制与业务功能分离做好了,系统的可维护性才能提高。
e)       尽可能多使用控件,而非js或者前台编码的方式生成界面。新技术的产生会带来很多的革命性的变化,而控件化的产生是不可逆转的历史规则。
f)       有了以上几点,我们就有了使用代码生成器的可能, 这样会大大提高我们的软件产品质量,节省维护成本,也才有更多的时间资源。
g)      关于界面这块提了这么多,最重要的不是在技术上,而是从更多的业务上考虑。我们面对不同的客户时就会发现再经典的功能设计,到真正了解客户需求的时候会发现要改变的东西仍是不少,怎么快速实现这种方案的方法就是用MDA(模型驱动架构)快速开发的方式得到最终的结果。
         消息机制引发的思考
消息机制的应用是改善用户友好性的关键
消息机制的体现一般在企业内部表现为RTX,或者各软件企业自行编写的IM工具。与消息机制进行结合是企业信息化软件的必然趋势。
消息机制的必要性,现行最流行的说法就是实现企业协同,真正企业的协同是即时的,快速的。
a)       消息机制与工作流。比如对方一个流程提交了, 就会触发消息机制, 产生一条消息,由IM服务器发出, 系统依据消息机制的设置自动发送给客户终端(可能是RTX消息,可能是手机短信,也可以是email等),客户收到后了解到当前发生情况后,可以立即进入处理(可结合单点登录功能)。
b)      消息机制与文档管理。现行的文档管理是必要的,但是作为补充,我认为消息机制加上文档管理可能会产生很好的应用效果。这时提消息机制可能不太容易明白讲的是什么,我换个名词P2P式的文档管理,加上搜索引擎技术应该大有所为。
c)      消息机制与消息提醒。业务系统中经常会有进行信息提醒的要求,常用的方式是在网页上进行(Web)但这种效果并不是很好,引入了消息机制后,通常会更节约网络资源,减少服务器压力,也改善了用户体念。
小结
上述谈到的是需求与软件设计的供求关系, 只有更好的了解需求, 我们才有可能设计出更好的软件产品来,才能提高客户满意度。希望本文能够起到抛砖引玉的作用,能够激起大家更多的思考。从而让我们与客户达到零距离。  
业务数据库设计
附上若干年前我总结的一段文字,对于结合需求来讲应该是比较合理的。
a)       职能划分功能化:
1/企业组织架构
2/企业部门职能的组成要素描述
3/部门层次结构
4/部门职能划分
5/员工职务职能划分
6/职务职能的组成要素
7/职务职能的功能描述(以部门职务层次图展示)
b)      功能划分流程化:
1/功能需求描述(业务,系统)
2/功能需求的整理与组合
3/功能间的耦合关系
4/功能的组成要素
5/功能的拆分描述与实现
6/功能串化或并化及锁等待的描述
7/以流程图的方式展现功能的具体体现
c)      流程划分单据化:
1/现实业务单据收集
2/单据的整理与组合
3/单据在功能实现流程中不同时期的状态变化
4/单据的组成要素
5/单据的拆分描述与实现(数据源/数据流向/数据处理动作)
6/单据使用者的权限描述及控制
7/具体单据表样展现(以电子表格形式展示)
d)      单据划分表格化:
1/单据内容的拆分与整合(不涉及到字段设计,只应考虑到单据具体内容的列级描述)
2/单据主键与外键及约束的初步描述
3/单据的三范式与反范式设计描述
4/单据数据量的估算,单据的使用频率估算
5/单据使用角色的确定(以数据库用户角色定义单据的产生)
6/单据视图的设计描述,查询表的描述,索引的需求描述
7/单据表单间及表项间的关系展示(以UML展现)
e)       表格划分原子化:
1/表格的字段设计(数据类型,值域,属性表)
2/表格主键外键约束的设计
3/表格索引的设计
4/表格对不同角色用户的权限分配
5/视图依应用范围的不同而创建,如通用查询/修改/统计用(建议用户角色级视图的创建)
6/触发器及存储过程的设计描述
7/以ER图的方式展现表的具体体现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值