Software architecture has enormous influence on the behavior of a system. For many categories of systems, early architectural decisions can have a greater influence on success than nearly any other factor. After more than 20 years of research and practice, the foundations for software architecture have been established and codified, but challenges remain. Among other trends, increased connectivity, a shift to the cloud and to mobile platforms, and increased operational and market tempos have precipitated the need for changes in architectural practices and decisions. This talk shares a perspective on the history of software architecture, trends influencing the need for change and the related architectural challenges, and some applicable research and practices.