Agile as a development method offers many advantages; however, the benefit of constantly changing code also presents a challenge to architectural consistency. Rapid code modification can limit the ability to leverage a well-defined architecture with clearly defined module boundaries, and can lead to a number of problems including structural code erosion and code overlap across modules.
In a distributed environment with multiple teams working on different parts of an application, the lack of an accurate map of boundaries can make it difficult to determine the correct location for new functions. The lack of a well-defined structure for the project can block developers from noticing important missing capabilities early in development.
As is always the case, discovering missing requirements towards the end of the project can lead to significant time and resource impact to resolve. DSM Clustering analysis can be an effective tool to visualize architecture, migration, and facilitate a common team understanding.