--------------enig3B5CD8B94A6946F35178F3A2
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

gaurav bagga wrote:
>   I have just started to learn about Agile development and was told that in
> Agile very less focus is given to documentation and usage of UML related
> things is very less. Is it that its not used at all by most Agile
> developers
> and most of the focus is on Test Driven Development. If code generations
> accompanied along with the tool being used for UML do people in agile go
> for
> UML usage. This is the case I have seen in Java world using UML
> extensively.
> As in Agile, time is a factor they dont get into that much details of UML.
> So I was wondering how to gauge how much important UML is to Agile world.
> 

There are more uses to UML than code generation (which I haven't seen
used yet actually.)

For certain problems, it's useful to have dedicated analysts or
high-level designers (can as well be one person) if the problem domain
being modelled is one the developer team has little expertise in - if
this person isn't a developer, UML is a standardised way for him to
communicate his work to the team members that are. Also if the model has
to be represented / manipulated using multiple languages (DDL for a
RDBMS, and multiple clients on that database in different programming
language), it might make sense to use UML as a lingua franca for the
reference representation of the model - of course, if all developers
have basic skill in one of those languages, you might use the model
implementation in it for this purpose.

Another reason I see behind UML-bashing by the agile crowd is that they
are people that don't have the brain arrangement (this I don't mean as
an offensive statement) to process the diagrams as efficiently as they
would see the actual code. For people with a degree of visually-oriented
thinking, a UML diagram can be a good tool to organise your thoughts on
a problem. I personally find (high-level) activity diagrams or sequence
diagrams easier to comprehend than code across three files.

For purposes of maintainability, UML is a more terse documentation
artefact for some views of a system than source code documentation.

On the whole, I'd say UML still is a valid tool for agile development.
You're likely to use only high-level variants - UML that is on a level
detailed enough to be used for code generation wouldn't be created up
front, maybe as a documentation artefact if that is required. It's also
still useful as a means of communicating a notion if you find you can
create and comprehend it as fast as or faster than other methods - a
unit test replacing a nontrivial sequence diagram might be much more
verbose, for example, if of more value on its own

David Vallner


--------------enig3B5CD8B94A6946F35178F3A2
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)

iD8DBQFFOLjiy6MhrS8astoRAk8SAJ9jWKauY5DTuhwuDflXmjZsPskzbQCdGeYa
16ooMc3EtPabERSj86VMdus­­y
-----END PGP SIGNATURE-----

--------------enig3B5CD8B94A6946F35178F3A2--