"Shannon -jj Behrens" <[EMAIL PROTECTED]> 
wrote

>> Also, can anyone comment on the limits or caveats of agile 
>> development?

I posted a longish response on this but it seems not to have made to
gmane! Here it is again:

===================================
"Stephen McInerney"
<[EMAIL PROTECTED]> wrote

> Can anyone recommend me the best single must-read book for Agile
> Programming?

One of the most widely cited is Robert Martin's Agile Software
Development. Personally I didn't like it much for agile but it is
quite good on OOD.

The original XP book by Kent Beck is good too, along with its sequel.

> Also Agile Testing.

Sorry I can't comment on any specific testing books.

> (If they compare Agile in general to the other methodologies,
> that would be great)

The best comparison book I can recommend is

Balancing Agility & Discipline by Barry Boehm.

> Also, can anyone comment on the limits or caveats of agile
> development?

I'm sure lots of people can but Agile is such a nebulous concept that
its difficult to get anything objective or useful. My own personal
experieces follow for what they are wrth:

Agile works well if:
1) You have very close contact with end users/requirement owners
2) Small, co-located teams - small = 20 or less people
3) The requirements are not clearly understood (even by the users).
4) You have an experienced, talented team

You need *all* of those to make it work significantly better than
traditional methods. If even one if missing you will be no better off.
You might not be any worse off, but you will be no better. If you have
only one of those items then traditional methods (NOT waterfall!)
will be better.

Dangers of agile:
1) Not good for building scaleable, resilient, long term flexible
structures
2) Very expensive due to the large proportion of time spent in
rework (aka refactoring)
3) Tendency to drift over budget as new featiures get thought up
and added to the original scope.
4) Not good for long term maintenance, the documentation
often being inadeqate for anyone outside of the original
project team

Note, All of these things can be addressed but it takes
specific, directed action to do so.

Some general comments:
1) Its easy for management to "embrace agile" by adopting
some bits that they like. Requirements become User Stories,
Progress meetings become Stand-Ups, Phased releases
become iterations. in fact its just a renaming exercise not
real Agile. Re-naming doesn't work, agile does (with the
caveats above)

2) Agile is very open to hype. Exaggerated claims and comparisons
with the waterfall method are common, even though the waterfall
method has not been widely used for years and methods like RUP
are more appropriate comparisons. If you compare a motorcycle to
a penny farthing cycle you will get an exaggerated idea of "progress"

3) Agile badly done is just as bad as traditional badly done.

4) finally, do you need to hire an architect to build a garden shed?

Agile is in some ways addressing an artificial problem. Software
engineeering was invented in the late 70's to deal with very large
projects. Most methodologies still tackle that problem. Many
software houses now work on much smaller problems that
only need small teams and can be completed in a few weeks.
If you apply traditional methodologies to those problems they
will be overkill. So Agile comes along. But on these very small
projects, usually all that's needed is some common sense and
experience - like building a garden shed!

My personal career jhas been based on large projects. On most
large projects there is a tools team who churn out little programs
used by the main development/test teams. The tools team
does not typically apply the main project methodology for
each tool written, they "just get on with it". The tools team
will typically be 4-10 people. A tool will typically take 1-20 days
to write. In other words the small end of Agile, but they don't
use Agile, they don't use anything but common sense and
their experiece...

That's way more than I intended writing! I'm sure others will have
different views.

HTH,

-- 
Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to