상세 컨텐츠

본문 제목

SW 개발 프로세스 변천사(개요)

Programming

by 남수만 Ph.D. 2019. 6. 11. 13:58

본문

728x90

 

SW 개발 프로세스는 요구사항분석, 설계, 구현, 테스트 및 검증, 출시 및 유지보수이다.

이 개발 프로세스는 각 단계별로 과정이 세분화가 되었지만, 전체적인 프로세스는 변하지 않았다.

단, 과거 개발 프로세스에서 변화한 것이 있다면 전통적인 개발 방법론은 중간 단계에 고객의 피드백이 적었지만, 애자일 방법론으로 오면서 고객의 피드백이 들어갔다. 이 시대에 프로그램은 고객의 입장에서 고객이 원하는 프로그램을 만드는 것이 아닐까 생각이 든다.

 

 

1960년대부터 소프트웨어 개발의 규모·복잡도가 증가함에 따라 효과적인 의사소통과 개발과정의 효율성, 품질 확보 등 체계적인 개발의 필요성으로 다양한 SW개발프로세스 등장

  • 대부분 개발프로세스(나선형, RUP, CBD 등)는 폭포수(Waterfall) 라이프 사이클을 근간으로 개발

    • 전통적 개발프로세스: 폭포수, 나선형, 프로토타입, RUP, CBD, CMM 등

  • 이러한 개발프로세스는 업무전개가 논리적이고 인력관리가 효율적인 반면 초기 요구사항이 불명확하고 비즈니스·기술적 불확실성이 클 경우 심각한 문제 발생

    • 요구사항 도출 어려움으로 전체 단계 지연, 후반부에 변경이 집중되므로 일정 및 품질 저하, 개발 과정 상 고객과의 의사소통 부족으로 의도치 않은 변경 발생 등

  • 반면, 애자일(Agile) 방법론은 기존 개발프로세스들의 무겁고 순차적인 프로세스의 문제점을 극복하고, 소프트웨어를 가볍고 효율적으로 개발 방법을 제시

    • 전통적인 개발프로세스: 프로젝트 초기에 요구사항을 정리하고 계획과 분석·설계·구현이 순차적으로 진행

    • 애자일은 초기 요구사항의 불확실성을 가정하고 프로젝트 초기에 개략적인 릴리즈 계획만 수립, 주기적인 이터레이션 계획을 통해 점진적·반복적 개발을 추구

 

빠른 환경 변화에 대응하기 위하여 요구사항의 불확실성 관리, 산출물 최소화 및 소통을 강조하는 애자일 등장

  • 전통적인 개발프로세스는 체계적 프로세스 수행을 강조하는 반면, 애자일 소통과 협력 강조

 

구분

전통적 개발 방법론

애자일 방법론

적용환경

요구사항이 비교적 명확하고 리스크가 낮은 경우 진행

요구사항이 불확실성과 리스크가 높은 경우

통제 방식

Process-driven

People-driven

프로세스 모델

정의된(Defined) 프로세스

경험적(Empirical) 프로세스

계획 수립

초기에 최대한 요구사항을 확정하고 상세 계획 수립

개략적인 범위와 일정을 수립하고 주기적으로 상세 계획 수립

개발 모델

폭포수 중심

점진적/반복적 중심

사용자 참여

사용자 참여가 제한적

사용자의 지속적인 참여

요구변경

변경을 가급적 억제0

변경을 주기적으로 포용

프로젝트

목표

계획 수립

고객 가치 증대

팀원 역할

개인 책임으로 일하며 한정된 역할 수행

팀 책임으로 일하며 포괄적인 역할 수행

인재상

I자형(한 분야만 전문가)

T자형(한 분야의 전문가이면서 여러 분야를 폭넓게 앎)

 

 

728x90

댓글 영역