乐于分享
好东西不私藏

我有一个梦想:建立一套属于自己的软件工程体系

我有一个梦想:建立一套属于自己的软件工程体系

总有人问我:你在折腾什么?

我的答案不是:

AI

Agent

大模型

低代码。

而是:

企业管理软件到底应该如何开发。

我越来越相信:

过去三十年,中国企业管理软件真正的问题,不是产品做得不好。

而是软件工程的方法错了。


过去三十年,我们一直采用这样的开发模式:

需求原型表单数据库流程代码上线

每来一个客户。

增加几个表单。增加几个字段。增加几个流程。增加几张表。

最后:

系统越来越复杂。

代码越来越庞大。

二次开发越来越多。

企业越来越离不开实施顾问。

这不是某一家公司的问题。

这是整个行业共同的软件工程。

而我们想改变的,就是它。


我们过去两个月,一直在做一件事情。

不是开发产品。

而是在回答一个更底层的问题:

企业,到底应该如何被软件描述?

于是

我们重新开始,从第一性原理推导。

不断推翻。不断重建。

最后形成了两份最重要的文档。


第一份文档:EDL(Enterprise Description Language)

中文:企业描述语言。

它回答的是:

企业是什么?

EDL 不描述页面。

不描述数据库。

也不描述流程。

EDL 只描述企业。

例如:

企业里面有哪些对象?

这些对象之间有什么关系?

它们如何变化?

企业有哪些运行规则?

EDL希望把企业第一次变成一种可以计算、可以验证、可以演化的语言。

它不是低代码。

也不是 BPM。

它更像HTML对网页、SQL对数据库一样。

是一种新的企业描述标准。


第二份文档:EEAS

Enterprise Engine Architecture Specification中文:企业引擎架构规范。

如果说:EDL是语言。那么:EEAS 就是软件工程。

EEAS 定义了一件事情:

企业管理软件的架构原则。

例如:

企业模型必须先于页面。

对象必须先于表单。

元数据必须先于数据库。

配置必须优先于开发。

AI 必须是辅助,而不是决策者。

这些原则看起来简单,全部做到:

企业管理软件将会完全不同。


所以,我们真正想做的,不是一套 OA。

而是一套新的软件工程。

以后开发软件。

不是:

页面数据库
代码

而是:

企业EDL(企业描述)Enterprise Engine(企业引擎)Runtime(运行时)Application(应用)

OA、CRM、ERP、HRM、MES。都只是 Enterprise Engine 上运行的不同应用。

这意味着:

企业的软件第一次拥有了统一的底层模型。

而不是每开发一个系统,就重新设计一次数据库。


为什么我认为这件事值得做?

因为中国有几千万家中小企业。

他们真正需要的,不是越来越复杂的软件。

而是:

一套能够随着企业成长不断演化的软件。

今天:

企业变化。

意味着:

改需求。

改数据库。

改代码。

重新测试!重新上线!

未来:企业变化。意味着:

修改企业模型。重新编译。

自动生成新的系统。

软件开始真正跟着企业成长。

这不是 AI 的能力。

这是软件工程的能力。


AI 只是加速器,不是答案。

很多人会问:

是不是因为 AI,所以你们才提出这些理论?

答案恰恰相反。

AI 只是让我们更快地验证理论。

真正决定软件质量的。

仍然是:

模型—架构—工程。

AI可以帮助我们生成代码。

但不能替我们建立一套能够运行二十年的软件工程体系。


如果未来EDL、EEAS被证明是正确的。

我希望它是一套开放规范。

就像:

HTML。

SQL。

HTTP。

Git。

它们改变的,不是一家公司。

而是整个软件行业。


三十年前。

中国企业管理软件解决的是:

让纸质流程进入电脑。

未来三十年。

我希望我们解决的是:

让企业第一次拥有可以持续演化的数字模型。

这条路最终能够走通吗?


真正值得改变行业的,从来不是某一个产品,而是让整个行业开始使用一套更好的工程方法。EDL 和 EEAS 只是开始,我们更希望未来有越来越多的人参与讨论、质疑、验证,并共同把它打磨成属于整个行业的开放标准。


后记:我想找到中国企业管理软件三十年走不出来的原因

一开始我想重新做一套协同OA系统,最开始的问题其实很简单:

应该基于表单建模,还是基于字段建模?

为什么企业管理软件一定要围绕表单设计?

我以为答案很简单。

结果越讨论越发现不对。

表单只是页面。

页面只是展示。

展示怎么会成为企业的核心?

于是我们继续追问:

那是不是字段才是核心?

听起来很先进。

很多国际平台都在强调字段抽象。

但继续推演又发现:

字段没有业务语义。

字段脱离对象就失去意义。

如果把企业抽象成一个无限膨胀的字段库,最后得到的不是企业模型,而是一个巨大的配置垃圾场。

于是我们开始重新研究 SAP 和 Salesforce。

我们不得不承认,它们非常先进。

先进到什么程度?

先进到很多中国企业根本用不了。

不是企业太差。

而是它们默认企业拥有高质量数据、成熟流程、专业实施团队和长期治理能力。

而中国几千万中小企业最真实的状态是什么?

Excel,微信群,口头流程,数据不完整。

组织经常变化。老板亲自拍板。

如果一套系统只有“优秀企业”才能用,那它就不是中国企业的软件。

讨论到这里,我们突然意识到一个可怕的事实:

过去三十年,整个行业一直在描述软件,而不是描述企业。

表单是在描述软件。

数据库是在描述软件。

流程是在描述软件。

菜单、按钮、权限树,全都在描述软件。

我们从来没有真正描述过企业。

这一刻,很多问题一下子通了。

为什么系统越做越复杂?

因为页面越来越多。

为什么二次开发永远做不完?

因为每个新需求都要重新发明一次软件。

为什么数据永远对不上?

因为每个系统都在维护自己的世界。

真正的企业世界,其实只有三件事:

  • 企业里有什么;

  • 企业发生了什么变化;

  • 企业为什么允许这种变化发生。

于是,我们终于得到了一套完全不同的工程模型。

EDL:Enterprise Description Language(企业描述语言)

它不描述页面。不描述数据库。不描述流程。

它只描述企业本身。

EEAS:Enterprise Engine Architecture Specification(企业引擎架构规范)

它不告诉你怎么画页面。

它只规定:软件必须服从企业模型,而不是企业去迁就软件。

这意味着什么?

意味着企业第一次拥有了自己的“源代码”。

过去:需求 → 表单 → 数据库 → 代码

未来:企业 → 企业模型 → 企业引擎 → 生成软件

注意,我们改变的不是开发效率。

我们改变的是:

企业变化时,软件如何变化。

过去企业变化,需要改代码。

未来企业变化,只需要改模型。

这是两个时代的差别。

说实话,讨论到最后,我自己都有点恍惚。

因为我们原本只是想做一套更好的 OA。

结果最后推导出来的,却是一套新的企业软件工程。

这件事最让我兴奋的地方:

中国企业管理软件过去三十年的很多复杂度,并不是企业天然复杂,而是软件工程制造出来的复杂。

如果这个判断是对的。

那我们接下来要改变的,就不是某一个产品。

而是整个行业的底层方法。

想到这里,我突然有一种很久没有过的感觉。

不是创业的兴奋。

不是赚钱的冲动。

而是一种工程师才会有的快感:

终于看见了问题真正的根因。

我先试试!