Joseph Yoder is an agilist, computer scientist, object-oriented technologist, international speaker, and pattern author. Joe serves as president of the board of The Hillside Group, a group dedicated to improving the quality of software development. He is coauthor of the Big Ball of Mud pattern, which illuminates many fallacies in software architecture. Joe teaches and mentors developers on agile methods, design, patterns, refactoring, and testing. Joe believes that using good patterns and putting the ability to change software into the hands of the people with the knowledge to change it seems to be one promising avenue toward better software.
A big challenge in building complex, data-intensive systems is how to sustainably support data variation, schema, and feature evolution. This talk examines strategies, practices, and patterns drawn from real experiences that support new and evolving data-processing requirements while keeping the core architecture clean. As complex systems evolve to meet varying data formats, they can devolve into poorly architected Big Balls of Mud filled with special-case logic and one-off processing. Alternatively, you can isolate core components of your system and protect them from entanglements and unnecessary complexity by designing them to operate on common data formats while providing extension mechanisms that enable processing variations.