SWExpert 2022. 10. 13. 20:03

I. 절차보다 사람 중심, Agile 방법론 개요

-. 프로세스보다 사람 중ㅅ미이 되어 요구사항 변경에 대해 유연하고 신속하게 적응하면서 시스템을 개발할 수 있는 반복적 방법론

-. 효율적인 제품, SW 개발을 위해 절차보다 사람과 제품에 집중, 낭비를 제거, 고객의 요구사항을 유연하고 신속하게 반영하기 위한 방법론

-. 애자일(기만한, 좋은 것을 빠르고 낭비없게 만드는 것) 개발을 가능하게 해 주는 다양한 방법론 전체를 말함

-. 특징: 가변적 요구대응, 고객만족, 개발자 동기부여, Sweet Spots

특징 설명
애자일에 적합한 환경 고객 요구사항이 자주 변경되는 경우 애자일 방법론이 적합
고객 참여도 고객 프로세스에 협력하기 때문에 고객과 신속한 피드백이 가능
업무 효율화 프로젝트를 여러 부분으로 나누어 점진적으로 개발하여 신속하고 반복된 주기로 수행
소규모에 적합 요구사하잉 명확하지 않을 경우 또는 소규모 개발에 적합한 소프트웨어 방법론

II. Agile 가치 및 원칙

가. Agile 가치

 

가치 지향 설명
개인과 상호작용 소통중시 공정과 도구보다 개인과 상호작용을 강조
작동하는 소프트웨어 실무적 관점 포괄적인 문서보다 작동하는 소프트웨어에 가치를 둠
고객과의 협력 협동 중시 계약 협상보다 고객과의 협력에 가치를 둠
변화에 대응 유연성 계획을 따르기 보다 변화에 대응하는 것에 가치를 둠

 

나. Agile 원칙

구분 12가지 원칙 설명
고객가치 고객만족 추구 빠른 배포와 피드백 반영, 고객의 만족도 향상
요구사항 변경 수용 고객 요구 변경 인정 및 대응을 위한 유연성
짧은 배포 간격 도구 등을 통해 빠른 배포, 고객 피드백 반영
소통 현업-개발자간 일일 의사소통 담당자와 개발자 간의 소통을 통한 업무 효율화
동기부여된 사람들 중용/지원 동기 부여된 팀원을 중용 및 환경 지원
면대면 대화 Daily Meeting 등을 통한 면대면 대화
개발 작동하는 소프트웨어로 진도 측정 직접 SW 기능/비기능적 요소 및 진행 관리
지속 가능한 개발 장려 지속가능한 개발 및 프로젝트 진행 장려
좋은 기술, 설계 관심 우수한 기술, 아키텍쳐 중시 및 공유
추구 단순성 추구 목표 업무와 연관없는 일들을 최소화
자기 조직화 팀 책임감 부여, 생산성 향상을 위한 자기조직적 팀
정기적 효율성 제고 스프린트 리뷰를 통해 다음 스프린트에 반영할 수 있는 요소 적용

III. Agile 조직 및 회의 체계

가. Agile 조직

조직 구성 역할
TEAM PO(Project Owner) 업무의 우선순위를 정하고 백로그 관리
SM(Scrum Manager) 팀의 사람 관리를 하며 실제 팀의 실행을 리딩
Developer 개발자
Designer 디자이너
COP PO COP 비즈니스 목표와 의존성에 대해 논의
SM COP 실행시 팀 간 의존성이 있는 업무에 대해 확인 및 개선
Design COP 디자인 가이드, 시안 리뷰 및 피드백
Tech COP 기술적 Practice 공유

 

나. Agile 회의체계

구분 회의체계 설명
주기적 진행 Agile COP(Community of Practice) Meeting -. 구성: 같은 스킬을 가지고 있는 유사 직군 멤버들의 가상 조직, 주기적 모임진행
-. 역할 및 특징: 각 직군의 팀 리더들이 기술적인 스킬, 문제점, 표준/가이드화 논의
-. 각 팀의 Best Practice 공유
-. Tech Cop, PO COP, SM COP, Design COP 등이 운영
임시 조직 Agile Circle -. 구성: 팀 업무 이외에 별도의 이슈/목적을 가지고 업무 수행이 필요한 경우 임시적으로 구성되는 조직
-. 역할및특징: Cross-Function한 이슈 중심의 팀으로 팀 구성시 목적을 분명히 하고 정기적/부정기적으로 모임을 가진다, 단 목적이 달성되면 해당 Circle은 해체
Agile 조직 -. Cross-Function팀:팀 목적을 달성하기 위해 조직되고 목적 달성하면 해체
-. 팀장이 없음, 보고하는 대상이 없이 팀이 Daily Scrum을 통해 업무 공유
-. 제한인원(9명): 구성원이 많아지면 Comm.이 어렵고 관료화 가능성 높음
-. QA 조직 없음: 제품의 품질은 Agile팀 내에서 책임을 지고 준수

 

IV. Agile 방법론의 종류

