Complex software always has an architecture, even if it isn’t intentional. Being agile isn’t enough. It isn’t prudent to just keep your code clean and hope that good architecture will simply emerge. Especially when there is a lot of technical risk, interdependencies, and conflicting priorities. Good architecture requires ongoing attention and stewardship. This talk presents [...]