Joe is a research collaborator at IME/USP, founder and principal of the Refactory, and a fellow and president of the Hillside Group, a non-profit dedicated to improving the quality of life of everyone who uses, builds, and encounters software systems. He believes software is still too hard to change and wants to do something about this. To address this challenge he dedicates time to teach and mentors teams and organizations on agile and lean practices, architecture, domain-modeling, flexible systems, clean design, patterns, refactoring, and testing.
Joe is an author of many patterns and is well-known for the Big Ball of Mud pattern, which illuminates many fallacies in software architecture. He is a co-author of A Scrum Book: The Spirit of the Game which includes 96 patterns for getting the most out of Scrum. Joe received the New Directions award at the Software Engineering Institutes (SEI's) conference on Software Architecture (SATURN) and the ACM recently recognized Joe as a Distinguished Member in the category of "Outstanding Engineering Contributions to Computing".
Pressure to adapt to and shape the market requires agile organizations to add new features, accommodate new interactions, and have new teams work on adapting the software. Sometimes a straightforward software architecture that starts out small when communication is easy can support guided, incremental architectural changes and can gradually evolve with its environment, remaining fit for its purposes. Other times it is not so simple: the initial software architecture can be poorly suited for supporting required changes, or the accumulation of sub-optimal architectural decisions (also known as architectural technical debt) can be too severe; in either case, the architecture needs an extensive revision; especially for the organization to remain agile and adapt to the changing market.
Software architecture revolution can be defined as the process of making profound, large-scale changes to the fundamental structures of a software system to improve its attributes, such as availability, scalability, and maintainability, or to enable new requirements that are incompatible with the current capabilities. Architectural revolution usually demands substantial effort from the organization and thus depends on effective leadership to be successful. However, while there is plenty of research on the technical aspects of any architectural transformation, not much is available from the leadership perspective. The role of managers and other leaders include championing the revolution initiative, prioritizing activities, negotiating the allocation of people and resources, evaluating results, taking corrective actions, and reporting achievements. This talk draws from practical experiences to describe patterns to improve the effectiveness of architectural revolution initiatives.