종류 특징
XP -. 의사소통 개선, 즉각적인 피드백에 의해 단순 코딩하여 소프트웨어의 품질을 높이기 위한 방법
-. 개발 조직이 기반이 되는 중소규모 팀에 적합한 경량화된 개발방식
-. 협업, 빠른 소프트웨어 구현, 매우 기술적인 개발 방식을 강조하는 방법론
-. 테스트 강조, 4가지 가치와 12개의 실천항목
-. 1~3주 단위의 반복
-. 가장 주목받음, 개발관점
- 의사소통 개선, 즉각적 피드백, 단순, 품질향상
SCRUM -. 사용자의 요구사항을 만족시키기 위해 프로토타입을 반복, 점진적으로 개발하는 Agile 방법론
-. 프로젝트 관리를 위한 애자일 방법론으로서 스프린트(Sprint)라는 통상 4~6 주 정도의 잘 정의된 개발주기를 가지며 개발 효율성을 극대화할 수 있는 환경 제공
-. 투명성(Transparency), 타임박싱, 커뮤니케이션 중심, 경험주의 모델
-. 프로젝트를 스프린트(30일 단위 반복)로 분리, 팀은 매일 스크림(15분 정도) 미팅으로 계획 수립
-. 팀구원원이 어떻게 활동해야 하는가에 초점
-. 통합 및 인수테스트가 상세하지 않음
-. Iteration 계획과 Tracking에 중점
-. Backlog, Sprint 단위로 짧은 기간 
-. 3가지 산출물, 미팅, 역할자
Kanban -. 적시개발(just-in-time)을 지원하는 방법론으로 매우 적은 규칙을 가지고 있는 Agile 방법론
-. 칸반보드를 통해 개발 공정을 시각화하고 개발제안(WIP)을 이용해 Workflow상의 공정을 관리하고 최적화하여 적시개발(just-in time development)를 지원하는 Agile 방법론
-. workflow 시각화, wip, 제한, 소요시간 측정 및 최적화
-. 워크플로우 가시화를 통한 적시 개발, 작업제한(WIP) 적용
Lean -. TPS(Toyota Production System),을 벤치마킹하여 재정립한 경영방법론을 소프트웨어 개발에 적용한 개발 방법론
-. 80년 도요타 시스템의 린 생산방식을 소프트웨어 개발에 적용
-. 파레토 법칙에 의거하여 개발에 정말 중요한 20%에 집중하고 낭비되는 요소(가외기능, 혼란, 경계 넘어가기)를 제거
-. 개발 조직 전반에 걸친 법칙과 실천 방법론 다룸
Crystal -. 프로젝트 상황에 따라 알맞은 방법론을 적용할 수 있도록 다양한 방법론 제시
-. Tailoring하는 원칙 제공
-. 프로젝트 중요도와 크기에 따른 메소드 방법 제시
RUP -. 완전한 SW 개발 모델 제시
-. 비주얼 모델링 도구 지원
-. Agility 성격 강조
FDD -. Feature Driven Development
-. 기능 모델, 설계와 구현, 수해으이 3단계 사이클
-. 짧은 Iteration(2주)과 5단계 프로세스
-. 설계와 구축 프로세스의 반복
ASD -. Adaptive Software Development
-. 폭포수 사이클을 추측, 협동, 학습 단계로 대체

 

V. Agile 방법론 문제점 및 해결방안

가. Agile 방법론 문제점

나. Agile 방법론 문제점 해결방안

문제점 해결방안 설명
규모의 한계 단위별 적용 전체 프로젝트는 폭포수 모델로 진행하며 워킹그룹 단위로 애자일 적용
개발중심 계획부재 PMO 관리 분할발주 등을 통한 설계와 개발의 공정분리
PMO를 통한 사업관리
산출물 부재 3가치 산출물 작성 감리 대응을 위한 기본 설계 분석 산출물 작성
Burndown chart 및 아키텍쳐 산출물 준비
관리통제 상실 기준선 관리 폭포수 등의 전통적 방식과 융합을 통한 마일스톤 수립
단기 목표 및 필수 산출물 설정을 통한 기준선 관리
요구사항의 변경 CCB 운영 요구사항은 변경은 일정 및 자원의 투입을 초래함 인지
요구사항 변경관리를 위한 CCB 운영
고객 의존성 요구사항 명확화 요구공학 및 요구사항 명확화, 가시화를 위한 분석

 

VI. Agile 과 전통적 개발 방법론 비교

 

구분 애자일 개발 방법론 전통적인 개발 방법론
계획 수립 - 유동적인 범위  상세 요구사항 조정
- 주기적인 상세계획
- 확정된 범위초기에 상세 요구사항 확정초기 일정계획 수립
개발  테스트 - 이터레이션 단위로 실행 소프트웨어를 전달(적시설계/개발) - 분석/설계/구현/테스트를 순차적으로 수행
프로세스 View - 유연하고 간소함
- 프로젝트 상황에 따라 주기적 조정
- 정형화되고 상세화됨
업무 수행 형태  Self-Organizing 
-  중심 업무 수행(Collective Ownership)
- 관리자 주도적 명령과 통제
- 개인단위로 업무 수행
조직  Cross-Functional Team
- 전문가가 다기능을 수행
- Functional Team
- 분업화되고 역할이 한정
팀관리 - 업무몰입  코칭팀평가 - 지시  감시경쟁개별 평가
문서화 - 경량 프로세스  문서화보다 코드 강조 - 중량 프로세스상세한 문서화 강조
성공요소 - 고객 가치 전달 - 계획 준수