Most nontrivial software systems suffer from significant levels of technical and architectural debt. This leads to exponentially increasing cost of change, which is not sustainable for a longer period of time. The single best thing you can do to counter this problem is to give some love to your architecture by carefully managing and controlling the dependencies among the different elements and components of a software system. This session will first look at the major reasons why so many systems end up in an unmaintainable state and then show how to address the problem by using automated quality gates in combination with a domain-specific language that can be used to enforce an architectural blueprint over the lifetime of a software system.
In the workshop part participants will use Sonargraph to assess and analyze a software system of their choice (Java, C/C++ or C#) and design an architectural model using the domain specific language introduced in the session. The tool and a free 30 day license will be provided during the workshop.