본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

적응형 소프트웨어 개발

IT 위키
Adaptive Software Development; ASD, 적응적 소프트웨어 개발
계획을 고정하지 않고 추측(Speculate) – 협력(Collaborate) – 학습(Learn) 주기를 반복하며 변화에 적응해 가는 애자일 방법론

적응형 소프트웨어 개발은 짐 하이스미스(Jim Highsmith)가 1990년대에 RAD(Rapid Application Development) 경험을 바탕으로 정리하고 2000년 같은 이름의 책으로 펴낸 방법론이다. 하이스미스는 2001년 애자일 소프트웨어 개발 선언에 참여한 17명 가운데 한 사람이며, ASD 는 익스트림 프로그래밍, SCRUM, DSDM, FDD, 크리스털과 함께 애자일 방법론의 하나로 분류된다.

ASD 의 출발점은 복잡한 소프트웨어 개발에서는 결과를 처음부터 정확히 예측할 수 없다는 인식이다. 그래서 전통적인 '계획(Plan) – 설계(Design) – 구축(Build)' 의 선형 흐름 대신, 계획을 추측으로 낮춰 부르고 짧은 주기마다 결과에서 배우며 방향을 고친다. 상세한 사전 계획과 문서를 지키는 것이 아니라 변화에 적응하는 것을 목표로 삼는다.

단계 하는 일
추측(Speculate) 프로젝트 사명과 제약, 기본 요구를 정하고 주기(cycle)별로 개발할 기능을 대략 배정한다. 계획은 언제든 틀릴 수 있다는 전제로 세운다
협력(Collaborate) 개발자·고객·관리자가 함께 일하며 기능을 만든다. 서로 다른 지식을 모으는 팀워크와 의사소통을 중시한다
학습(Learn) 고객 포커스 그룹 검토, 기술 검토(리뷰), 회고로 결과물과 과정의 품질을 확인하고 다음 주기의 추측에 반영한다
  • 사명 중심(mission-focused): 세부 작업 목록이 아니라 프로젝트의 목적을 기준으로 판단한다
  • 기능 중심(feature-based): 작업이 아니라 고객에게 보이는 기능 단위로 주기를 계획한다
  • 반복적(iterative)이고 시간 상자(time-boxed) 단위로 진행한다
  • 위험 주도(risk-driven): 위험이 큰 기능을 앞 주기에 배치한다
  • 변화 수용(change-tolerant): 요구 변경을 실패가 아니라 학습의 결과로 받아들인다

계획 주도 방법론과의 비교

편집 원본 편집
구분 적응형 소프트웨어 개발(애자일) 계획 주도 방법론(예: 폭포수 모델)
계획 추측. 주기마다 다시 세움 사전에 상세히 확정
문서 필요한 만큼만 단계별 산출물 문서를 철저히 작성
변경 학습 결과로 수용 통제 대상(변경 관리 절차)
성공 기준 고객에게 가치 있는 동작하는 소프트웨어 계획·명세 준수

"철저한 계획 및 문서화" 는 애자일 선언이 "포괄적 문서보다 동작하는 소프트웨어를, 계획을 따르기보다 변화에 대응하기를" 이라고 말할 때 뒤쪽에 둔 가치이므로 애자일 방법론의 특징이 아니다.