Software Architecture and Agile Development
Software architecture is a massive multidisciplinary subject, covering many roles and responsibilities, which makes it challenging to teach because so much context is required for every subject. It is also a fast-moving discipline, where entire suites of best practices become obsolete overnight.