I recently had a conversation with a fellow developer about Agile Software Development. While I understand the principle, it seems that continuously changing requirements creates the potential for the project to go on forever. But, at least where I work, projects need to reach completion because it's a contract.
That is, the first iteration could take months, because for some projects the customer cannot use an incomplete application. For some projects, I think you need to define finished first, then you can break it into iterations and refine your definition after each iteration. But you must always have this definition.
If Agile Software Development embraces changing requirements how do you know where it ends? How can you budget for a project when the end result is always changing?
Is Agile Software Development more about an agile process, than an agile product?
Best Answer
From the OP's Comments is seems that he like me works for a Consulting shop, where we provide development services for our clients... I think because on this mind-frame that is causing his/her confusion... So I am going to state a well know but never stated fact.
Agile is incompatible with software development that is defined by a contract.
Many Consulting shops claim to Agile, they are lying. They just say that because Agile has attained Buzz word status.
Agile works best for internal development where programmers are full time, and there is little talk of budgets. Just Time Frames and Features.