I. 단순 설계의 시작, Agile 프로세스 개요
가. Agile 프로세스 정의
절차와 산출물 보다는 소프트웨어 자체에 초점을 맞춘 방법론으로, 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 방법론
나. Agile 프로세스 특징
특징 | 내용 |
---|---|
사람 중심 | 개발팀의 기술이 인식되고 활용됨 구성원들은 규정된 프로세스 없이 자체 작업 방식 개발 |
고객 참여 | 고객이 프로세스 전체에 긴밀하게 참여 요구사항 개발, 요구사항 우선순위 결정 |
변경 수용 | 요구사항이 후반부에서도 변경될 수 있음 요구사항 변경을 수용가능하도록 시스템 설계 필요 |
점증적인 인도 | 작동하는 소프트웨어를 고객에게 자주 전달하여 요구사항 신속하게 적용하고 피드백 |
PM의 역할 변화 | 프로젝트 관리자에서 촉진자로 변경 프로젝트 계획수립 및 통제의 책임이 팀원에게 이양 |
적용범위 | 중소형, 아키텍처 설계, 프로토타이핑에 적합 |
다. Agile 프로세스 등장배경
환경의 변화 | 정보시스템에 대한 사용자요구가 다양해짐 정보시스템 수명주기 단축 적시성(time-to-market)과 적시 배포(Release)가 중요해짐 |
방법론의 한계 | 문서위주, 절차중심의 방법론은 변화에 신속적응 어려움 변화에 빠르게 적응하고 효율적 개발이 중요 중소교모 시스템에 무거운 기법 적용 시 오버헤드 커짐 |
II. Agile 프로세스 유형
종류 | 내용 |
---|---|
XP | 의사소통 개선, 즉각적인 피드백에 의해 단순코딩하여 소프트웨어의 품질을 높이기 위한 방법 |
SCRUM | 사용자의 요구사항을 만족시키기 위해 프로토타입을 반복, 점진적으로 개발하는 Agile 방법론 |
Kanban | 적시개발(just-in-time)을 지원하는 방법론으로 매우 적은 규칙을 가지고 있는 Agile 방법론 |
Lean | TPS(Toyota Production System)를 벤치마킹하여 재정립한 경영방법론을 소프트웨어 개발에 적용한 개발 방법론 |
III. Agile 프로세스를 위한 조직 구조(PO, SM)
가. Agile 프로세스를 위한 조직구조 유형
팀 내 업무에 필요한 모든 기능이 속해 있어 커뮤니케이션 및 협업 용이
COP는 기술 중심의 모임으로 정기/비정기적으로 만나서 Practice를 공유
나. Agile 프로세스의 팀 구성 및 구성원 역할
- PO(Project Owner): 업무의 우선순위를 정하고 백로그 관리
- SM(Scrum Manager): 팀의 사람 관리를 하며 실제 팀의 실행을 리딩
- Developer: 개발자
- Designer: 디자이너
다. Agile 조직의 특징
- Cross Function 팀: 목적을 달성하기 위해 조직되고 목적 달성하면 해체
- 팀장이 없음: 보고하는 대상이 없고 팀이 Daily Scrum을 통해 업무 공유
- 제한 인원(9명): 구성원 많아지면 Comm.이 어렵고 관료화 가능성 높음
- QA조직없음: 제품의 품질은 Agile 팀 내에서 책임을 지고 준수
IV. Agile 프로세스와 타 개발 모델 비교
비교항목 | Agile 프로세스 | 전통적 방법론(폭포수 모델) |
---|---|---|
계획수립의 상세수준 | 바로 다음 반복 주기에 대해서만 상세 계획 수립 | 다음에 이어지는 단계에 이르기까지 상세한 계획 수립 |
요구사항의 베이스라인 | 요구사항에 대한 베이스라인 설정을 강조하지 않음 | 초기 요구사항에 대한 베이스라인을 설정 |
아키텍처 정의방법 | 실제 개발된 기능 구현을 통해 빠른 실현 가능성 증명 | 모델을 상세화하는 과정을 통해 아키텍처를 초기에 정의 |
테스트 방법 | 많은 시간과 비용이 들어가기 전에 기능 검증 | 특정 기능 구현 후 단위-통합-시스템 테스트로 확장 |
표준 적용 | 작은 Inspection을 통해 개발에 유연하게 적용을 강조 | 개발 전 표준화된 개발 프로세스를 제정을 강조 |
V. Agile 방법론의 장,단점
가. Agile 방법론의 장점
구분 | 내용 |
---|---|
ROI 증대 | 고객에게 가치있는 기능을 빠르고 안정적으로 전달 |
Delivery Time 감소 | 요구사항 변화 유연하게 수용해 Time to Market 실현 |
창의성 향상 | 팀의 자율성 강화를 통해 업무만족도와 창의성 향상 |
생산성 향상 | 불필요한 산출물 제거 및 팀 협업 강화 |
제품 품질 향상 | 고객의 주기적 피드백 및 빈번한 테스트 |
나. Agile 방법론의 단점
구분 | 내용 |
---|---|
체계적인 문서화 및 지침 부족 | 방법론 자체로 적용하기에 프로세스 정립 부족 Agile 적용을 지원하는 문서나 구체적인 지침 부족 |
요구사항 변경에 의한 오버헤드 | 비기능적 요구사항에 대한 고려가 부족 요구사항의 잦은 변경에 따른 테스트 수행노력 증가 |
사업관리 부분 미흡 | 측정지표가 개발자 기준이므로 관리자 요구 충족불가 프로젝트 리스크 관리에 대한 고려 부족 |
감리 대응 문제 | 기존방법론에 비해 적은 문서량 감리 기준에 부합되지 않는 산출물로 이슈 발생 |
View Comments (1)
과제 제출에 큰 도움이 되었습니다. 감사합니다!