再谈快速开发平台(11.19)

注:图片来源  http://www.jepaas.com/

对于快速开发平台在很早一起我写过文章专门谈过,在16年我对开源快速开发平台EOVA试用并写了试用总结后,已经很久没有谈过快速开发平台方面的话题。也没有对各类常见的开源或商用的快速开发平台进行了相关的试用和总结。由于公司本身已经有相关的基础技术平台的积累,因此也没有引入任何的快速开发平台来进行我们外接项目的快速开发和交付。

而自己这几年没有关注快速开发平台,其原因究竟在哪里?实际上最主要的原因包括二个方面:

1. 快速开发平台本身往往是一个封闭的系统,扩展维护存疑,同时该技术资产不受软件企业自己控制。

2. 面对一些特殊的和复杂的业务场景需求往往难以满足,同时也没有开放扩展类接口能力。

特别是对于第2个问题,即使你满足了99%的功能需求可灵活配置,但是关键需求的1%无法满足,整个快速开发平台又是黑盒你无法去定制和扩展,同时平台提供商也不帮你定制开发,那么这个业务系统就很难最终交付给客户使用。

我们经常会说软件开发商有时候会绑架客户,那么同样道理,这类的快速开发平台能力提供商往往就容易绑架软件开发商。软件开发商用平台朝客户交付了软件产品,但是最终这个软件产品的可运维属性并不真正掌控在软件开发商手里面,这就是最要命的一点。

也正是这个原因我们也看到,往往是有一个小规模的软件开发队伍的甲方企业往往容易选择这类快速软件开发平台,即自己定制和快速开发后自己用,平台提供商提供二次服务能力,减少了软件开发商这个环节。

再其次,一个软件企业的开发团队本身也不愿意采用这种平台。

团队人员往往喜欢学习和尝试各种开源技术和新框架,希望自己在开发过程中锻炼自己各方面的技术能力储备提升自我价值,这种技术能力储备本身是适配所有的软件开发企业的。而对于这种快速开发平台本身,开发人员更多是进行简单的配置和SQL编写,很多技术细节已经封装在底层,开发人员想要提升技术能力很难。

如果要给刚毕业的一开始就接触这种平台,即使你平台用的再熟,脱离平台你发现连基本的简单功能都做不出来。对于Java的常用开发框架,开源组件,三层架构,数据库建模等更是一窍不通,这也是大部分从事软件开发人员不愿意的事情。

而今天我为何还要再谈快速开发平台?

主要原因还是这几年快速开发平台本身也在快速的发展,一个快速开发平台只要应用的企业和团队多了,那么就更加容易在实践过程中不断的讲个性化需求抽象为共性需求融入到快速开发平台里面,这个本身有一个过程,积累的越久,快速开发平台的能力往往也就越强大。

而当前来说, 一个好的快速开发平台往往可以解决90%以上的业务需求功能实现,而个性化或定制的又充分提供开放接口给你自己去处理。那么这种开发平台本身是又价值的 ,可以真正做到快速的功能交付和对需求的敏捷响应能力。同时一个功能开发往往还同时适配桌面和手机端,更是减少了重复开发和定制的工作量。

而对于开发人员来说,很多开发往往做的实际就是开发平台的活,简单的增删改查功能,而且做的质量还没有开放平台好,要价和成本还不低,速度也慢。这类开发人员往往最终一定会被取代掉,这也是我原来就强调过的对于软件开发人员的薪酬一定会出现两级分化。高的会很高,而低的也会很低,不会出现类似前两年随便一个IT培训班出来的人员就能够拿高工资的现象。

由于快速开发平台本身的交付周期很短,可以更加方便我们快速的形成可用的产品原型给客户演示和试用,并快速的进行迭代变更和优化。这可以很好的解决传统模式下静态原型或Axure原型本身交互和数据上面的弱项,真正让用户边使用边优化。

如果一个业务系统真正发挥作用了,业务和数据量也都呈现明显的增长趋势,我们大可以重新规划完全重做并脱离快速开发平台,而采用快速开发平台则是拥有了最小的试错成本。

最近几周,自己又重新搜索了下当前提供商用的快速开发平台的公司,对于几个产品也初步进行了演示环境的使用,确实了比前面几年有了很大进步,至少我们常用的功能实现都能够很轻松的配置出来。几家的比较下来,自己比较推荐如下这家的快速开发平台,也准备在后面深度试用下。

http://www.jepaas.com/product_scrm

如果最近又接一些小项目,也打算用这个平台做下尝试,看下实际的效果如何。而对于快速开发平台而言,一个好的快速开发平台必须具备的一些关键能力如下。

1. 高度灵活,可配置的流程引擎能力,4A能力,核心是用户,组织,资源,权限。

2. 报表平台能力

3. 表单灵活的可视化设计和配置能力

4. 业务规则和逻辑的可配置能力

5. 数据库sql的灵活配置能力

6. 同时对桌面端和移动端的双向生成和交付能力

7. 门户的可配置化和定制能力

8. 日志监控和运维管理能力,封闭平台应该提供的问题排查能力

9. 灵活开放的二次开发接口能力

如果从甲方角度思考,还有一点就是可可以完整源代码导出并交付的能力,方便后续甲方接手管理和运维。