Regardless of the design philosophy that will be used for the actual coding, the planning stage is perhaps the most important, at least when it comes to having a successful deployment. Many project management courses highlight planning as one of the key stages for any project; while agile development can mitigate poor planning, it doesn't completely eliminate all the problems.
Developing project requirements and evaluating them for incorporation is generally a job for the project or program manager, or whoever will be responsible for seeing the project to completion. A key point is that a project has a definite time frame associated with it; while work may be ongoing, a project has a designated start date and a completion deadline. This helps define what elements a project is supposed to have completed for the deliverable; anything beyond the scope of...