MSProject is not bad, quite powerful in fact. For gigantic projects, I know companies that have used Primavera (is it still on the market?).
But any vehicle is only as good as the driver. If all you want is a static pretty Gantt chart, then use pencil & paper. Most folks fail to realize that MSProject (or other project management software) is simply a planning, estimation, & prediction tool. It really is "you get out of it what you put into it."
After running dozens of projects in the crazy, chaotic, constantly changing, utterly unstable manufacturing engineering arena, I've come to these conclusions:
- I set up my projects as if I had 100% time efficiency to do the tasks. After building the project tasks, I divide the "perfect" times by a realistic efficiency. At one particularly chaotic company, I performed a 3-week duration self-time study that resulted in conclusive proof that I was only 35% efficient with my time. Meetings, potty breaks, jawboning, more meetings, and bad-manager-defense tasks took up the rest. I divided task durations by the efficiency, then I started actually hitting my target dates.
- The schedule was dynamic because we did not have infinite resources, nor were the resource levels static or predictable. The schedule accuracy was 100% to 90%-ish for about three weeks out. Then it fell off precipitiously after that.
- The schedule required updates & re-levelling daily, it was never static. It's a tool to be used by the project manager every day. Reports had to be issued every day to keep everybody on track, and to communicate to managers the current status.
- MSProject has some nice graphical capabilities, some require a little deeper programming. Example 1: The department ran multiple concurrent projects which followed a generalized template. I made a Master Project of all projects, then levelled, then charted resource levels. It showed a resource deficit at a specific time. Bosses ignored it, it happened, they got burned badly for it. Example 2: A fab shop wanted to be able to track a specific function within the project, but common to all projects. I was able to program MSProject so that Gantt Chart task bars associated with that particular resource were displayed in a particular color under certain resource loading percentage.
But I have been lectured to by my friends who've been through "Certified Project Manager" training that "Project management is not as simplistic as building a project schedule in MSProject." Perhaps that's true, I don't have CPM. I think CPM training addresses issues such as risk assessment and mitigation in project schedule and other such more advanced concepts. If you want to get serious about this stuff, CPM is worth investigating.