为什么要做一款ERP软件——开源软件诞生7

2023-11-12

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

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

赤龙ERP开源地址:

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

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

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

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

为什么要做一款ERP软件——开源软件诞生7

 

为什么选择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的系统设计的经验和思路,如果大家想让我聊聊开源软件研发过程中的哪些事情,也可以给我留言。

 

带你了解不一样的【赤龙ERP】:https://www.redragon-erp.com(赤龙官网查看更多功能)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Keytool 应用程序在哪里?

    我需要在android中使用mapview控件 但我似乎不明白如何运行keytool 是用eclipse安装的吗 我好像找不到下载链接 Thanks keytool http docs oracle com javase 7 docs te
  • 具有更高可见性的重写方法是良好的实践吗?

    回答这个问题 如何使用 GUI 使用 PaintComponent 初始化 GUI 然后添加基于鼠标的 GUI https stackoverflow com questions 21336141 how to gui using pain
  • 清理码头 - 删除“不必要”的东西

    我习惯用Jetty http jetty codehaus org jetty 作为我的网络容器 我对我做了什么安装步骤得到原始的焦油球并且清理一些目录和文件从中 我在这里想提出的是 您通常从 Jetty 中删除什么以在生产 登台环境中使用
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 添加动态数量的监听器(Spring JMS)

    我需要添加多个侦听器 如中所述application properties文件 就像下面这样 InTopics Sample QUT4 Sample T05 Sample T01 Sample JT7 注意 这个数字可以多一些 也可以少一些
  • 如何使用 SimpleDateFormat 解析多种格式的日期

    我正在尝试解析文档中的一些日期 用户似乎以类似但不完全相同的格式输入了这些日期 以下是格式 9 09 9 2009 09 2009 9 1 2009 9 1 2009 尝试解析所有这些内容的最佳方法是什么 这些似乎是最常见的 但我想让我困扰
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • 如何获取 WebElement 的父级[重复]

    这个问题在这里已经有答案了 我试过了 private WebElement getParent final WebElement webElement return webElement findElement By xpath 但我得到
  • 如何将 Jfreechart(饼图)添加到 netbeans 的面板中

    我正在使用 netbeans gui 编辑器 并且正在尝试添加一个本身位于内部框架中的 Jfreechart 并且这个内部框架我想将其添加到面板中 正如您在此图中看到的那样 抱歉 我无法直接发布图像 因为我新手 http www flick
  • 如何记录来自 Akka (Java) 的所有传入消息

    在 Scala 中 您可以使用 LoggingReceive 包装接收函数 如何通过 Java API 实现相同的目标 def receive LoggingReceive case x do something Scala API 有Lo
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • Java:多线程内的 XA 事务传播

    我如何使用事务管理器 例如Bitronix http docs codehaus org display BTM Home JBoss TS http www jboss org jbosstm or Atomikos http www a
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • Java &= 运算符应用 & 或 && 吗?

    Assuming boolean a false 我想知道是否这样做 a b 相当于 a a b logical AND a is false hence b is not evaluated 或者另一方面 这意味着 a a b Bitwi

随机推荐