It seems like every software project nowadays is 'agile.' Or at least it's said to be. So why the fuss? To understand why the market gravitated towards agile, we must first understand where it came from. Before agile the main project management approach was waterfall. Essentially the waterfall methodology means roadmapping all your features and completing them in sequential order, with a final release at the end of the project. If you're interested in learning more about the differences between agile and waterfall development then follow this link
The main criticism of waterfall development was the likelihood of projects running overtime and over budget. When one phase of development is reliant on the prior phase it makes it extremely difficult to deliver an entire project on time. This is especially true in the software development industry where there are so many complexities and unknowns. With agile we can prioritise smaller increments of work that don't depend on previous work being completed.
One of the manifesto's values is customer collaboration over contract negotiation. The key is to put the customer at the centre of everything we do. It allows us to focus on a problem statement and solve it for the customer base. By building in increments we can test out different solutions without having to wait till the end of the project to see if they work.
Many of the agile frameworks put a process in place for facilitating stakeholder collaboration. Scrum for example uses sprint planning and review sessions to ensure the product owner and the developers are aligned and working towards the same objectives. This also prevents getting to the end of a project only to realise your solution doesn't actually solve the problem.