Recorded at Domain-Driven Design 2016, January 26-29, Brussels
Jim Coplien has over 40 years of experience in software development and has been a pioneer of object-oriented design, agile development process, and software patterns. He has written books covering a versatile spectrum of disciplines ranging from organizational structure to programming. During his career he has held positions as varied as the VUB Vloebergh Endowed Chair, electronic design automation developer, Bell Labs researcher, and independent consultant.
In addition to being a Scrum trainer and coach, Cope leads and facilitates the industry Scrum PLoP® community effort (scrumplop.org) to create a de facto standard of rationalized Scrum. He lives in Denmark with his wife and son. He still writes code, loving Ruby, tolerating Objective-C, with his current project being in Java.
DDD is rooted in symmetry — i.e., in a hierarchical model of the world into disjoint sets. We know (in fact, one can formally prove) that the world is not so simple. This means that while DDD may lead to a good top-level architecture, the details must almost always break symmetry locally. This in fact is the foundation of patterns and is also the foundation of most popular programming languages' feature sets. It further explains why popular programming languages are “messy.” This talk gives pointers on how to mix symmetry and symmetry-breaking in design by combining DDD, object-orientation, patterns, and DCI, and give an intuitive glimpse of the unifying formalisms that tie them together.