ABSTRACT
Software architecture is taking a bad rap with the agilists---proponents of agile and lean software development approaches: "BUFD big up-front design", "YAGNI You Ain't Gonna Need It", "massive documentation", "smells of waterfall", it is pictured as a typical non-agile practice. However, certain classes of system, ignoring architectural issues too long "hit a wall" and collapse by lack of an architectural focus. 'Agile architecture': a paradox, an oxymoron, two totally incompatible approaches? In this tutorial, we examine the real issues at stake, beyond the rhetoric and posturing, and show that the two cultures can coexist and support each other, where appropriate. We define heuristics to scope how much architecture a project really needs, to assign actual value to an otherwise invisible architecture; and we review management and development practices that do work in the circumstances where some significant architectural effort is needed, when you are actually going to need it.
- Beck, K. 2000. Extreme Programming Explained: Embrace Change. Addison-Wesley. Google ScholarDigital Library
- Schwaber, K. and Beedle, M. 2002. Agile Software Development with SCRUM. Prentice-Hall. Google ScholarDigital Library
- Poppendieck, M. and Poppendieck, T. 2009. Implementing Lean Software Development--From Concept to Cash. Addison Wesley. Google ScholarDigital Library
- Stapleton, J. 1998. DSDM, Dynamic Systems Development Method: The Method in Practice. Addison-Wesley.Google Scholar
- Bass, L., Clements, P., and Kazman, R. 2003. Software Architecture in Practice. 2nd ed. Addison-Wesley. Google ScholarDigital Library
- ISO/IEC 42010 CD1, 2010. Systems and software engineering---Architectural description, committee draft #1. (February 2010) ISO.Google Scholar
- Spencer-Oatey, H. 2000. Culturally Speaking: Managing Rapport through Talk across Cultures. Cassel.Google Scholar
- Kruchten, P. 2007. Voyage in the Agile Memeplex: Agility, Agilese, Agilitis, Agilology. ACM Queue. 5, 5 (July/August). 38--44. Google ScholarDigital Library
- Agile Alliance, 2000. Manifesto for Agile Software Development. Available at: http://agilemanifesto.org.Google Scholar
- Kruchten, P. 2003. The Rational Unified Process: An Introduction. 3rd ed. Addison-Wesley. Google ScholarDigital Library
- Fowler, M. 2003. Who needs an architect? IEEE Software. 20, 4 (July/August). 2--4. Google ScholarDigital Library
- Denne, M., and Cleland-Huang, J. 2004. The Incremental Funding Method: Data-Driven Software Development. IEEE Software. 21, 3. (May/June), 39--47. Google ScholarDigital Library
- McConnell, S. 2007. Technical debt. Accessible at: http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx.Google Scholar
- Wachowski, A. and Wachowski, L. (writers and directors) 2003. The Matrix Reloaded. Warner BrosGoogle Scholar
Index Terms
- Software architecture and agile software development: a clash of two cultures?
Recommendations
Software Architecture-Centric Methods and Agile Development
Including architecture-centric design and analysis methods in the Extreme Programming framework can help software developers address quality attributes in an explicit, methodical, engineering-principled way. Properly managed, architecture-centric ...
Adopting to Agile Software Development
Abstract Agile software development can be made successful, but there is no well-defined way how to achieve this. The problem is that the successful adoption of agile methods and practices is a complex process and this process should be customizable for ...
Comments