Architectural Knowledge Hubs
Online Resources for Software Architects
The November/December 2016 Theme Issue of IEEE Software on the Role of the Software Architect in the Digital Age is a good starting point - for instance, the Guest Editor's Introduction to the Theme Issue (PDF). More information can be found in blog posts, for instance a definition of done for architectural decisions.
Websites by thought leaders that we frequently consult (among many others) are:
- Martin Fowler's Bliki
- Gregor Hohpe's Ramblings
- Philippe Kruchten's Weblog
- Eoin Wood's website
- Michael Stal's software architecture blog
- The Responsible Designer is the blog of Rebecca Wirfs-Brock.
- Personal page of Gernot Starke (mostly in German) - arc42, aim42, IT architect profession
- Technical Reports and other publications in the Digital Library of the Software Engineering Institute (SEI)
- The Open Group website - IT Architect Certification, TOGAF, ArchiMate, XA
- Agile Alliance, for instance starting with Agile 101
- Object Management Group (OMG) - UML, SPEM, MDA, CORBA, ADM, KDM
- IEEE Software, as well as SWEBOK and the very readable standard for architecture descriptions, ISO/IEC/IEEE 42010
Academic conferences (software architecture research) are ICSA, ECSA. Online archives include the ACM Digital Library, IEEE Xplore and ScienceDirect; the SWEBOK and the very readable standard for architecture descriptions, ISO/IEC/IEEE 42010 are worth exploring as well. The Software Architecture Handbook website by Grady Booch compiles quotes and give book recommendations, but does not seem to list and categorize patterns at present.
The following conferences have a practitioner focus on all things software architecture are (most of the presentations are available online and can be accessed from the conference websites):
- SEI SATURN, e.g. SATURN 2013
- Industry Day at CompArch/WICSA 2011
- ECSA 2014 also had an Industry Day
- OOP (most talks in German, presentations not available online by default)
- SPLASH and OOPSLA (e.g. practitioners reports program at OOPSLA 2008)
If you are new to the field, you can get started by reviewing the arc42 site (in German). If you have a little more time to study, many excellent books on the topic are available to you, including (but of course not limited to):
- Software Systems Architecture (Second Edition) by Nick Rozanski and Eoin Woods introduces core architecture concepts, as well as a viewpoint- and perspective-based architecture framework.
- Just Enough Software Architecture by George Fairbanks proposes a pragmatic and risk-driven approach to design method tailoring and modeling.
- The Process of Software Architecting by Peter Cripps and Peter Eeles is a comprehensive reference for architecting tasks, work products (a.k.a. artifacts) and abstraction-realization levels.
- Design It! by Michael Keeling (2017). This book in the Pragmatic Programmers series by Michael Keeling make software architecture lightweight and flexible (to avoid the term agile here) and presented a rich toolbox that comes with highly educational examples.
- (in German), Effektive Softwarearchitekturen by Gernot Starke
- Continuous Software Architecture in Practice by Murat Erder, Pierre Pureur and Eoin Woods is a 2021 newcomer to this list.
- Design Practice Reference by Olaf Zimmermann and Mirko Stocker continues to collect and curate knowledge from these and other sources.
If you think that you do not need any architecture design because you apply agile practices and the architecture of the system under construction will emerge silently during refactoring, please consult some of the following references:
- Ken Schwaber's original Scrum paper from OOPSLA '97 (hint: have a look at pages 10, 12, and 13).
- Agile Uprising podcast on Agile Architecture (interview with Rebecca Wirfs-Brock and Martin Fowler) and/or ThoughtWorks presentation Agilists and Architects: Allies not Adversaries (Rebecca Parsons, Martin Fowler).
- Philippe Kruchten's blog post on Agile Architecture.
- IEEE Software, Special Issue on Agility and Architecture (March/April 2010).
- The Agile Architecting Library at the Software Engineering Institute (SEI).
Bottom line: run a an architectural spike (or Sprint Zero or Pregame including High-Level Design work) and maintain a decision backlog in addition to a product backlog!