I recently ran across this blog entry on the art of project design. As a longtime director of software development, I believe it to have some very sound advice.
This blogger discourages the use of MS-Project. I am not a big fan of MS-Project either. The biggest reason why I avoid MS-Project is the differentiation of planned versus actual and the fact that an event that is completely out of the control of the end user, namely the passing of time, is what triggers the change in status from planned to actual. Once a task begins, your options of editing it become severely limited.
This blogger uses MS-Excel instead to create his project plans. I prefer GanttProject. I tried Open Workbench recently but was not a fan, primarily because it lacked support for a task hierarchy.
But that wasn't the most important advice from this blogger. Much more important is his admonitions to focus on features and not phases, to build the best features first, to deliver every two months, and to collaborate with your business partner. I gave some very similar advice recently in one of my own posts.