技术之外的探讨--第7篇

用日志记录“开源软件”的诞生

赤龙ERP开源地址:

点亮星标,感谢支持,与开发者交流 kzca2000

码云:https://gitee.com/redragon/redragon-erp

GitHub:https://github.com/redragon1985/redragon-erp

赤龙ERP官网:https://www.redragon-erp.com

为什么选择ERP

什么是ERP?网上一搜解释不计其数,我总结一句话就是:管理了企业运营中的所有资源,并实现了从业务到财务的完整信息流。

一提到信息系统,大家一定会想到OA、EHR、CRM,当然还有MES、WMS等,那我为什么单单选择ERP作为开发的产品呢?

(1)第一个原因,ERP在企业级信息化的地位无与伦比。可能有些小伙伴会有反驳,因为很多公司用了OA、EHR,但不是所有公司都用ERP啊。的确如此!但要透过现象看本质,ERP管理了企业中最为核心的业务和财务,从企业需求来说,希望实现管理的信息化,ERP一定是刚需,也是第一选择。但由于ERP本身的功能复杂性和高昂的价格,会使大多数小微企业望而却步。所以很多企业对于ERP的态度是想得而不可得。

(2)第二个原因,产品的普及度的区别。做一款软件,一定是希望有用户来使用的。但是一提到OA、EHR、CRM这类软件,在企业中的普及度极高,而且产品的竞争极其激烈,不管是老牌的系统,还是新加入进来的SAAS产品。在这些产品线上几乎没有可能存活。而ERP在本来刚需的前提下,却出现了普及度较低的情况(根据本人的实际经历得出),这对于软件的生存是有利的。

(3)第三个原因,可凸显产品的优势。OA、EHR、CRM这类产品的同质化问题较为严重,也就是说由于本身这类系统的需求较为单一和明确,所以各大厂商的产品其实没有本质区别。抛开技术来说,ERP本身可以在设计理念上做出变化,而使产品实力上拉开差距。

(4)第四个原因,壁垒。本质上这类软件当然没有技术壁垒。但像ERP这种复杂度极高,专业度极高的软件,有着非常高的业务和逻辑壁垒。这往往是经验问题,但经验又不是直接来自于书本的,经历企业信息化的发展和磨练是最大的壁垒。

开创一个变革

上面讲了为什么研发ERP,现在聊聊为什么开源?原因很简单:破局。影响企业使用ERP的核心问题是:系统复杂度高、产品价格高。怎么解决呢?简化、开源。

说说企业中的实际情况吧,企业信息化的发展历程往往是,初期考虑购买成本、使用成本,引入了一些初步的信息化系统,比如:OA、EHR,然后随着企业发展开始逐年应用更多的其他系统,比如:ERP、WMS、MES、计划预算等。但这些系统往往很难随着企业发展而演变。系统的普及过程也是先从财务系统,再到业务系统,再实现财务业务一体化;而这个过程可能还会伴随着产品的更替,从解决一个点的模块到解决一个面的系统,从使用国内产品到国外。最后就会变成系统一大堆,互相无关联,无完整闭环,数据流、信息流、管理流全部断开的局面,修修补补,直到一团乱麻,无法解决。我经历了多家企业,不同阶段的信息化发展历程,也经历过完整的0-1信息化建设历程,对这一局面很是熟悉,也总结了其中的解决方案。最后决定用一款平台化的开源产品来彻底解决这个难题,开创一场信息化的变革。

(1)变革的开始:开源免费。说谁ERP必须要付出高昂的价格,我想改变这一现状,直接免费。本着开源精神,我采用了GPL协议,GPL的核心理念是所有使用了GPL代码的产品必须开源。这样就保证了ERP及所有衍生产品的免费。

(2)变革之二:简化再简化。说谁ERP必须要逻辑很复杂。其实那些复杂的功能看似强大,而真正在企业实践中多数根本不会用到。所以只保留一条主线流程,让用户按照主流程去操作即可。

(3)变革之三:灵活的设计。灵活的设计其实我认为不用搞得很复杂。就两点即可:第一、除了主流程,不做任何强耦合。第二、可灵活的实现增加字段(1对1、1对多)

“赤龙”一个响亮的名字

我的开源产品叫“赤龙ERP”,可能有些人会觉得这个名字有点奇怪。其实这个名字是有渊源的。这就要追溯到我大学毕业设计时了,还记得当时写了一篇叫做“论中国软件行业发展方向”的论文。写完这篇论文,我深深体会到中国软件自主研发产品的匮乏,所以那会就想是不是自己以后也有机会做一款软件,能够做出点贡献。虽然看似理想有点远大,但心态是阳光的。

还记得那会在毕业之前,用了一个月的时间,夜以继日做了一款现在来看特别简单的软件。但那会特别兴奋和自豪。最后给软件署名的时候,一直在思考起一个什么样有创意的名字呢?结合上面说的远大理想,我就想到了中国的特色:龙;以及代表中国的颜色:红色。英文当然是red和dragon。合并在一起就有了redragon这个特殊意义的名字。中文“赤龙”也就由此得来。

后记

下一篇想说说赤龙ERP的系统设计的经验和思路,如果大家想让我聊聊开源软件研发过程中的哪些事情,也可以给我留言。

希望您读完本文可以帮助笔者进入【码云】或【GitHub】(可搜索“赤龙ERP”)点击星标。等待着您的支持!

