Skip to main content

Agile in Distress: Architecture to the Rescue

  • Conference paper

Part of the book series: Lecture Notes in Business Information Processing ((LNBIP,volume 199))

Abstract

For large-scale software-development endeavors, agility is enabled by architecture, and vice versa. The iterative, risk-driven life cycle inherent in agile approaches allows developers to focus early on key architectural decisions, spread these decisions over time, and validate architectural solutions early. Conversely, an early focus on architecture allows a large agile project to define an implementation structure that drives an organization into small teams, some focusing on common elements and their key relationships and some working more autonomously on features. Architects in agile software development typically work on three distinct but interdependent structures: architecture of the system, the structure of the development organization, and the production infrastructure. Architectural work supports the implementation of high-priority business features without risking excessive redesign later or requiring heavy coordination between teams. Architectural tactics provide a framework for identifying key concerns and guide the alignment of these three structures throughout the development life cycle.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Kruchten, P.: Contextualizing Agile Software Development. J. Softw. Evol. Proc. 25, 351–361 (2013)

    Article  Google Scholar 

  2. Highsmith, J.A.: Agile Software Development Ecosystems. Addison-Wesley, Boston (2002)

    Google Scholar 

  3. Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Merson, P., Nord, R., Stafford, J.: Documenting Software Architectures. Addison-Wesley, Upper Saddle River (2011)

    Google Scholar 

  4. Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architecture. ACM SIGSOFT 17(4), 40 (1992)

    Article  Google Scholar 

  5. Meyer, B.: Agile! The Good, the Hype, and the Ugly. Springer, Zürich (2014)

    Google Scholar 

  6. McConnell, S.: Technical Debt, Software Best Practices (2007), http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx

  7. Cockburn, A.: Walking Skeleton (1996), http://alistair.cockburn.us/Walking+skeleton

  8. Leffingwell, D.: Agile Software Requirements. Addison-Wesley, Boston (2011)

    Google Scholar 

  9. Brown, S.: Software Architecture for Developers. LeanPub., Vancouver (2014)

    Google Scholar 

  10. Bellomo, S., Nord, R.L., Ozkaya, I.: A Study of Enabling Factors for Rapid Fielding: Combined Practices to Balance Speed and Stability. In: 35th International Conference on Software Engineering, pp. 982–991. IEEE Press, Piscataway (2013)

    Google Scholar 

  11. Nord, R., Ozkaya, I., Sangwan, R.: Making Architecture Visible to Improve Flow Management in Lean Software Development. IEEE Software 29(5), 33–39 (2012)

    Article  Google Scholar 

  12. Cataldo, M., Herbsleb, J.D., Carley, K.M.: Socio-Technical Congruence: A Framework for Assessing the Impact of Technical and Work Dependencies on Software Development. In: Second ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 2–11. ACM, New York (2008)

    Chapter  Google Scholar 

  13. Nord, R.L., Ozkaya, I., Kruchten, P., Gonzalez-Rojas, M.: In Search of a Metric for Managing Architectural Technical Debt. In: Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture, pp. 91–100. IEEE Press, New York (2012)

    Chapter  Google Scholar 

  14. Tamburri, D., Lago, P., Kruchten, P., van Vliet, H.: What Is Social Debt in Software Engineering? In: Sixth International Workshop on Cooperative and Human Aspects of Software Engineering, pp. 93–96. IEEE Press, San Francisco (2013)

    Chapter  Google Scholar 

  15. Desbois, P.: Devops: A Software Revolution in the Making (Special Issue). Cutter IT J. 24, 8 (2011)

    Google Scholar 

  16. Shafer, A.C.: Infrastructure Debt: Revisiting the Foundation. Cutter IT J. 23, 36–41 (2010)

    Google Scholar 

  17. Bellomo, S., Kruchten, P., Nord, R.L., Ozkaya, I.: How to Agilely Architect an Agile Architecture? Cutter IT J. 27, 12–17 (2014)

    Google Scholar 

  18. Bachmann, F., Nord, R.L., Ozkaya, I.: Architectural Tactics to Support Rapid and Agile Stability. CrossTalk 25(3), 21–25 (2012)

    Google Scholar 

  19. Conway, M.E.: How Do Committees Invent? Datamation 14(4), 28–31 (1968)

    Google Scholar 

  20. Cataldo, M., Herbsleb, J.D.: Factors Leading to Integration Failures in Global Feature-Oriented Development: An Empirical Analysis. In: 33rd International Conference on Software Engineering, pp. 161–170. ACM, New York (2011)

    Google Scholar 

  21. Cataldo, M., Herbsleb, J.D.: Coordination Breakdowns and Their Impact on Development Productivity and Software Failures. IEEE T. Software Eng. 39, 343–360 (2013)

    Article  Google Scholar 

  22. Leffingwell, D., Martens, R., Zamora, M.: Principles of Agile Architecture (2008), http://scalingsoftwareagilityblog.com/wpcontent/uploads/2008/08/principles_agile_architecture.pdf

  23. Bellomo, S., Kazman, R., Ernst, N., Nord, R.: Toward Design Decisions to Enable Deployability: Empirical Study of Three Projects Reaching for the Continuous-Delivery Holy Grail. In: First International Workshop on Dependability and Security of System Operation, pp. 32–37. IEEE Press, New York (2014)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Nord, R.L., Ozkaya, I., Kruchten, P. (2014). Agile in Distress: Architecture to the Rescue. In: Dingsøyr, T., Moe, N.B., Tonelli, R., Counsell, S., Gencel, C., Petersen, K. (eds) Agile Methods. Large-Scale Development, Refactoring, Testing, and Estimation. XP 2014. Lecture Notes in Business Information Processing, vol 199. Springer, Cham. https://doi.org/10.1007/978-3-319-14358-3_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-14358-3_5

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-14357-6

  • Online ISBN: 978-3-319-14358-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics