Decoupling Complex Workflow In WinForms For Iterative Development And Incremental Delivery
One of the most significant challenges of working within a release-per-feature project lifecycle is managing features as independent parts of the development cycle. At some point, the various features will need to be integrated into the trunk or master source code branch. When this occurs we want the different features to integrate as smoothly as possible. To accomplish this we look to design and implementation patterns that provide reduced coupling between our features while still providing the ability for them to communicate and work together. In this presentation we will walk through the use of an Application Controller, Event Aggregator and Command Pattern in combination with a good IoC Container, to show how we can reduce the coupling between forms in desktop systems. These patterns, among others, will help us to develop interconnected software modules that can be developed and managed independently.
Derick Bailey is a software architect and technology leader living in Waco, TX. He has more than 12 years of professional software development experience and more than 20 years of experience writing code. Derick has been active in both the Austin and Dallas area communities where he has given presentations on topics such as the SOLID design principles, complex workflow scenarios with IoC containers and Application Controllers, and more. Derick is currently a blogger with LosTechies.com, providing experience reports and theoretical discussions on progressive software development techniques and agile/lean management practices.
Derick has been promoting and implementing various principles and practices from various agile methodologies such as Scrum and XP, and most recently including principles from lean thinking and lean software development. He has facilitated the implementation of Kanban systems in two enterprise system teams in the last year, has coached additional teams in agile and lean methodologies, and is continuously looking for opportunities to help others become more productive.