Predictive planning vs adaptive planning
Agile methodologies and frameworks are better suited where technology is fast moving and requirements either cannot be stated fully upfront or tend to change often.
Let us take the example of a B2C (business to consumer) software project that has a graphical user interface (GUI). You will build many gates for validating usability or user experience:
Wireframe testing prior to the development of a functioning website.
Alpha testing when a website is barely functional and populated with just enough data for participants to complete the essential tasks.
Beta testing when a website is fairly stable and approaching full function.
A/B Testing post launch.
At every one of these stages, you look at the feedback and make changes to your design so that the final outcome is easy and appealing to the users and, most importantly, accomplishes the business goals.
To take another example, in one of my previous projects, we had integrated with a vendor product for media storage that was a key feature of our web site. Half way through the project, we found that the vendor support was so bad and the cost was so high we decided and built the capability ourselves and eliminated the need for the vendor.
These are the reasons why among software developers you hear such extreme statements like, "Most GanttCharts are lies from the get-go. Most GanttCharts' lies get bigger as time goes on."
Looking at the Stacey Complexity Matrix above, Software Development, New Product Development and Applied R&D Projects all belong in the complicated or complex category. Use an adaptive planning methodology, such as Agile, for these. Frequent inspection and adaptation is key here.
What are disadvantages of agile methods?
Cannot track dependencies as precisely as in a Gantt Chart (try creating FS, FF, SS and SF dependencies in an Agile tool).
Cannot monitor cost and schedule variances very well (goal oriented product roadmaps will work to some extent).
Not well suited for functional specialization (prefers cross-functional resources).
In what kind of projects better not to use agile approach?
On the other hand, Construction and Engineering projects benefit from clearly contracted requirements and well established technology. The type of changes that we see in software requirements is neither expected nor is easy to accomplish in construction. Predictive planning works better for these. That is why very large construction projects are run successfully with the help of good upfront planning Gantt Chart and exception reporting.