views:

105

answers:

2

Hi guys,

I've been using agile development for one year and one of the big differences that I've noted in being agile was when designing the architecture for the system.

In later projects we've used incremental methodologies such as RUP, and as you already know we've lost a lot of time creating UML models and later maintaining them. Now, we're using what Fowler calls evolutionary design.

We used evolutionary design in small teams, with 7 people. However, how design happens in big and distributed teams?

Do you think that UML models, analysis and design discipline and modeling tools like Rational Software Architecture and Borland Together are deprecated?

[]'s Fernando

+2  A: 

You can use agile in large teams. In a high level, you break the system in smaller parts, define the boundaries between each part, and then implement them in parallel, almost as separate agile projects.

There's a good book on "Enterprise Scrum" that talks about it: "The Enterprise and Scrum" by Ken Schwaber. In the book, they call this process the "Scrum os scrums".

Eduardo Scoz
A: 

Back in the early 1990s, before "agile" was a fad, one was free to lie in between the extremes. :-) These days it seems that you must be either "agile" or "not agile".

My point is: you can take the best of both worlds. Agile approaches, as sold today, lack support for good architectural development. It is possible to lie the foundations of a good architectural design at the beginning of the project and then organise the project in iterations or "builds". Each "build" tackles a set of features, which refines one part of the system, actually evolving the design, to use your words. (BTW, this is the approach used by early-1990s and now-almost-forgotten methods such as OPEN/Metis).

The evolutionary approach was also encouraged by the Fusion folks at HP in the 1990s, but they never completed it. Shame.

CesarGon