Agile Zone is brought to you in partnership with:

Simon lives in Jersey (Channel Islands) and works as an independent consultant, specialising in software architecture, technical leadership and the balance with agility. Simon regularly speaks at international software development conferences and provides consulting/training to software teams at organisations across Europe, ranging from small startups through to global blue chip companies. He is the founder of "Coding the Architecture" (a website about pragmatic, hands-on software architecture) and the author of "Software Architecture for Developers" (an e-book that is being published incrementally through Leanpub). He still likes to write code too, primarily in .NET and Java. Simon is a DZone MVB and is not an employee of DZone and has posted 32 posts at DZone. You can read more from them at their website. View Full User Profile

What is agile software architecture?

09.05.2013
| 3909 views |
  • submit to reddit

I'll be back in The Netherlands next week to deliver the opening keynote at the Agile Software Architecture Symposium, where I'll be speaking about agility and the essence of software architecture. But what does "agile software architecture" actually mean?

In my experience, people tend to use the word "agile" to refer to a couple of things. The first is when talking about agile approaches to software development; moving fast, embracing change, releasing often, getting feedback and so on. The second use of the word relates to the agile mindset and how people work together in agile environments. This is usually about team dynamics, systems thinking, psychology and other things you might associate with creating high performing teams.

Leaving the fluffy stuff aside, for me, labelling a software architecture as being "agile" means that it can react to change within its environment, adapting to the ever-changing requirements that people throw at it. This isn't necessarily the same as the software architecture that an agile team will create. Delivering software in an agile way doesn't guarantee that the resulting software architecture is agile. In fact, in my experience, the opposite typically happens because teams are more focused on delivering functionality rather than looking after their architecture.

If we look at the characteristics of an agile software architecture, we tend to think of something that is built using a collection of small, loosely coupled components/services that collaborate together to satisfy an end-goal. This style of architecture provides agility in a number of ways. Small, loosely coupled components/services can be built, modified and tested in isolation, or even ripped out and replaced depending on how requirements change. This style of architecture also lends itself well to a very flexible and adaptable deployment model, since new components/services can be added and scaled if needed. However, nothing in life is ever free. Building a software system like this takes time, effort and discipline. Many people don't need this level of adaptability either, which is why you see so many teams building software systems that are much more monolithic in nature, where everything is bundled together and deployed as a single unit. Although simpler to build, this style of architecture usually takes more effort to adapt in the face of changing requirements because functionality is often interwoven across the codebase. With pragmatism in mind, you can always opt to build a software system that consists of a number of small components yet is still deployed as a single unit. You need to understand the trade-offs and make your choices accordingly.

However you build your software system, creating a well-structured architecture isn't something that happens all by itself. You need to put time, effort and discipline into it. In order to do this, everybody on the team needs to understand software architecture and contribute to its success. How you do this is what my talk is all about ...


Published at DZone with permission of Simon Brown, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Krish Kumar replied on Fri, 2013/09/06 - 3:10am

Even i was also does not having much answer, thanks for your valuable information...  slotted angles   magento development company 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.