How can you possibly deliver software a customer wants in an ever-changing world? It’s challenging!
A big part of the problem is we like to dive into coding as quickly as possible. While this is admirable, it often leads to fragile, difficult-to-modify solutions. And what do customers do all the time? Change their minds! Which means we need to modify our solutions.
How do we manage? In this course, we will look at domain-driven design as a way to help us out of this situation:
In Part 1, we will look at "What is DDD?" and at the domain driven approach to development. We'll explore the value of collaboration with customers, and understanding the system from their perspective, instead of from the system perspective. We will also strive to build a common vocabulary that carries from our conversations to the code itself.
In Part 2, we'll use the knowledge we've gathered to build up a domain model using UML use case and class diagrams. We will leverage the ideas of entity, value, and aggregate objects to help orient our programming. And, since users change their minds, we’ll introduce changes from the customer, and see how our system can respond more easily to these requests.
Learning this approach may spare you a lot of headaches, when, after you’ve delivered some software, the customer asks, “But can you also make it do this?" 😎
Meet Your Teacher: Glen Wolfram
Glen has worked in the trenches of software development for 30 years. He currently lives in the beautiful Pacific northwest of the United States.
He has applied object-oriented and agile techniques developing applications spanning a vast range, including embedded applications and video games, plus vehicle simulators and medical data systems. Additionally, he brings plenty of examples and understandable analogies to the learning experience. Take it from one student's comment over the years: "I never nodded off in his classroom."