为什么要做一款ERP软件——开源软件诞生7的更多相关文章

  1. iOS开发-14款状态栏(StatusBar)开源软件

    本文转载至 http://mobile.51cto.com/hot-418125.htm 之前逛街看到移动做推广,有一个定位应用挺好的,合理的利用了状态栏,做了一些消息提醒和隐藏动画,自己回家就做了一 ...

  2. oschina BI商业智能开源软件

    54款 BI商业智能开源软件 MySQL数据仓库解决方案 Infobright OLAP 分析引擎 Apache Kylin 数据处理和分发系统 Apache NiFi OLAP 数据查询引擎 Dru ...

  3. 通过 FastAdmin 理解开源软件

    通过 FastAdmin 理解开源软件 开源软件 ≠ 免费软件,免费是遵循其开源协议下的一个特性. 开源软件虽然免费,但服务是可以收费的,因为房子要钱. 开源的目的是为了用户更自由. 做开源每天会遇到 ...

  4. spring boot 实战:我们的第一款开源软件

    在信息爆炸时代,如何避免持续性信息过剩,使自己变得专注而不是被纷繁的信息所累?每天会看到各种各样的新闻,各种新潮的技术层出不穷,如何筛选出自己所关心的? 各位看官会想,我们是来看开源软件的,你给我扯什 ...

  5. 推荐一款C#反编译软件(开源)

    大二的时候老师要求做过一个小项目,大概4个人左右一组.当时交流不是特别到位,项目在一个同学的电脑上建成了就一直在他的电脑上(所以好东西不要烂在你的硬盘里),也不知道什么源码管理,可悲到项目做完我还没有 ...

  6. SpringBoot实战:我们的第一款开源软件

    原文出处: 纯洁的微笑 在信息爆炸时代,如何避免持续性信息过剩,使自己变得专注而不是被纷繁的信息所累?每天会看到各种各样的新闻,各种新潮的技术层出不穷,如何筛选出自己所关心的? 各位看官会想,我们是来 ...

  7. GitHub 上最热的10款国产开源软件

    衡量一个开源产品好不好,看看产品在 GitHub 的 Star 数量就知道了.由此可见,GitHub 已经沦落为开源产品的“大众点评”了.一个开源产品希望快速的被开发者知道.快速的获取反馈,放到 Gi ...

  8. Windows系统下三十款优秀开源软件

    Windows系统下三十款优秀开源软件 1.Firefox 官方网站:http://www.getfirefox.com/ 可替换Internet Explorer 功能特点:如果你还没有使用Fire ...

  9. 说说ERP软件的系统设计--开源软件诞生8

    赤龙ERP系统设计篇--第8篇 用日志记录"开源软件"的诞生 赤龙 ERP 开源地址: 点亮星标,感谢支持,与开发者交流 kzca2000 码云:https://gitee.com ...

随机推荐

  1. 015_go语言中的闭包

    代码演示 package main import "fmt" func intSeq() func() int { i := 0 return func() int { i++ r ...

  2. 学生成绩管理系统-JAVA语言测试

     首先右键新建一个工程project 选择Java Project,单击next下一步 project命名为“学生成绩管理系统”,点击finish继续 右键src文件夹新建Package包,取名为te ...

  3. Spring JdbcTemplate中关于RowMapper的使用实例

    在spring boot 集成使用jdbctemplate,首先在pom文件中引入相应的依赖 <dependency> <groupId>org.springframework ...

  4. Window Server2012 修改远程桌面端口号

    Win + R 输入 regedit 打开注册表编辑器 在注册表编辑器中找到 PortNumber 双击 PortNumber,选择10进制,修改想要的端口号 把修改的端口添加为入站规则 重启 Rem ...

  5. ROS 八叉树地图构建 - 使用 octomap_server 建图过程总结!

    构建语义地图时,最开始用的是 octomap_server,后面换成了 semantic_slam: octomap_generator,不过还是整理下之前的学习笔记. 一.增量构建八叉树地图步骤 为 ...

  6. C#LeetCode刷题之#599-两个列表的最小索引总和​​​​​​​​​​​​​​(Minimum Index Sum of Two Lists)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3802 访问. 假设Andy和Doris想在晚餐时选择一家餐厅,并 ...

  7. Who Am I? Personality Detection based on Deep Learning for Texts 阅读笔记

    文章目录 源代码github地址 摘要 2CLSTM 过程 1. 词嵌入 2. 2LSTM处理 3. CNN学习LSGCNN学习LSG 4. Softmax分类 源代码github地址 https:/ ...

  8. 深度学习 | sklearn的train_test_split()各函数参数含义解释(超级全)

    在机器学习中,我们通常将原始数据按照比例分割为"测试集"和"训练集",从 sklearn.model_selection 中调用train_test_split ...

  9. 反制面试官 | 14张原理图 | 再也不怕被问 volatile!

    反制面试官 | 14张原理图 | 再也不怕被问 volatile! 悟空 爱学习的程序猿,自主开发了Java学习平台.PMP刷题小程序.目前主修Java.多线程.SpringBoot.SpringCl ...

  10. 深入理解 Java 内存模型 JMM 与 volatile

    Java 内存模型(Java Memory Model,简称 JMM)是一种抽象的概念,并不真实存在,它描述的是一组规范或者规则,通过这种规范定义了程序中各个变量(包括实例字段.静态字段和构成数组对象 ...