Musings and Scribbles on Software Development
Software is eating the world and companies need to become software companies. It doesn’t mater if the business is in traditional area, like finance or manufacturing, software is no longer something to support the business, it is become the business.
The “agile” revolution that has happened in the last years has dramatically reduced the cycle to software delivery. However this revolution was partial only, as many companies went through the “agile” didn’t adopt the technical practices which “agile” methodologies rely upon. What’s worse, is that design has also been relegated and therefore many projects are producing crappy code.
To companies this situation poses a great loss of opportunities, and the only way around this is to get back into designing.
Domain-Driven Design (DDD) is a way of developing software which focuses on implementing the best software design based on models that explicitly reflect the core competencies of an organization. DDD forces the organization to understand where it should distinguish it self from the competition, while at the same time guiding in the creation of the “right” software. This all leads to strategically valuable and useful software.
In this talk I’ll provide an introduction to DDD, starting by clarifying the reasoning for its need and then delving into what it is and how we can start applying its techniques.