하루 하루

[ 소프트웨어공학 ] 애자일 프로세스 모델 본문

Computer Science/소프트웨어공학

[ 소프트웨어공학 ] 애자일 프로세스 모델

san_deul 2020. 6. 3. 03:28

애자일 프로세스 모델으 고객의 요구에 민첩하게 대응해 그때그때 주어지는 문제를 풀어나가는 방법론으로 

익스트림 프로그래밍, 스크럼, 크리스털 같은 방법론들을 통칭한다.

 

애자일 프로세스 모델의 가장 큰 특징은 계획을 기반으로 하는 폭포수 모델과는 다르게 사용자의 요구 사항의 변화에 유연하게 대처할 수 있다는 점이다. 이러한 애자일 프로세스 모델의 경우 애자일 엽합이 존재해 애자일 선언문과 

애자일 원칙 등이 존재한다. 

 

 

[ 애자일 선언문 ]

  • 공정과 도구보다 개인과 상호작용
  • 포괄적인 문서보다 작동하는 소프트웨어
  • 계약 협상보다 고객과의 협력
  • 계획을 따르기보다 변화에 대응하기

애자일 방법론을 실천하기 위한 주요 원칙으로 시험 문제에 등장할 법한 부분으로 외우는 편이 편하다.

 

외우기 팁

" 변화 상 고작 그 정도,,, ? "  

  -> " 변화(에 대응하기) 상 (호작용 ) 고(객과의 협력) (동하는 소프트웨어) 그 정도,,, ? "

 

비교 대상  애자일 방법론 폭포수 모델
계획 수립 유동적 범위 설정  확정적 범위 설정
임무 수행 팀 중심 업무 수행 관리자 주도적 명령과 통제 
개인 단위로 업무 수행 
개발/ 검증 반복 주기 단위로 소프트웨어를 개발/ 검증 분석/ 설계/ 구현 / 테스트를 순차적으로 수행
팀관리 업무 몰입, 팀 평가 경쟁, 개별 평가 
문서화 문서화보다는 코드를 강조 상세한 문서화를 강조 
성공요소 고객과의 의사 소통  계획/일정 준수
모듈 통합 초기 부터 빈번한 통합을 통한
문제점 수정
구현 완료 이후 통합 
시작 단계에서의 완성도  계속적 추가 요구사항을 전제로 하기 때문에 초반 완성도는 낮음 확정적 범위 설정을 전제로 하기 때문에 단계별 완성도가 높음 
릴리스 시점 가능한 자주 프로토타입을 공개  개발 과정 완료 후 릴리스

 

- 스크럼

스크럼은 럭비 경기에 사용되던 용어로서, 반칙으로 인해 경기 가 중단되었을 때 양 팀이 밀집해 상대 팀을 앞으로 밀치는 대형을 뜻한다. 

애자일 방법론에서의 스크럼은 이러한 '스크럼이 가진 팀'이라는 의미에 주목해 사용되며,

매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론을 이야기 한다.

 

 

 [ 스크럼 진행방식 ] 

1. 제품 기능 목록 작성

백로그는 ( Backlog ) 제품과 프로젝트에 관련한 요구 사항으로 각 사항에 대해 모두 우선순위가 매겨져 있다.

 

2. 스프린트 계획 회의

스프린트는 2~ 4주의 짧은 개발 기간으로 반복적으로 수행해 개발품질을 향상시키는 방법으로 

요구사항이 안정적이고, 개발 경험이 풍부하면 2주 단위로 수행하고, 반대의 경우에는 4주정도로 잡는다.

 

3. 스프린트 수행

스프린트 기간 동안 지정된 목표와 내용은 팀원들의 동의없이 바꾸지 못하며, 스크럼 마스터는 외부로 부터 오는 개발 방해 요소를 차단하는 역할을 한다. 주목할 만한 점은 계획된 스프린트 안에 개발을 마치지 못할 경우 스프린트 주기를 연장 시키는 것이 아니라 정해진 일정이 지나면 끝이 난다는 것이다.

 

- 소멸 차트 

시간이 지난에 따라서 계획 대비 남은 작업량을 나타내는 그래프이다.

가로축 - 시간 축으로 스프린트 반복 주기 날짜수

세로축 : 완료된 작업의 추정 일수 

계획 그래프 : 처음 계획을 세웠을 때 날짜 별로 남은 작업량

실제 그래프 : 작업을 수행하면서 날짜별로 남은 실제 작업량 

 

- 스크럼 미팅

매일 15분 정도 약속된 시간에 모든 팀원들이 참여하는 미팅으로 

진행 상황을 점검한다. ( 서서하기도 함 )

 

4 스프린트 개발 완료 : 최종 제품 

5 스프린트 완료 후 

 

- XP 

의사소통 개선과 즉각적인 피드백으로 소프트웨어 품질을 향상시키는 방법으로 

1~ 3주 단위로 반복하며 '용기, 단순성, 의사소통, 피드백, 존중' 이라는 5가지 가치 하에 진행된다.

 

- 린 

도요타의 린 시스템 푸질기법을 소프트웨어 개발 프로세스에 적용해 낭비 요소를 제거해 품질을 향상시키는 방버론은 

Just In Time, Kanban 보드 사용등의 특징이 있다.

린의 7가지 원칙은 낭비제거 , 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화이다. 

Comments