Abstract
Architecture is the “backbone” of every software product, regardless of the development process used. However, its role, significance, and development strategies differ from one software development process to another. Traditional architecture development, based on a well-defined architectural process that involves the three following architectural phases–architectural analysis, synthesis, and evaluation–is based on the Big Design Up Front strategy. In agile development, architecture is generated gradually with each iteration, as a result of continuous code refactoring, not some predefined structure. Therefore, agile software development relies on an opposite extreme architectural strategy, emergent architecture.
The research topic of this paper is focused on the development of architecture for modern complex systems, which cannot be based on either of the two aforementioned extreme architectural strategies. Development of an architectural strategy for a complex system is significantly influenced by contextual factors.
This paper presents the results of a qualitative empirical research, carried out on a sample of 20 expert practitioners. The results represent contextual factors that the practitioners–surveyed respondents–consider when deciding to which extent will the emergent strategy be extended with explicit architectural practices typical to the traditional architecture development. Obtained results suggest that agile practitioners scale up agile processes, in terms of architecture development, with regard to the contextual factors of the system being developed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Ambler, S.W., Lines, M.: Disciplined Agile Delivery, 1st edn. IBM Press, Boston (2013)
Abrahamsson, P., Babar, M.A., Kruchten, P.: Agility and architecture: can they coexist? IEEE Softw. 27(2), 16–22 (2010)
Pérez, J., Díaz, J., Garbajosa, J., Yagüe, A.: bridging user stories and software architecture: a tailored scrum for agile architecting. In: Babar, I., Brown, M.l., Mistrik, A.W. (eds.) Agile Software Architecture: Aligning Agile Processes and Software Architectures, 1st edn., pp. 215–241. Elsevier, New York (2014)
Parnas, D.L.: On a ‘Buzzword’: hierarchical structure. In: Proceedings of the IFIP Congress 1974, pp. 336–339 (1974)
Babar, I., Brown, M.l., Mistrik, A.W.: Agile Software Architecture Aligning Agile Processes and Software Architectures, 1st edn. Elsevier, Waltham (2014)
Beck, C., Andres, K.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison Wesley, Boston (2004)
Thapparambil, P.: Agile architecture: pattern or oxymoron? Agil. Times 6(1), 43–48 (2005)
Babar, M.A., Abrahamsson, P.: Architecture-centric methods and agile approaches. In: Proceedings of the 9th International Conference on Agile Processes and eXtreme Programming in Software Engineering, pp. 238–243 (2008)
Parsons, R.: Architecture and agile methodologies—how to get along. In: WICSA (2008)
Nord, R.L., Tomayko, J.E.: Software architecture-centric methods and agile development. Softw. IEEE 23(2), 47–53 (2006)
Ihme, T., Abrahamsson, P.: The use of architectural patterns in the agile software development on mobile applications. In: ICAM 2005 Internetional Conference on Agility, vol. 8, pp. 1–16 (2005)
Stal, M.: Refactoring software architectures. In: Agile Software Architecture: Aligning Agile Processes and Software Architectures, pp. 130–152. Elsevier (2014)
Kruchten, P.: Situated agility: context does matter, a lot. In: 9th International Conference on Agile Processes and eXtreme Programming in Software Engineering (2008)
Polit, C.T., Beck, D.F.: The content validity index: are you sure you know what’s being reported? critique and recommendations. Res. Nurs. Heal. 29, 489–497 (2006)
Miles, M.B., Huberman, A.M.: Qualitative Data Analysis: An Expanded Sourcebook, 2nd edn. Sage, Thousand Oaks (1994)
Beck, K., et al.: The Manifesto for Agile Software Development (2001)
Kruchten, P.: Scaling down large projects to meet the agile ‘sweet spot’. Ration. Edge, 1–14, August 2004
Kruchten, P.: Contextualizing Agile Software Development, pp. 1–12 (2010)
Ambler, S.W.: Agility@Scale: Strategies for Scaling Agile Software Development. Agile and domain complexity (2010)
Boehm, R., Turner, B.: Balancing Agility and Discipline: A Guide for the Perplexed, 1st edn. Addison-Wesley, Boston (2003)
Boehm, B., Lane, J., Koolmanojwong, S., Turner, R.: Architected agile solutions for software-reliant systems. In: Agile Software Development: Current Research and Future Directions, pp. 165–184. Springer, Heidelberg (2010)
Chen, M.A., Babar, L.: Towards an evidence-based understanding of emergence of architecture through continuous refactoring in agile software development. In: 2014 IEEE/IFIP Software Architecture (WICSA), pp. 195–204 ( 2014)
Kruchten, P.: Complexity made simple. In: Proceedings of the Canadian Engineering Education Association (2012)
Boehm, R., Turner, B.: Using risk to balance agile and plandriven methods. IEEE Comput. 35(6), 57–66 (2003)
Cockburn, A.: Agile Software Development: The Cooperative Game, 2nd edn. Addison Wesley, Boston (2007)
Mirakhorli, J., Cleland-Huang, M.: Traversing the twin peaks. IEEE Softw. 30(2), 30–36 (2013)
Kruchten, J., Obbink, P., Stafford, H.: The past, present, and future for software architecture. IEEE Softw. 23(2), 22–30 (2006)
Blair, S., Watt, R., Cull, T.: Responsibility-driven architecture. IEEE Softw. 27(2), 26–32 (2010)
Coplien, G., Bjornvig, J.O.: Lean Architecture for Agile Software Development, 1st edn. Wiley, Cornwall (2010)
Hoda, R.: Self-Organizing Agile Teams: A Grounded Theory. Victoria University of Wellington, Wellington (2010)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Maric, M., Matkovic, P., Tumbas, P., Pavlicevic, V. (2017). Contextual Factors of Architectural Strategy for Complex Systems. In: Wrycza, S., Maślankowski, J. (eds) Information Systems: Research, Development, Applications, Education. SIGSAND/PLAIS 2017. Lecture Notes in Business Information Processing, vol 300. Springer, Cham. https://doi.org/10.1007/978-3-319-66996-0_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-66996-0_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-66995-3
Online ISBN: 978-3-319-66996-0
eBook Packages: Business and ManagementBusiness and Management (R0)