Domain-Driven Design: A Historical View

The history of computing is a domain all unto it’s own. The context of this evolution is worth highlighting by first zooming out to the inventions that came before DDD. Then looking to programming as a field of experiments and inventions, we can consider DDD in light of those preceding inventions. This can help us form a deeper understanding of where the future of DDD and software is headed.

Timeline

Future

Timeline

1822
July

First Computer Designed by Babbage

Charles Babbage proposes a machine that could calculate math by a “method of differences”, later dubbed the “Difference Engine”, to the Royal Society. The machine was in development when he refactored the idea to a much more grand undertaking, an “Analytical Engine”.  Later, the Difference…
1937
January

Binary Computing Invented

Dr. John Vincent Atanasoff envisions the more flexible base of a digital system, the binary base.  Prior, calculators were mainly base 10. Several years later, a student of his, Cliff Berry helps Atanasoff build the first binary computer, the Atanasoff-Berry Computer (ABC) and completed it…
1951
July

UNIVAC – The First Commercial Computer

During the war many computers were made for the government to take advantage of the power of these machines, but the first computer known to be sold commercially was the UNIVAC. It weighed 16,000 pounds and had 5,000 vacuum tubes.  It could do 1,000 calculations…
1963
January

Software Engineering – A Named Discipline

The date is a bit fuzzy, but during the Apollo program that would eventually land mankind on the surface of the moon, Margaret H. Hamilton of MIT is credited with coining this term.  Her motivation reportedly was to give a legitimate level of respect to…
1966
August

Object Oriented Programming Invented

In the 1960’s Alan Kay studied biology, philosophy, and electrical engineering among many of his interests.  Kay reportedly coined the terms “object” and “class” to reference these aspects of his programming, while working on the Simula 67 programming language at the Norwegian Computing Center and…
1968
March

First Windows Style PC Prototype

Douglas Engelbart takes all the technology thus far into consideration and fashions a PC with a mouse, windows, and icons.
1970
August

Waterfall Emerges – Sort Of

When one reads the infamous Dr. Winston W. Royce paper “Managing The Development of Large Software Systems”, they find something fascinating.  He never mentions “Waterfall” as a term.  In fact he never claims wholeheartedly that the processes and their alternatives with a plethora of steps…
1976
July

Apple I – First Assembled PC Sold

Steve Wozniak and Steve Jobs broke from HP to build the first fully assembled PC and in 1977 the Apple II was an even more complete system.
1994
October

Design Patterns Emerge

The Gang of Four (GOF) who are Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides brought their experiences to bear noticing much needed naming convention for repeatable patterns of object oriented design.  This lead to an industry of creating and experimenting with thousands of…
2001
February

Agile Manifesto Attempts a Waterfall Alternative

In response to normative corporate culture that resulted from any number of “Waterfall” methodologies, namely a perception of bureaucracy or the reality of slow progress that many experienced, 17 participants went up in the mountains of Utah and descended like Moses with an alternative approach…
2003
August

Domain-Driven Design Invented

Eric Evans publishes “Domain-Driven Design: Tackling Complexity in the Heart of Software”, commonly referred to as the “Blue Book”, the book that inspired the industry much further in its ability to model aspects of the real world so the computer could do more of our…
2006
May

“Applying Domain-Driven Design and Patterns: With Examples in C# and .NET”

Jimmy Nilsson publishes “Applying Domain-Driven Design and Patterns: With Examples in C# and .NET”, taking the essence of DDD and applying it specifically to .Net.  His book includes a forward by Fowler and Evans.  ~ From the back of the book: “Patterns, Domain-Driven Design (DDD),…
2013
February

“Implementing Domain-Driven Design”

Vaughn Vernon publishes “Implementing Domain-Driven Design” re-energizing the market by helping development teams learn how to take what Evans is teaching and make it work in their world on real projects.  Alberto Brandolini wrote about “Implementing Domain-Driven Design” that “For years, developers struggling to practice…
2014
September

“Domain-Driven Design Reference”

Eric Evans distills his “Blue Book” into a quick reference to quickly target the relational, structural and other concepts of domain-driven design.
2015
April

“Patterns, Principles, and Practices of Domain-Driven Design”

Scott Millett and Nick Tune compile a plethora of thought provoking design ideas to further this journey by publishing “Patterns, Principles, and Practices of Domain-Driven Design”. ~ From the back of the book: “This book distills the ideas and theories of the Domain-Driven Design (DDD)…
2016
January

First DDD Conference – DDD Europe

DDD Europe annually holds the largest gathering of those interested in domain-driven design often bring nearly two-thousand attendees.  This conference has workshops, keynotes and open-spaces to help thought leaders and learners grapple with ways to use domain-driven design to make complex ideas easier to grasp.…
June

“Domain-Driven Design Distilled”

Vernon explores more of his understanding of this design paradigm in “Domain-Driven Design Distilled” and helps practitioners further grasp each of the critical concepts of this powerful paradigm digging into the meaning and uses of a Bounded Context and how to build a Ubiquitous Language…
2017
September

First DDD Conference in the United States – Explore DDD

Paul Rayner, seeing the need to promote domain-driven design and related concepts on this side of the pond took the initiative to make it happen and out came Explore DDD. The conference was held each year since except since covid started and is set to…
2021
November

“Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy”

Vlad Khononov fills a knowledge gap in the broader economy of software development by helping people reason about this paradigm from a different direction.  His book, “Learning Domain-Driven Design”, is now one of the most used books to better help new practitioners and even business…
2023
July

DDDUnitedStates.com Launched

Approximately 20 years after Eric Evans started this domain-driven design phase of computing history by publishing his landmark book, “Domain-Driven Design”, DDDUnitedStates.com is launched to reflect, promote, celebrate and advance the craft. Articulate Domain LLC sponsors this site with the express purpose to raise awareness…
The story is just getting good…

DDD in the future will reach more of its potential

Domain-Driven Design (DDD) is not nearing the end of its life, it has just begun to materialize into a respected discipline. One evidence of this is the considerable growth of adoption in Europe and the amount of content, pro and con, related to DDD. These type of cultural advancements can take decades or, in the case of Babbage at the start of the timeline above, a century or more to reach much of their potential. Domain Driven Design United States is here to assist with this future along side all of the practitioners and enthusiasts working to help heal the software industry of less efficient and non-existent design practices that lead to software struggles. Both at the strategic and tactical level, we envision a world that finally dispenses with the natural tendency to assume domain experts need not be involved and somehow design comes from coding. These tendencies lead to bloated software, frequent systems redevelopment, and developer burnout.

The future of software with DDD promises to play a significant role in bringing new and far more successful models of development to life. The question is very much like the quandary that presented procedural programmers of old when object-oriented programming came on the scene and even now as functional programming is challenging the object oriented world. Will choose to innovate? Or, will we continue to defend the status quo that have arguably proven their inefficiencies? Will we learn how to grasp clean, domain-aligned, design capabilities we don’t yet understand to gain the benefits that this paradigm, DDD, offers? How quickly we answer these questions and begin to truly honor the domains we serve, will determine how quickly the benefits of the future will arrive.