Perhaps the most significant is to understand that to do true Agile, you need to have the analyst, programmer, and QA in the same location. This is difficult to achieve in today's virtual environment. Iterative and waterfall are not neccessarily mutually exclusive, btw. You can have a waterfall plan in place for each iteration for a larger project. Yes?