使用DDD重新思考ERP系统的一些初步想法 –feststelltaste

20-01-27 banq
                   

“企业资源计划系统”(ERP系统)之类实际上是一种瑞士军刀软件系统。毫无疑问,它们确实是功能强大的工具,但是在某些情况下,它们可能造成的弊大于利。因此,我想讲一个虚构的故事,该故事显示了组织如何陷入困境。为此,我将尝试使用Nick Tune的全新Core Domain PatternsWardley Mapping(但请谨慎使用Wardley Maps,我仍在学习)。

为了更好地了解ERP系统周围的环境,我们首先简要介绍一下IT系统在过去几十年中的作用:

  • 1970年代:流程自动化/合理化
  • 1980年代:实现经济目标
  • 1990年代:启用新的业务流程
  • 2000年代:商业模式的差异化
  • 2010年代:进入新市场的整合中心

特别是在最近的二十年中,非常有趣:在2000年代的IT系统的帮助下,通过独特的功能与其他竞争对手的差异化以及在2010年代通过灵活的API集成而获得的竞争优势。让我们回想一下2000年代初期。我们公司在eBay等在线市场上销售商品。没有其他公司可以像我们那样集成来自各个市场的API。我们是API集成商中的明星。整合是我们的核心业务!为了缩短上市时间,我们使用了全新的ERP系统。

我们不仅有仅用于API集成的ERP系统,当时还没有所有通用的东西如发票,我们当时没有想到为此创建自己的独立应用程序。

但是我们的销售人员始终对我们的ERP系统开发人员有特殊要求。我们无法否认他们的愿望。随着时间的流逝,这带来了成本:所有这些定制都是昂贵的,并且严重依赖于ERP系统的内部。是的,有接口和特定于数据库厂商的数据库架构之类的东西,但是谁在乎呢?我们是一种拉皮条式的ERP系统。作为精通技术的开发人员,我们甚至定制了我们的ERP系统的基本模块(ERP v1')。

后来几年过去了,突然(谁曾想到这一点!)有关发票的法律发生了变化。需要发布了新版本的ERP系统(ERP v2),免费提供发票模块的所有合规性更新!我们只需要更新到这个版本,一切都会好起来的。

但请稍等。。。几年前,由于我们对ERP系统内部的大量修改,对ERP基本模块进行了重大更改,已经无法更新到新的ERP版本。

为此,我们投入了大量的资金,我们不想放弃所有投资。但是,即使我们愿意付出代价,我们也无法更新到最新半比,因为我们系统中的所有模块现在都依赖于基本模块中未定义的自定义代码量。丢失所有有价值的微优化的风险实在太大了。这给我们留下了唯一的选择:确保我们的发票模块的旧版本符合新的法律法规。因此,我们在通用子域中编写了自己的模块。这简直就是在浪费钱!

但是,情况变得更糟:借助新的ERP系统,还立即提供了新的超酷API集成。我们所有的竞争对手现在都可以更新到较新的系统。与我们的竞争对手相比,我们的差异化完全消失了,这使我们落后于我们,因为我们无法利用这个机会:我们仍然陷于过去版本的纠结中!

我们遇到了“ 前桌赌桌赌台 ”:我们以前的核心资产降级为纯粹的支持功能或负债,而我们只能维护普通的支持和通用子域模块。没有新的核心,没有新的差异化机会,而是沉迷于保持旧系统运行的挑战,因为我们没有更多的钱摆脱所有混乱。

不开心的结局。

那么,这个故事的寓意是什么?

使用ERP系统时,请不要与ERP的基本模块打交道,以防止造成不可更新的巨大成本。请记住,您还具有依赖于基本模块的其他具有战略意义(不重要)的模块。在最坏的情况下,趋势可能会逆转,您将获得仅需以高昂成本维护的支持和通用模块,从而无法在市场上脱颖而出。

在元级别上,我希望您看到了如何使用Nick Tune的Core Domain Patterns和Simon Wardley的Wardley Maps来解释这种情况。这些是进行战略思考的绝佳工具!