Includes application development, software design, software application development, enterprise application development, platform development, and computer programming. It includes all that is involved between the conceptions of the desired software through to the nal manifestation of the software. Software development includes research, new development, prototyping, modication, reuse, re-engineering, maintenance, and/or any other activities that result in software products.

Software can be developed for a variety of purposes, the three most common being to meet specic needs of a specific client/business (the case with custom software), to meet a perceived need of some set of potential users (the case with commercial and open source software), or for personal use (e.g. a scientist may write software to automate a mundane task).

Software development methodology

A software development methodology is a framework that is used to structure, plan, and control the process of developing information systems. One system development methodology is not necessarily suitable for use by all projects. Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations.