Architecture-Centric Methods and Agile Approaches
Agile practices have recently gained popularity among large number of companies as a mechanism for reducing cost and increasing ability to handle change in dynamic market conditions. Based on the principles of the Agile manifesto [1, 2], researchers and practitioners have proposed several software development approaches such as Extreme Programming, Scrum and Feature-Driven Development. These and other agile approaches have had significant impact on industrial software development practices. However, there is also a significant concern and perplexity about the role and importance of the issues related to a system’s software architecture, which is considered one of the most important initial design artefacts. It is argued that software architecture is an effective tool to cut development cost and time and to increase the quality of a system. Many practitioners of Agile approaches appear to view software architecture in the context of the plan-driven development paradigm . For them, upfront design and evaluation of software architecture requires too much work, which may have very little value to the customers of a system. Hence, they perceive architectural work as part of high ceremony processes, which usually require large amount of documentation. We maintain that these two seemingly opposing views to software engineering can be integrated but it requires that experts from both fields work together to overcome evident challenges in bridging these two paradigms together. Indeed, software architecture researchers and practitioners appear to believe that sound architectural practices cannot be followed using Agile approaches. However, these two extreme views of Agile and architecture appear to neglect that many agile experts emphasises the importance of paying attention to good design and architecture early in the development process [4, 5]. Recently, there is growing recognition of the importance of paying more attention to architectural aspects in agile approaches [3, 6, 7]. We argue that there is a vital need for devising a research agenda for identifying and dealing with architecture-centric challenges in agile software development. Such research agenda should make it possible to guide the future research on integrating architecture-centric methods in agile approaches and give advice to the software industry on dealing with architecture related challenges. Some of the questions to stimulate discussion in the workshop are:
What is the role of software architecture in Agile software development?
What are the key architecture-centric challenges and potential solutions in Agile software development projects?
What is the strength of the evidence that attention to architectural issues can be counterproductive in Agile development or vice versa?
What are the prerequisites for integrating Architecture-Centric methods in agile development and potential implications of such integration?
- 1.Abrahamsson, P., Warsta, J., Siponen, M.T., Ronkainen, J.: New Directions on Agile Methods: A Comparative Analysis. In: ICSE 2003 (2003)Google Scholar
- 2.Manifesto for Agile Software DevelopmentGoogle Scholar
- 4.Beck, K.: Extreme Programming Explained: Embrace Change. Addison Wesley Longman, Inc, Reading (2000)Google Scholar
- 5.Martin, R.: Àgile Software Development, Principles, Patterns, and Practices. Prentice-Hall, Upper Saddle River (2002)Google Scholar
- 6.Parsons, R.: Architecture and Agile Methodologies - How to Get Along, in WICSA (2008)Google Scholar
- 7.Ihme, T., Abrahamsson, P.: Agile Architecting: The Use of Architectural Patterns in Mobile Java Applications. International Journal of Agile Manufacturing 8(2), 1–16 (2005)Google Scholar