Hands-on software architect, head coach at Bottega IT Solutions specialized in Enterprise Java technologies and effective utilization of modern software engineering techniques. Interested in broadly defined software engineering: architecture of highly efficient/productive web systems (particularly CqRS), modeling (particularly DDD), design patterns, agile development. Hobby interests in cognitive science and psychology. Software Craftsmanship enthusiast. Participates in software community as: president of Polish Software Engineering Professionals Association, publisher, speaker and blogger.
"Why does this change cost 100 mandays? I want to add just one checkbox on the screen?" "But what technical debt we have to pay off? So far everything works fine!" We all probably well know this type of sentences. To make matters worse, there are new symptoms: developers run away from the organization mumbling something about a "big ball of mud" - strange, they all got a pass to the gym... During the presentation I will present several "special hacks" in Domain Driven modeling. Some of them may be obvious (though usually unaware) and others less so. Some may be a significant change, other may be a minor detail - the detail that makes the difference. At the beginning we will use the model as a communication tool in order to: - indicate the complexity of the domain - understand the cost of the change - incur a technical debt on purpose - better understanding of the business by client himself Then we face common problems most models has: - excessive generalization - no distinction of generalization and abstraction techniques - modeling dozens of special cases instead of finding the deep rules - lack of the model for the essential complexity The main part is dedicated to a specific modeling techniques that will be useful at different levels: process, human communication, architectural and implementation.