This presentation was created for the SATURN conference series and does not necessarily reflect the positions and views of the Software Engineering Institute.
Functionality is a measure of how well a system does the work it was intended to do, but functionality is not all that matters in software development. Properties like interoperability, modifiability, and portability also matter as much as functionality does. These properties are determined primarily by the software structure - or the software architecture. While many structures can satisfy functionality, few can satisfy the required functionally and the quality attribute properties needed in a system. Achieving quality attributes in a predicable way can only be accomplished by deliberately selecting the appropriate structures early in the development process. This is a radical departure from high speed, lightweight programming methodologies (e.g., XP) that focus on functionality and prescribe writing software until a product emerges - architectures also emerge in this paradigm. Emergent architectural structures may or may not meet the expectations of the broader stakeholder community. Unfortunately, architectural shortfalls are not recognized until it is too late and repair is difficult and costly. On the opposite end of the spectrum are methods espouse high ceremony processes and heavy emphasis on document production. While mature processes are certainly beneficial, there is no correlation that high maturity organizations consistently produce high quality architectures - again, architectural shortfalls are often discovered late in the development lifecycle. The Architecture Centric Development Method (ACDM) can be differentiated from these extremes in that ACDM places the software architecture at the center of a development effort rather than software processes or code artifacts. Like architectures in the building and construction industries, ACDM prescribes using the architecture design to drive, not only the technical aspects of the project, but also the process and programmatic issues of a development effort as well. ACDM weaves together product, technology, process, and people into a cohesive lightweight, scaleable development method. During this presentation I will present an overview of ACDM, briefly discuss the experiences thus far in using the method, and the planned next steps for maturing the method.