Software Development Methodologies

Even though software development has been in practice for a considerable number of years now, it is still a fairly young industry. This means that there is ample room for improvement. In order to successfully complete high quality work, find solutions, and complete projects efficiently and on time, project managers must turn to new and different software development methodologies for the answer. The methodology chosen, or created, will set the framework that will be used to structure an information system tailored to satisfy the project's needs. Fortunately, if you do not wish to create a new methodology, there are already a growing number of methods already available for project managers.
Creating Possible Solutions Through Prototyping

Prototyping is an example of an iterative approach to software development. It is the process of developing low-risk inexpensive partially completed version of the software program as it is being developed. Using these small-scale prototypes, the effectiveness of the program can be evaluated as it is being developed. This form of software development methodology is typically used in conjunction with a larger, more comprehensive method. Prototyping is generally most effective for solving smaller segments of a larger business problem. Creating incomplete versions of the software program can reduce project risk throughout the development process.

Taking the Waterfall Approach

If you are interested in a linear framework that can provide structure and planning for each phase of the development process, the waterfall methodology could be very useful. Not only is this one of the oldest methodologies, but it is also one of the most widely applied even today. A 2007 survey found that roughly 70% of software development organizations continue to choose the waterfall method.

The waterfall methodology earns its title by being a development process that involves following clear phases, each flowing into one another, until you reach the conclusion of the waterfall, otherwise known as the release of the program. The first step of the method comprises outlining the requirements and goals for the project, and determining what the sequential phases will encompass. The project will then go through the designated phases, such as design, development, and testing - the final phase being deployment or implementation of the program.

Combining Prototyping with the Waterfall Approach

As no two business problems are exactly the same, there is no one methodology that is perfect for all scenarios. In many cases, it is best to combine linear methodologies with iterative methodologies. By doing so, you benefit from having a comprehensive waterfall method that will enable you to develop a plan from start to finish, but within each phase, prototyping can be utilized to lower the inherent risk and ensure that your development process is headed in the right direction.

Just like when implementing the waterfall method, this incremental development process starts with an initial concept and analysis phase, during which all of the requirements of the project are clearly defined. Instead of progressing completely linearly, the project progresses through short increments. During each increment, multiple prototypes are created. These prototypes provide the opportunity for the project to receive evaluations and feedback throughout the development project. The combining of prototyping and waterfall methods often lead to a finished project that is completed on schedule, with a great end value to the customer.

Taking a Spiral Approach

One of the main problems with the standard waterfall method is that if there are any unaddressed problems in any one phase, they are then carried over into the next phase, which causes complications and can slow down the process significantly. This problem is solved in the spiral software development methodology.

The spiral model encompasses cycling through the phases of the waterfall method incrementally. Therefore, as problems arise, they can be addressed appropriately during the next cycle. This methodology allows programmers to go through each phase once more after unexpected issues have risen to the surface, significantly eliminating much of the risk factor present when using the waterfall method.