Agile Development originated for use by small cross-functional teams, co-located with a dedicated customer representative. In this context, the strategies of emergent design, refactoring and the use of tacit knowledge were sufficient to deal with most of the technical challenges faced by the teams. Architectural practices were rarely discussed.
Today’s fast-paced and dynamic development environments have made Agile practices increasingly attractive to many organizations. However, as industry adoption increases, the need to scale-up Agile techniques to handle larger and more complex systems is becoming more evident and more pressing.
I believe that integrating architecture-centric methods with Agile Development practices can help Agile teams be successful and can help Agile methodologies to scale. For example, in Scrum, many times the initial Sprints will have architecture-related goals. When scaling up to a Scrum of Scrums environment, initial attention to the software architecture can help ensure high cohesion within and loose coupling between Scrum teams.
I’d like to hear about your experiences –
- Is your organization using Agile methodologies? If so, which ones (Scrum, XP, Crystal, etc.)?
- Do you perceive a conflict between Agile methods and architecture-centric ones?
- Has your organization tried to integrate the two? If so, do you think it was successful?
– Nanette Brown, SEI