Before the formal methodologies were introduced, software project development may be described as chaotic. There is no proper process to follow. Software was developed without planning and it is not organized. I can say that it is good especially when you are in hurry or when the system is small. But for bigger systems, it is quite difficult to add features to the system.
This problem led to the movement to introduce the use of methodology. These methodologies are disciplined processes that will be followed in software project development. These methodologies I am referring are the Engineering methodologies, which are so called because they give emphasis on planning which is originally inspired by other engineering disciplines.
An example of engineering methodology is the Waterfall Model. From the name itself, the model works like waterfall. The development undergoes a series of phases. From top to bottom, first it gathers requirements, and then it will be analyzed, designed, implemented, and tested.
Waterfall Model is actually good in the sense that development is planned and organized. The problem is the development is too much engineered that the pace of the development slows down. This problem led to the development of agile methods.
Now, a new method is fast spreading. This method is referred to as agile methods. Agile methods emerged from the reactions to the engineering methodologies before. This new method is intended to respond to the changes in software requirements as quick as possible. Agile focuses on simplicity, meaning it provides enough process. It is a compromise between too much processes and no process at all.
Agile methods use two techniques, refactoring and testing. The concept of refactoring is changing or improving the design of the code without altering how it works. The unit tests will make sure that the changes do not break the code.
Agile referred to as a philosophy of Software Development. Under the agile are more specific approaches like Extreme Programming (XP), Scrum, Crystal, and others.
After the changes in the disciplines in software development, the fact that more and more methodologies will eventually rise is really possible. With the development of new software development methodologies, it is expected that developing systems will be much easier.
On the other thought, it is observable that as people strive to find new techniques in software development more and more problems arise which make things worse.
In the end, what really matters is the attitude towards the problem in developing software. Any method followed will actually work out at its best if it is just done with discipline and passion.