企业软件自助开发平台–源起

  • 2019 年 10 月 21 日
  • 笔记

第一章.企业管理软件建设的困局

1.1.管理软件的本质

  在知识经济的时代,软件扮演了一个越来越重要的角色,通过互联网充斥了生产、生活的各个角落;在软件的大潮中,管理软件形成了独特的一支,

它以服务企业经营管理、提升管理效率,提高企业竞争力为目的。企业管理在接收软件,从无到有,从有到不断改善,持续发挥效能的过程,称之为企业信息化。

企业越大,信息化越重要,它如企业的血液,运输着营养,也检测者企业的健康。所以信息化的每一步建设和改造都至关重要。然而企业信息化的过程并非一番风顺的,

一些企业的信息化系统是通过购买成型软件来实现的,盲目信任一些软件,或追求不符合企业自身规模和管理体系的大而全软件系统,意图通过一款软件来解决管理的

所有问题,用软件系统自带的管理架构和流程套用在自身企业上,其实施过程往往阻力重重,其结果可能是企业效能不升反降,原来简单的流程被软件复杂化。另一些

企业是通过自身自研软件的方式实现信息化过程,往往由于自身信息化专业知识和能力的不足,很难把自身的管理思想,管理思路在软件中体现。其结果是软件成为一

个不伦不类的事物,对企业经营发展没有促进作用。选择合理有效的管理软件首先要认清什么是管理软件,企业用管理思想来制定管理制度,制度分化落实为职能和权力

;职能和权力的执行过程称为管理过程,管理过程在以计算机等电子设备上的数据化实现就是管理软件. 其核心是 管理软件是承载着管理思想的管理工具

所以建设或购买软件一定要以自身的管理思想体系为出发点,以软件完全承载自身管理思想为结果。这样管理软件才能发挥它的效力,服务于企业,促进企业的发展。

1.2.管理软件开发的困局

  互联网高速发展的今天,企业管理软件逐渐升级为 云模式销售的saas 服务商和以综合解决方案提供的软件项目供应商.软件是为企业服务的,所以需要软件厂商除了

具有很强的编程能力外,也需要丰富的行业管理知识,一款管理系统的品质也是一个开发团队智慧和实力的证明,所以具备高素质开发团队开发的产品也必然是高成

本的,软件厂商为了平复软件成本和保证收益,通常希望开发的一款软件系统能满足更多的客户需求。

  对于企业自身的发展和管理而言,正如世界上不存在完全相同的两个人,同样也不存在完全相同的企业,也就不存在完全相同的管理模式。企业需要软件根据其自身

的发展和管理来服务企业,这导致了软件厂商无论从原来局域网软件系统还是到互联网的Saas 模式系统,都不能满足企业管理需要;通常企业正确的做法是应用一

些局部管理系统(Saas模式的价格更低),定制采购基于自身业务的管理系统。定制软件通常由行业软件开发商完成,软件商在自有行业软件基础上根据企业的管

理需求进行开发。当下互联网冲击着所有企业的生存,企业需要创新性和更加细分的产品或服务才能增强其竞争力;也就是企业的管理模式也一直在创新。所以对软

件厂商而言企业的需求一直在变,他们不能根据过去的经验来套用在创新性管理的企业;也不能把握企业在其细分行业领域的管理需求,这就导致了软件厂商对开发

成本,开发周期的不可控性.但软件开发项目的资金预算和周期都是市场部门在合同中签订的。开发项目组会觉得开发符合预算和进度要求的软件简直难于上天。实

际上,软件项目常常严重超期或超出预算仍是困扰着绝大多数软件公司的难题.这些难题主要在于以下几点;

其一:用户需求很难确定。这是因为软件开发者很难详细了解用户的需求,甚至用户在看到产品之前也不清楚自己到底需要什么,所以从项目开发的自始至终都可

能会有新的需求提出,致使系统结构不断修改,最终面目全非。

其二:设计不完全可以预测。有时,一个设计时认为可行的方案,在实际执行时可能行不通,如一个对企业管理有需求的功能点可能因为在数据采集方面的条件不

成熟,导致这个功能无法使用。

其三:用户需求不断变化,如果最初的用户需求没有了解的很清楚,或者软件团队对用户需求提炼的高度不够,可能整个项目很快就会陷在不断变化的需求之中不能自拔。

其四:客观条件的不确定性。在项目的进展过程中,可能会有人员的流动,可能会有资源的调整,可能会有这样或那样的客观条件的限制而阻挡了项目的正常进行。

在这样高度的不确定之中,在较早阶段精确估计一个项目不只是很难地,甚至是不可能的

解决这样的困局不是没有办法的,需要一个有对企业成长过程和软件管理能力非常高的软件建设团队,能对企业规模和成长阶段准确的进行管理咨询定位,

同时还有能力开发出符合企业自身并且适应它成长的软件系统,这样的信息化团队无疑价格是非常高昂的.

1.3.企业管理软件Paas平台(HouseLet)

  小房子管理软件自助开发平台十余年来的发展一直致力于解决管理软件开发应用过程的困局.通过不断进化创造出了低成本高质量建设管理软件的开发体系,形成企业

管理软件开发独特的建设思想,辅助企业快速低成本开发承载企业自身管理思想的、量身定制的、并且随企业的发展一起进化的管理软件系统.

 

第二章.企业软件自助开发与应用平台

 

小房子(Houselet)企业软件自助开发平台系统 采用云计算技术的管理软件开发与应用平台,基于共有云(或私有云)部署的PAAS系统.平台采用完全开放的开发模式,

采用轻代码开发管理系统, 只需要掌握数据库知识(sql编程技术).

 

管理软件本身就是对数据,数据逻辑的处理,反应到数据库中就是 表,视图,存储,函数 等数据存储形式和表现形式,小房子把这些数据形式的映射填入 ActionData 和 Dictdata 两种系统表中,

并在这两个表中配置上业务关系和逻辑-小房子就根据这些数据配置生成常规的管理软件。

 

2.1.小房子的发展

 

小房子平台是数位软件开发工程师和几位管理咨询师 经过近十年的时间打磨而成;小房子系统开发的初衷是为了解决大型生产企业管理咨询方案的实施,咨询方案要求软件系统随咨询方案的制定而变化

,能迅速落实咨询方案;咨询团队要采集企业各个方面的数据(基础数据,生产数据,业务数据),咨询方案涉及企业管理各个管理层面;涉及的部门岗位非常多,各岗位上的员工对于信息化的应用层次不齐

,企业现有软件系统不易更换等因素;所以软件实施工作步履维艰。经过咨询团队和企业高层多次探讨,最终采用一种分布实施,逐步实施的方案.

 

这个方案在实施初期见效很快,但对软件开发工程师来说是一个极其苦恼而又无奈的过程,苦恼是因为要根据咨询方案推进要不间断地改动软件,从事过管理系统开发的朋友都明白,

改动伴随的是反复的调试和测试,而刚刚稳定下来的系统,根据咨询方案的下一步实施,刚刚开发的功能很可能弃之不用;这就是无奈的地方. 怎么解决这个问题呢? 团队反复讨论后,决定要开发一个自己的平台系统,这个平台要满足

1.灵活 不拘泥于业务(就是不管哪儿来的,什么样业务需求,必须通吃); 

2.快速(极快的速度实现功能,咨询师上午给的要求,下午就开始在部门应用);

3.稳定,结实(就是说不但不挑剔任何食物,还要能吃的快,消化的快,最终还不要拉肚子,不要影响身体健康).这样一套系统应该怎样开发,从哪里开始开发呢?

项目小组经过多次多方磋商,国外的架构师朋友共同参与下采用云计算的数据管理思想和数据处理技术。

 

通过对该技术特点的逐渐分析,实践,总结 再分析总结 再结合我们实际的需要,确定了我们开发这套系统的核心思想:我们 称之为 ‘离层’的数据管理开发技术.

我们的目标就是平台能够 简单,高效,稳定的配置出数据管理信息系统;.经过数年来的不断升级改进,版本上从最初的 局域网两层结构到现在的适应于广域互联网的多层结构

,再扩展的云服务架构;配置应用上从简到繁 再从繁到简的这么个沉浮过程,软件已能适合大多数管理软件的需求,实现了一个可大可小根据需要自由伸缩的云结构系统.小房子的发展数年来经过多个行业的检验,

