Software architects need to have it all: exceptional technological know-how, up-to-date programming experience, good people skills, ability to abstract, knowledge of important architectural styles and tactics, and visionary leadership. It has always been difficult to find all of these aspects in a single person.
Modern development efforts set in highly dynamic, agile contexts and the emergence of polyglot technological environments make it even more challenging. This talk introduces alternatives to the classic role of the software architect that showed a boost in delivery speed, overall product quality, and organizational flexibility in real-life projects of various domains. The alternatives work well in an agile project setup and embody a distributed approach of handling architectural concerns. The talk covers important factors for choosing between the approaches as well as the core concepts that make them effective even in more complex environments, including low-viscosity design, architecture communities, and tests of quality attributes.