Designing and Building Large-Scale Systems in an Agile World
This presentation was created for the SATURN conference series and does not necessarily reflect the positions and views of the Software Engineering Institute.
Many people believe that Agile software development is a fun, loosely defined approach allowing for continual requirements changes. A common misconception about Agile is that this approach stresses little or no upfront design. On large-scale projects, it is not feasible to design a system one iteration at a time, which may sound as if Agile is impossible in such scenarios. We have discovered that designing architecture in an Agile world is not only possible, but leads to a better product for the customer. This presentation explores some pros and cons as well as successes and failures of using the Agile approach when designing large-scale systems. This presentation also looks at approaches to doing the “right amount” of architectural design up front, while allowing room for inevitable changes as the system is being built.