DDD落地实践复盘 - 记理论培训&事件风暴

Posted 生而为人我很遗憾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DDD落地实践复盘 - 记理论培训&事件风暴相关的知识,希望对你有一定的参考价值。

DDD毕竟是一个指导方法,想落地扎根还是需要很多尝试的,笔者整理了一下在部门内践行推广之初的复盘小结,这可能是多数团队在推广DDD时都会遇到的问题,希望能对大家有所帮助。

DDD在部门进行两次尝试,一次是PPT培训,另外一次是一个新系统领域分析的事件风暴。现把两次尝试的过程做一个小结,内容仅供参考,大家共同讨论分享。下面分别从目的、过程、总结反思几个方面描述下这两次实践过程。实践一:DDD初探培训

实践一:DDD初探

1.1、目的

有幸做了一次部门内分享,笔者也是初次系统的学习DDD,学习之余感受到DDD对初学者并不友好,主要是:1、框架内容过多,很多概念过于晦涩难懂;2、有一定的门槛,对学习者要求有一定的经验要求;3、落地过程要求适应土壤。。。。。。

DDD的灵魂就是ublqutius language(通用语言),但DDD本身就是一种ublqutius language,这就要求践行者本身首先要会DDD这种模式语言,才能更好的应用这种模式。后续的一系列事件确实验证了这一点。

在全员DDD的部门背景下,基于以上感受,所以在部门特意组织了一次名为《DDD初探》的培训,面向部门全体RD和QA同学,目的是让大家对DDD框架内容、核心概念有个统一的理解,最后辅之两个实例简单佐证下DDD是可以指导开发的。

1.2、过程

整个PPT分为15页,共分为6个小章节,时间控制在了40分钟,会后进行了15分钟左右讨论。由于偏概念,所以在开始概念之前都会以一个story的方式带入正文,简述如下(出于保密原因原始培训资料就不要此处公开了,有兴趣的同学可以私信笔者):

DDD落地实践复盘DDD落地实践复盘DDD落地实践复盘

1.3、后续问卷与总结

本次另一个目的就是问路,所以发起了一次问卷和部分同学的f2f沟通,从反馈问题情况来看主要有这么几点:

  • DDD是有用的;
  • 内容过多,抓不到重点,一时很难或不能全面理解;
  • 学习了还是不知道如何实践到项目编码中;

面对面沟通的结论也挺有意思的,系统学习了的同学更关注如何落地,急于找到一种方法来实践,未系统学习的同学普遍关心能不能落地,持怀疑态度;区别非常明显。下面是部分问卷反馈内容: 

1.4、总结

      本次培训,做为DDD实践的问路石,最主要的是佐验了,如果想推广践行,需要所有人员系统性的学习,因为DDD本身就是一门语言,在践行前,必须统一DDD这门ublqutius language,这是最基本的要求。所以后续会在学习和培训人员的指定上想一些对策。

实践二:事件风暴

2.1、目的

背景是一个真实的需求(PRD评审完,系统设计阶段),而且是一个新系统。我们认为新系统可能更容易实践,至于事件风暴的目的就不在描述了。

2.2、过程

参与人,业务、产品、技术、测试,过程简述如下:

DDD落地实践复盘DDD落地实践复盘

最后事件等细分后,就比较贴合实际了,大概是这个样子:

DDD落地实践复盘

2.3、总结

    整体效果还是不错的,好的地方不说了,主要说下不太理想的地方吧:

  • 还是要求参与人员必须对DDD要系统学习,不然效果会打折扣;
  • 在开始实施时可以严格按规则玩,玩透了再改进,比如上图中第一排第二块就存在一些问题;
  • 事件风暴引入的时机,brd, prd, 还是设计阶段?
  • 会议涉及的人数过多,不同层次或角色人员的关注点不一样,时间上也是个问题;

三、总结 

个人的一个观点,DDD实践是一个工程问题,践行时也是一个过程,在过程中只开一两次对齐会议是解决不了领域建模问题的。如果从利他角度来讲,在这个过程中的不同阶段每个人都可以受益,但不是同时受益,有可能要先解决哪部分人先受益的问题

以上是关于DDD落地实践复盘 - 记理论培训&事件风暴的主要内容,如果未能解决你的问题,请参考以下文章

DDD 领域驱动设计落地实践:六步拆解 DDD

DDD 领域驱动设计落地实践:六步拆解 DDD

DDD领域驱动设计落地实践系列:初识DDD

领域驱动设计 - 战略设计 - 1/2限界上下文

实践篇教你玩转微服务--基于DDD的微服务架构落地实践之路

如何用事件风暴构建领域模型?