Software Development Methodology (SDM) is a means by which a program is created through the generation of code and the use of different tools. This basically refers to the process itself and the way in which it is managed, to ensure that development is completed on time and within a reasonable budget. There are a number of forms that software development methodology can take, depending on the nature of the program being created and the tools used. In general, however, SDM is governed by the need to ensure a division of tasks into manageable elements and a process that goes through numerous, expanding iterations.
There are many different frameworks that can be used within a software development methodology, which are typically employed to organize the process of creating a new program. Multiple frameworks can be used together to create a single SDM, and then numerous methodologies can be combined into an SDM family. The use of a software development methodology often establishes and encourages best practices in the creation of new software for a team of developers. Without an SDM to look to during development, the process can easily become chaotic and lead to waste in terms of both financial resources and time.
One of the most common and simple types of software development methodology is referred to as a "waterfall" model. Before this SDM can be used, specific goals must be established for a particular process, and the entire development cycle needs to be broken down into different elements. One single element can then be approached and it is taken through a series of steps, each one visualized as a downward procession that creates the "waterfall" concept. This type of software development methodology is no longer used in many situations since newer methods have replaced it, but it continues to serve as a basic example of how an SDM should be structured.
The "spiral" model has become one popular software development methodology, as it manages to capture two important elements of the process in a single visualization. In general, a spiral is a single line that begins at the center, moving outward in concentric rings that become larger but pass through the same circular shape. This is used as a model for software development as each element of a program begins small and increases in size during development. As this happens, it also passes through numerous phases, such as development, evaluation, and analysis, throughout different iterations. All of this creates a single unified process that grows outwardly larger as it moves through repeated steps, much like a spiral.