Continuous Refactoring and Satisfactory Architecture

The tension between the followers of Agile and Architecture-centric approaches appears to be easing to some extent; perhaps, both sides have realised that there are potentially several benefits of taking a middle road – Integrating Agile and Architectural approaches and practices wherever it makes sense. One of the key sticking points in the debate is the claim of the proponents of Agile approaches that software architecture emerges from continuous small refactoring. However, the is not much empirical evidence to support the assumptions underpinning the claim. Our recent article, Towards an Evidence-Based Understanding of Emergence of Architecture Through Continuous Refactoring in Agile Software Development, on this topic reveals the role of contextual factors in the achievement of “a satisfactory architecture through  continuous refactoring”. This article has been accepted in the 11th Working IEEE/IFIP Conference on Software Architecture (WICSA) to be organised between 7 and 11 May, 2014 in Sydney, Australia.

We have identified 20 key factors that can support or inhibit the emergence of a satisfactory architecture through continuous refactoring in agile software development. Those factors have been classified into a framework of four elements: project, team, practices, and organization. We hope that this framework can provide practitioners with a tool to decide about whether or not a satisfactory architecture will emerge through refactoring and the potential impact of each of the 20 factors; the framework and its associated factors will also enable researchers to identify the potential gaps that can provide challenges and useful research questions in this area.