Software Development

 Software development

 Software development is the collective processes involved in creating software programs, embodying all the stages throughout the systems development life cycle (SDLC).

SDLC methodologies support the design of software to meet a business need, the development of software to meet the specified design and the deployment of software to production.  A methodology should also support maintenance, although that option may or may not be chosen, depending on the project in question.

The waterfall model, the original SDLC method, is linear and sequential, generally following these stages in order:

1) Identification of required software
2) Analysis of the software requirements
3) Detailed specification of the software requirements
4) Software design
5) Programming
6) Testing
7) Maintenance


The waterfall and similar models are considered predictive methodologies, in contrast to adaptive models such as agile software development (ASD), rapid application development (RAD), joint application development (JAD), the fountain model, the spiral model, build and fix and synchronize-and-stabilize. Frequently, several models are combined into some sort of hybrid methodology as is the case with open source software development (OSSD).

The history of software development goes back to about 1810 when Joseph Marie Jacquard developed holes punched in cardstock to guide the patterns woven by his looms. It wasn't until 1949, however, that John Mauchly developed the first programming language, Brief Code (later known as ShortCode).

See also: We Learn IT: Software development reference guide. Or check out our printable software development glossary of brief definitions, linked to the full versions for more information. Would you like to test your knowledge? Try our Software development quiz.

This was last updated in October 2016

Continue Reading About software development

  • An introduction to software development
  • Software development life cycle phases, iterations, explained step by step
  • The history of software development
  • Waterfall versus iterative development misconceptions
  • Waterfall or Agile? Differences between predictive and adaptive software methodologies
  • Waterfall or Agile? Differences between predictive and adaptive software methodologies

Related Terms

data analytics (DA)

Data analytics (DA) is the process of examining data sets in order to find trends and draw conclusions about the information they... See complete definition

distributed computing

Distributed computing is a model in which components of a software system are shared among multiple computers. See complete definition

What is DevOps? The ultimate guide

The word 'DevOps' is a combination of the terms 'development' and 'operations,' meant to represent a collaborative or shared ... See complete definition