之三 业务开发平台如何提高效率
作者:方平
目前,由于使用和接触平台的用户尚不多,而整个IT领域是最擅长炒作的领域,往往一个产品刚有一个理念,媒体上就铺天盖地的宣传。也难怪,就如明星的绯闻一样,社会需要热点、焦点。而很多公司为了达到技术保密,则往往给用户猜谜语,这导致了部分用户对业务平台奉若神明,把它当作万能解药,另外一部分用户则产生了偏见、误解,对平台不屑一顾。特别是作为平台布道者的程序员群体,90%以上怀着文人相轻的思想,首先怀着挑剔的心态来看待平台。这很大程度上影响了平台的普及。而媒体的报道更多的还是理念,而很少实际的东西,这让很多用户出于云里雾里。我们就曾遇到一个大型公司的CIO,他一直不相信其中的神奇,让我们现场短时间里根据其需要配置一个业务流程,我们按其要求完成后,他还在怀疑,他认为没有这么神奇的东西,因为他从国外回来,这种平台在国外几乎也看不到。本文试图向用户揭示,平台是如何提升开发效率的,并对平台有一个感性认识,也让用户在选择平台化产品的时候作一个参考。
在本系列之一:何为平台中,我们讲到平台一般由表单生成器、逻辑生成器、报表工具等几个必要部分组成,还有一些平台产品包括工作流或BPM、商业智能套件、电子商务套件等。这个仅仅是一个共性,即这些平台公司展现出来的东西。但我们首先可以从问题的起源来分析,为何几乎所有的平台产品选择了这种解决方案。
回忆我们所有的数据库应用软件,如财务软件、OA系统、HR系统等,几乎都由这样几个必要部分组成:
1. 界面。比如财务软件,录入凭证、成功或失败提示等,都属于人机对话接口部分,都可属于界面的范畴。扩展开来,新闻、论坛都属于界面部分。
2. 响应逻辑。比如凭证入帐,在一个按钮被触发以后,凭证将分别记应收帐、银行台帐、应付帐等,这些记账过程是后台逻辑处理的,一般用户不必关心。
3. 报表。数据录入和被处理后,如果我们需要进行统计和分析,则需要根据需要作统计报表。
4. 工作流系统。当一张费用申请单或采购申请单需要多人审批,且流程经常发生变化的时候,则需要最好有一个工作流系统来适应这种变化。它可以灵活的定义审批过程中的各种逻辑,而不需要修改程序。
从上面可以看出,这几个部分组合起来,基本可以满足我们所有的业务需要。如果再加上开放性接口,满足用户一些异常特殊逻辑的无缝衔接,即可满足用户的各种各样的需要。
这里首先阐述了平台如何满足变化的需求的内容。下面针对平台开发同传统开发的一个工作量对比:
编号 |
阶段 |
老工艺开发步骤 |
新工艺开发步骤 |
老工艺相对时间 |
新工艺相对老工艺时间 |
备注 |
1 |
项目计划 |
|
|
|
|
|
1.1 |
制定和学习开发规范 |
√ |
- |
3 |
0 |
|
1.2 |
制定项目计划 |
√ |
√ |
2 |
1 |
老工艺需要制定开发计划,新工艺只需要按功能制定计划 |
2 |
需求分析 |
|
|
|
|
|
2.1 |
a. 功能需求 |
√ |
√ |
10 |
10 |
|
2.2 |
b. 数据需求 |
√ |
√ |
3 |
3 |
|
2.3 |
c. 性能需求 |
√ |
√ |
1 |
1 |
|
2.4 |
d. 人机接口需求 |
√ |
- |
1 |
0 |
|
2.5 |
e. 安全和保密需求 |
√ |
- |
1 |
0 |
|
2.6 |
f. 网络需求 |
√ |
- |
1 |
0 |
|
2.7 |
g. 和其他系统的接口需求 |
√ |
√ |
1 |
1 |
|
2.8 |
h. 操作、维护和安装需求 |
√ |
- |
1 |
0 |
|
2.9 |
i. 一些特殊的设计限制 |
√ |
- |
1 |
0 |
|
3 |
概要设计 |
|
|
|
|
不需要进行概要设计,直接利用平台根据需求配置即可 |
3.1 |
a. 整个软件系统的层次结构; |
√ |
√ |
2 |
2 |
|
3.2 |
b. 每一层次的模块结构; |
√ |
√ |
2 |
2 |
|
3.3 |
c. 相关模块间的接口, 即模块间传递信息的内容、方式和协议; |
√ |
√ |
5 |
5 |
|
3.4 |
d. 确定各模块在计算机网络环境下的物理分布; |
√ |
- |
1 |
0 |
|
3.5 |
e. 确定系统的数据库结构; |
√ |
- |
3 |
0 |
|
3.6 |
f. 确定本软件系统与其他外围系统接口; |
√ |
- |
5 |
0 |
老工艺需要详细讨论实现方式,技术手段,工作量和成本核算,必要的情况需要作原型设计。新工艺只需要选择采用平台提供的哪种方式即可 |
3.7 |
g. 确定模块与系统功能间的关系; |
√ |
- |
5 |
0 |
|
3.8 |
h. 确定模块与数据库表间的关系; |
√ |
- |
5 |
0 |
|
3.9 |
i. 考虑可靠性、安全性、灵活性等方面的设计; |
√ |
- |
5 |
0 |
|
3.1 |
j. 要确定用户界面的设计风格; |
√ |
- |
2 |
0 |
|
3.11 |
k. 主要算法设计; |
√ |
- |
5 |
0 |
|
3.12 |
l. 异常处理设计。 |
√ |
- |
5 |
0 |
|
4 |
详细设计 |
√ |
- |
135 |
0 |
|
5 |
编码实现 |
√ |
- |
205 |
0 |
|
6 |
配置实现 |
- |
√ |
0 |
10.25 |
根据我们在BCP1.0上的测试,BCP1.0擅长的领域开发效率比定制速度快20倍左右 |
7 |
内部测试 |
|
|
|
|
新工艺在配置过程中完成 |
7.1 |
单元测试 |
√ |
- |
100 |
0 |
包括编码错误的修改 |
7.2 |
集成测试 |
√ |
- |
50 |
0 |
|
7.3 |
构造测试 |
√ |
- |
30 |
0 |
|
8 |
系统测试 |
√ |
√ |
30 |
15 |
基于应用的测试。老工艺需要同时解决应用逻辑和编码问题。新工艺只需要解决应用逻辑问题。 |
|
不考虑需求分析合计 |
|
|
600 |
35.25 |
|
|
总合计 |
|
|
620 |
50.25 |
|
表二 新旧工艺对比
1. 加粗部分为新工艺不需要的部分。
2. 老工艺相对时间来自日本NEC软件外包项目的时间分配表,属于内部文档。
可以发现,基于业务开发平台对整个项目开发效率提升620/50.25=12.34倍。不考虑需求分析所占用的时间,则效率提升:600/35.25=19.8倍。
考虑业务开发平台并不需要属于稀缺资源的程序员,业务开发平台的成本效率将非常可观。假设中国一个程序员的平均工资3000元/月,一个具备基本IT能力人员的平均工资1500元/月。在同样工作量的情况下成本将节省一倍。
则总体成本节省约:12.34×2=24.68倍
不考虑需求分析的成本节省约:19.8×2=39.6倍
考虑系统后续维护是一个很高的成本。由于系统维护基本没有需求分析,则系统维护的工作量同样为传统开发工艺的1/20。
如考虑系统的及时上线而带来的潜在经济、管理效益,平台本身相对定制程序的健壮性、稳定性、扩展性等方面,则业务开发平台更具备极大的优势。
故业务开发平台带来的成本优势和开发效率对比传统工艺是惊人的。
这里很多读者会问,配置时间快20倍是如何测算出来的呢?这主要是实际开发的对比测试来确定的。这里,我们从另外一方面论述,业务开发平台是如何提升开发效率的。
我们以框架结构对比传统的建筑作例子来说明。我们知道,一栋房子,从底层开始建设,需要一个砖一个砖的堆砌,每个砖堆砌的质量因为工匠的手艺和责任心而不同。假设有一万块砖需要砌,就需要一万个单元的动作,同时还必须考虑排水、强电、弱电、智能布线等。这样周期很长,质量还无法标准化。而平台可根据常见的单元,预先固化,比如正方形、楼梯、墙的厚度、墙的材质等作一些选择,拖放上去即可,其本身已经考虑到排水、强电、弱电、智能布线等的搭配和组合。周期很短,质量还是统一的。如需要作地下工程,则工程量和成本至少增加1/3。
从上面我们可以看到,平台的作用仍旧是重用的思想,另外就是关注变化的思想。即所有要作的工作,就是满足差异化,标准化的东西不必重新搭建,所以效率就得到最大限度的提升。
从这里还可以理解为何不同的开发平台,效率不同。比如楼梯样式,系统是否提供了多种样式让我们直接选择?(模型抽象能力)如果特别特殊的样式,是否可以从“台阶”等基本元素开始搭配?(即使是从基础元素开始搭配,也比从最底层的没有经过修饰的元素快,比如楼梯的扶手都是要焊接的,所以焊接后的扶手就可作为一个整体开始使用了)楼梯的任何一段,是否可以搬到其它地方作一些特殊用途?(一切皆为对象,否则如果把整个楼梯作为一个对象,则缺少应变能力)。如果不能达到上述要求,平台的扩展性就比较有限,在遇到一些特殊需求的时候,自然效率低,经常会遇到短板,需要从砖头等最基本的元素从头搭建,自然制约了搭建效率。
这里我们可以总结出几个规律:
1. 如搭建房屋的框架可大可拆、可任意组合而不必考虑组合后的善后问题(排水、强电、弱电、智能布线等,类似软件开发中的性能、安全性、稳定性、容错性等),则框架的设计就非常合理,搭建房子的速度就非常快。同时,我们可以想像一下这种盖房的速度同传统相比的优势。
2. 房子越复杂,同传统搭建方式相比,效率提升越明显。(越大型的系统,平台的效率优势和成本优势、后期维护优势越明显)
3. 如框架搭建的标准设计为开放模式,则所有的其它厂商可以不断丰富现有框架,生命力越强,开发效率将越来越高;(开放性)
4. 如建房的自动化程度越高,则用户甚至可以自己根据自己的需要来进行搭建和调整(二次开发)。(易用性,是否提供一个集成的Studio,来进行整个房屋搭建,还是很多工程队分开)。调整的过程不必考虑善后问题(排水、强电、弱电、智能布线等)和成本的浪费(比如装饰装潢必须推倒重来,类似软件开发中修改代码还不如重新写来得快)。所以说,易用性高的时候,用户作一些选择或短期的学习(1-5天),即可完成房屋的搭建,很多用户都可接受。
从上面我们大家都能理解的例子可以看出,不同的平台产品差异也很大。另外也可以看出平台产品相对传统昂贵的定制开发在效率和成本上具有不同数量级的优势。
如有兴趣了解更多详情,敬请来函(market@51drp.com)或填写合作伙伴加盟申请表,我们会向您提供更多帮助。
方程声明:本版文章内容纯属作者个人观点,仅供用户和专业人员参考和讨论,不代表方程同意其观点或描述。如需转载,请注明出处。
|