InfoQ

Presentation

Recorded at:
Recorded at

Agilists and Architects: Allies not Adversaries Presentation

Presented by Martin Fowler and Rebecca Parsons on Jun 25, 2009

Community
Architecture,
Agile
Topics
Agile in the Enterprise
Tags
QCon San Francisco 2008 ,
QCon
The next QCon is in London Mar 10-12, Join us!
Summary
As Agile becomes more accepted, concerns from architecture groups are increasing. Traditional ways that architects engage with development groups conflict with Agile methods. This talk describes ways that Agile methods can benefit architects, addresses concerns architects express about agile, and proposes ways that architects and agile development teams can become allies.

Bio
Martin Fowler is an author, speaker, consultant and general loud-mouth on software development. Rebecca Parsons has more than 20 years of application development experience in industries ranging from telecommunications to emergent internet services.

About the conference
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community. QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

Condescension by Ernie Evans Posted Jun 25, 2009 1:16 PM
Agile Architecture by Gonçalo Borrêga Posted Jul 10, 2009 10:40 AM
  1. Back to top

    Condescension

    Jun 25, 2009 1:16 PM by Ernie Evans

    Condescension flows both ways. The notion that agilists are the guerillas, outnumbered in their fight for the one true vision, is just as harmful as the idea of pre-planned and regimented architectures handed down from on high.

  2. Back to top

    Agile Architecture

    Jul 10, 2009 10:40 AM by Gonçalo Borrêga

    I've been doing software architecture work for quite some time. Both with and without OutSystems platform, and in the recent year adopting agile methodologies.



    What I seem to find out is that Agile goes hand in hand with large and distributed systems architecture. By nature these systems already change a lot. We've been trying to reach patterns since the beggining of ages that allow for easy maintenance, no (or low) impact on performance, and most of all, accelerated development. This requires design both at a high level as well as a low level.



    Yes, we're agile. However, we cannot drop the high level design up front. We need to have a (not very clear) vision of what we are going to need. And agile copes with that. I found out, when moving to OutSystems, that you are provided with the most relevant patterns from scratch. The very nature of the platform extension mechanisms won't let you easily fail. It also provides you a kind of Domain Specific Language approach from the beggining, that will force you to create (and all developers to follow) well defined guidelines. All the assynchronous design patterns are also easily mapped to the patform potentials in timers. When coping with external systems or a corporate company architecture definition there's not much to trouble us as well. We're either at SOA (which OutSystems fits like a ring) or some other kind of integration pattern, for which you know you'll have an integration layer only for transforming/transporting/auditing/etc., that will be either implemented out of the box, or via a simple extension. All this facilities reduces the effort in defining the high level architecture, assuming you're confortable with the usual design patterns. This way you don't have to go very deep on the initial architecture definition. Just focus on business components/modules decoupling.



    I am now in a software factory with a very large architecture basis. The only thing required is that, whenever a new requirement appears, you do an overall architecture impact analysis. If you have the above topics considered, you end up in having a new component. If the business requirement changes (and you'll adopt it "immediately" because you are an agilist), it will probably fit in its own business component, or have relatively low impact on the surroundings.



    What about when there's a requirement that reaches all levels? If you've decoupling from the start the Core entities (business domain core - the ones you usually specify the DSL for) from the business components/processes on top of them and also from the integration layers, there's no big issue. You'll probably end up in refactoring some core processes to decouple even more, so that the new requirement fits in an isolated way.



    This proved me that agile will make you good architectural choices. And if you know from the start you're going agile, the architecture will come out much stronger and maintainable, just because of the fact that you're thinking, from the beggining of ages it will be ment to change.



    Kind regards,



    Gonçalo Borrêga

    OutSystems Solution Delivery team

    www.outsystems.com

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.