Hi,
I've been reading more about SW development methodologies. I found this article: The New Methodology by Martin Fowler and I wanted to share it with you. I find it excellent, specially for people who are developing business applications, it has openned my eyes.

To summarise, Fowler says that (and I agree): ... as modern organizations evolve and adapt to their environments rapidly so should software development.

Traditional development methodologies (waterfall lifecycle) were created upon the assumption that requirements never change. Software were created based on a snapshot of the organization's situation. Projects (price, time and design) were planned in advance and any deviation from them were considered a mistake which had to be corrected.

Agile methodologies are based on the assumption that organisations, users, and their requirements change. Agile methodologies are designed to adapt to changes: they are selfadaptive. To achieve that, users and developers work together and expect change all the time. Requirements, specs and code are reviewed constatly and changed when necessary. For Agile(rs) (is that a word?) things cannot be predicted. They aim for a good quality software that meets the needs of the clients and not for meeting the deadlines and not running over the budget.

It makes a lot of sense, doesn't it?

I have two questions though:
1. Will a client invest his money in a project without knowing how much $$$$ and time it will take?
2. Agile methods focus on the creation part of the software (for example until you finish a complete version). But there is nothing about what comes next. (at least not to my knowledge) If you are working in an bank for example, you may find that not every project is about new application but maintaining the old ones. Do you still use agile methodologies for everyday maintenance?