Are agile methodologies for small projects only? Can we use them on large projects?
Here are some thoughts.
Show me a large project, I will show you a project that is doomed.
Going into hiding, while developing an application, is one of the easiest ways to
fail at it. You have better
chances of success if you build your application in increments ? show what you have
done periodically
to the stake holders and get their feedback. Let them exerecise you application,
while you continue to work on it.
By periodic I mean once every few weeks at the least.
I recently was talking to someone who caught me by surprise. He said, ??, but the
project I am working on is like
going to moon. You can?t say you will go to moon in increments.?
I have to admit, it took me a minute to recover from this. Yes, indeed, how can you
go to moon in increments?
The gentleman had a point.
Wait a minute. You are right, the flight to moon can?t be in increments. But that
is not what we are talking about.
We are talking about the project, the effort to go to moon. First we threw a stone
up and saw it fall. Then we throw
it harder and learnt how things behave. We then sent a little module and saw how it
went around the earth. We learnt
enough to send John Glenn on
a space orbital mission. From what we leant from that, we proceeded on to other
achievements, using each experience ? successful and failure ? as a stepping stone.
If that is not incremental,
what is? [I take the pride here in using "we" as in "we humans," I was not part of
those teams :)]
Even rocket scientists prefer incremental and iterative development as you can learn
from this paper:
"Design, development, integration: space shuttle primary flight software system."
William A. Madden
and Kyle Y. Rone, Communications of the ACM, 1984, volume 27, number 9, pages 914?925
.