As people may know, agile movement advocates participative management by team members on any agile project. That means the team members should be brilliant people who can self govern their own work. This very hypothesis creates a constraint for agile methodology. Let us discuss this aspect in this post.
On an average in any society, 99.9% people can not lead. They would rather follow a leader. That means only 0.01% people can be considered as leaders. These so called leaders can think on their own, can lead people and most importantly can manage their own work without being told what to do. The vast majority of people (99.9%) on the other hand are being told to do something; only then they do something. If they are left on their own, they will either do nothing or create chaos. One good example of this fact is the herd mentality of people. People will buy, do and believe in things which other people are doing. They will never do anything different. If they try to do something different then they will only create a mess. One more concrete fact is when something breaks loose. For instance, suppose at an intersection, the traffic signal fails. People coming from all directions in their cars, will create a traffic jam within no time. Only when the traffic police arrives, and starts taking some strict action (or starts giving clear direction to the public) that the traffic jam could be cleared after many hours of effort put by the traffic police. You go in any country or city, and you will experience this same fact.
My point is very clear. The agile methodology is only for 0.01% projects. For the rest (99.9%) waterfall model is still a better option.