In this running world, software development also has to run synchronizing the different quanta of developments going side by side and sometimes even in the most unplanned ways! It is more about occurrence than about a hierarchical planning now! This is the agile approach to software development, in a nutshell.
In the traditional approach to software development, we start with the information gathering. Then this information is analyzed to plan the development procedure. Then is done the designing and coding. Then testing and finally the software is ready. This is also known as the waterfall approach to software development. Everything is well planned and in a hierarchy.

But the agile approach is an iterative and incremental approach.The software is developed in repeated cycles and in small volumes.
Actually, the entire software is broken into small pieces which are called backlogs and one such backlog item is worked over in repeated cycles till it is fully done. In fact, many items are worked simultaneously by different developers, designers, other technical persons and managers etc. So the work gets advanced rapidly that meets the customer expectations.
Each cycle handles a small amount of work. So the work actually gets advanced in an iterative and incremental way. At each iteration, some design related fine tuning and advancements are done and the functionalities also are added to take it to the next level. The iteration is reviewed and planned on a daily basis.
Once the item is done fully, it is released. But even after its release, depending on the feedback it could go back to review that could lead further iterations to develop and modify it to the next levels.
The iteration is reviewed and planned on a daily basis. Once the item is done fully, it is released. But even after its release, depending on the feedback it could go back to review that could lead further iterations to develop and modify it to the next levels.
So, unlike the waterfall approach, nothing could be considered to be fully done here, frankly speaking. Anything that was earlier supposed to be over, could restart. It is a random race being conducted in a planned way,in the light of feedbacks and reviews. Thankfully, there are many frameworks, from different points of views - like management and coding etc, developed for working in this agile way.
The agile approach is the best fit for the modern agile world. This rapid-fire way of software development is really leading the way.