Let me start off by saying that I am not a project manager. However, I feel qualified to write on this topic because I interact with project managers on a daily basis. With anywhere from 5 to 20 active (not simultanious) projects in the pipeline at a time, there's a lot to juggle. I believe the trick to project management is simple to ask questions and then set deadlines, todos, or timelines. Without knowing the full story of a project, be it a web site, iphone app, or any other medium, it's tough to know how long it will take to complete, or how long a particular part of the project will take - let alone the effects one portion of the project may have on something else.
Often times we have clients that feel like it's their job to "manage" the project by adding features, making changes, and basically extending deadlines. These are not good practices for managing projects, OR people for that matter. It's like tasking someone with the job of putting out a fire, while the entire time you're adding more wood, gasoline, and tossing matches into the already blazing flames. Please don't get me wrong, I'm not saying clients shouldn't be envolved. I believe clients should be as envolved as is necessary... during the planning phase.
Perhaps I'm just jaded from working with so many clients that feel like it's their job to prolong the lifespan of a project by changing their mind 5 times and then going back to the first idea, but only after the other 4 have been fully developed. Sure, sometimes you see something and you just don't like it - but if it was what you asked for, then now it's what you've got. If you want to make changes, set a hard and fast breaking point - let's change this... not let's try this, no maybe this, or wait how about this. Keep elements of what you like, remove what you dislike, and work towards a better product - not a muddled mess of a project abomination.
Stepping down from my soap box now. Thanks for listening.