如 ERP的包装印刷行业,钢结构行业,铸造行业,汽配行业,资产管理行业,设备管理;OA的人力资源管理行业,企事业单位;医疗HIS系统 等等…;功能上涉及:人事档案管理,绩效管理,财务管理,车间仓库管理,质量管理,进销存,外贸订单管理,内控制度管理,企业报表管理,数据分析管理……

 

2.2.小房子架构体系

 

小房子分为两大板块,数据管理与即时通讯。数据管理是小房子的核心,包含数据字典和菜单管理两个配置表;用户的所有自定义开发工作全部可以在数据字典和菜单管理中完成,

也就是说,两张表解决你对数据的录入、加工、处理、报表、打印等全部工作。即时通讯可以满足用户之间相互发送消息、传递文件、进行视频、语音对话等功能,值得一提的是,

小房子的即时通讯可以对自身数据管理中任何一张数据表进行远程传递,下图是小房子架构的示意:

 

 

 

2.3.小房子部署模式

 

小房子 采用基于互联网的混合云部署模式。系统分为

 

通讯服务器(Houselet cloud server): 此服务器负责 账户管理,消息服务,即使通讯,事件推送等功能。服务器支持互联网的共有云部署或企业内部的私有云部署

 

应用服务器(Houselet appserver): 小房子数据应用服务器 负责数据管理,实例化配置的数据业务逻辑,企业数据库的操作和通讯

 

客户端(Houseletlive): 小房子客户端,用户交互端,支持自定义皮肤,Houseletlive 为小房子独有的数据管理浏览器.

 

 其中,HouseletCloudserver 处以小房子系统的顶端,客户端(Houseletlive)登录HouseletCloudserver 服务器,获取该登陆用户分配的管理系统 和 应用服务器的地址,

再建立和应用服务器的通讯并取得应用服务器返回的业务系统。 小房子客户端(Houseletlive)就像浏览器一样不承载任何业务逻辑,所有小房子开发的所有系统均用同一个客户端,

客户端就像QQ一样,只要能连接服务器的电脑,均可以使用.

 

2.4.小房子怎样解决企业软件开发的困局

 

   ‘天下武功 唯快不破’只有开发快,变动快,维护快,才能解决软件开发中的困局;小房子设计的中心思想就是快,简单,易变。

 

首先,小房子开发软件系统在数据库结构上采用‘松耦合’结构布局,力求各个业务功能,模块之间尽量独立,以为后期的变更留出空间。

 

其二 利用小房子的透明逻辑(sql展示)功能尽量将业务逻辑暴露于表面,使更多人(咨询,研发,实施,客户)参与业务逻辑测试,判断,纠错。

 

其三 体验式开发过程.采用小房子 配置开发特性,可以一边调研一边开发,菜单和数据字典的配置过程,即是调研也是开发,开发过程对客户是透明的,从而快速定位客户需求,减少后期修改量,缩短整个实施周期.

 其四。培养客户参与开发的能力,小房子由于是基于数据库的完全开放的开发和应用平台,在后期细节性的修改维护上,客户基于对自身业务的熟练,完全能够自主修改功能需求,这样就解放了软件开发工程师,减轻他们的工作量,对软件公司而言等于缩短了工期.

2.5.小房子 技术于应用特色

1).配置开发模式,开发过程是数据库开发加上 模块表和字典表的配置,所有的 开发和应用都基于数据库上,数据库之外无需代码开发 。数据库方面分为系统库和用户库 ,

系统库中只有模块菜单配置表和数据字典表 ,用户库为企业业务数据存储和处理库。系统库和用户库也可以统一为一个库

2).云计算技术 云计算的特性是什么? 是弹性资源分配  能够弹性分配存储的系统 叫云存储,能够弹性分配计算能力的服务器 叫云计算服务器。小房子 能够动态分配业务逻辑,

小房子的业务逻辑都配置在 anction 和 dict 两种系统表中 在用户登录后小房子应用服务器把配置好的业务逻辑动态生成业务实例 存放在服务器内存中 以供客户端调用 ,

在客户端不动作或下线后自动释放业务实例小房子Appserver服务器 重要特性就是动态生成业务逻辑实例