소프트웨어 개발 방법론은 소프트웨어를 효율적으로 생산하는 데에 필요한 반복적인 과정들을 정리한 것이다. 이를 위하여 소프트웨어 공학이라는 학문이 생겨났다. 소프트웨어 공학(-工學, 영어: software engineering)은 소프트웨어의 개발, 운용, 유지보수 등의 생명 주기 전반을 체계적이고 서술적이며 정량적으로 다루는 학문이다; 즉, 공학을 소프트웨어에 적용하는 것이다.
1970년대
- 1969년까지 간단하고 계층적인 프로그램 제어 구조에 의존하는 구조적 프로그래밍이 주로 쓰였다.
1980년대
- 구조적 시스템 분석과 설계 방법론이 쓰였다.
1990년대
- 객체 지향 프로그래밍이 1960년대부터 개발되어, 1990년대 중반에 주류 개발 방법론이 된다.
- 고속 개발 방법론이 1991년부터 쓰인다.
- 스크럼이 1990년 후반부터 쓰인다.
- SEI의 와츠 험프리가 팀 소프트웨어 프로세스를 개발한다.
2000년대
- 익스트림 프로그래밍이 1999년부터 쓰인다.
- 래셔널 통합 프로세스 (RUP)가 1998년부터 쓰인다.
- 스콧 앰블러가 2005년에 애자일 통합 프로세스 (AUP)를 시작한다.
소프트웨어 개발 접근법
소프트웨어 개발 접근법에는 전통적으로 폭포수 모델, 프로토타이핑, 진화적 모델, 나선형 모델, 고속 개발 도구 등이 쓰여왔다.