This is an experience report on the use of Domain-Driven Design (DDD) in a project about 25000 man-hours size. it shows how DDD promotes a close customer relation. It also presents patterns used in the project as well as some extensions to DDD as described in the book by Eric Evans. Learn how DDD works when it is applied systematically in a project over many years. Read more
After a decade of heavy process, the Agile revolution of the late ’90s threw off the dead hand of big upfront design. The bloody purge that followed was needed! There were unintended consequences. Too many teams interpret “Agile” as a permit to not think about design. But if they have ambitious goals, Agile teams need more than standup meetings and iterations. Many teams get off to a quick start, building lots of features in early iterations, but end up with a “Big Ball of Mud”. Without clear and well-structured code, they cannot sustain their pace and also put themselves at risk of, one day, encountering a critical feature they simply cannot deliver. Without the common understanding between developers and stakeholders that is forged in domain analysis, one of the greatest benefits of iteration, the deepening communication about what the software should do and how it should do it, is never realized. We must not return to the “Analysis Paralysis” but interpreting “Do the Simplest Thing” as “Do the Easiest Thing” doesn’t work either. This talk will consider ways of incorporating modeling and design into the iterative process in a lightweight way that increases communication with stakeholders and decreases the likelihood of painting ourselves into corners, without returning to the dead-hand of the analysis phase.
Dan North gives an overview of Domain Driven Design and Behavior Driven Development then ties them together for a powerful mix.
This talk presents the experience gained and lessons learned when the IT department at Statoil ASA, a large Oil and Gas company in Norway, used Domain-Driven design techniques to verify the software architecture chosen for the development of our group oil trading application. The hypothesis was that the use of object oriented techniques, domain driven design and a proper object-relational mapping tool would significantly improve the performance and reduce the code base compared to the current legacy systems. The legacy system is based on several Oracle databases serving a variety of clients written in Java, Gupta Centura Team Developer and HTML. The databases have a layer of business logic written in PL/SQL offering various system services to the clients. To validate our new object-oriented software architecture, we re-implemented one of the most computationally heavy and data intensive services using Test First and Domain Driven Design techniques. The resulting software was then tested on a set of servers with a representative subset of data from the production environment. We found through this exercise that using these techniques on our new software architecture drastically improved the performance of this service as well the quality of the resulting code when running atop our Oracle database. We also switched to an object database from Versant and achieved additional performance gains.
In this presentation held during OOPSLA 2008, Rebecca Wirfs-Brock reviews various forms of driven development in order to understand the principles and values of several design practices used today. By comparing them, a designer will get a broader view over design and will better understand which design practice is more appropriate for him.
Effective software teams take a torrent of information and knowledge about their subject matter (the domain) and distill it into a stream of quality software. Finding and exploiting domain models is a key to success in projects with complex domains. Aimed at senior developers, architects and managers, Eric Evans will introduce the concepts of Domain Driven Design.
Eric Evans, author of Domain-Driven Design, is a thought leader in software design, domain driven design and domain modeling and particulary focuses on strategic design.