Hello

[정처기 필기] 애자일 개발 방법론 종류, XP, SCRUM

by 볼빵빵오춘기

애자일(Agile) 방법론

개념

요구사항부터 시작해서 설계, 구현, 테스트를 거치면서 완벽한 SW가 개발될 때 까지 지속적으로, 중간중간 요구사항이 변경되더라도 설계, 구현, 테스트에 계속 반영하여 최종 결과에 점점 가깝게 다가가며 완성에 이르는 개발 방법

특징

  • 날렵한, 재빠른 이란 사전적 의미와 같이 SW 개발 중 설계 변경에 신속히 대응하여 요구사항을 수용할 수 있다.
  • 절차와 도구보다 개인과 소통을 중요시하고 고객과의 피드백을 중요하게 생각한다.
  • SW가 잘 실행되는데 가치를 둔다.
  • SW 배포 시차를 최소화할 수 있다.
  • 특정 방법론이 아닌 SW를 빠르고 낭비 없이 제작하기 위해 고객과의 협업에 초점을 두고 있다.
  • 짧은 릴리즈와 반복
  • 점증적 설계
  • 사용자 참여
  • 문서 최소화
  • 비공식적인 커뮤니케이션 변화

애자일 개발 방법론(종류)

  • 익스트림프로그래밍(XP, eXtreme Programming)
  • 개발 단계 중 요구사항이 시시각각 변동이 심한 경우 적합한 방법론으로 테스트 우선 개발(TDD)을 특징으로 하는 명시적인 기술과 방법을 가지고 있다.
  • 스크럼(SCRUM)
  • 매일 정해진 시간에 정해진 장소에서 짧은 시간의 개발을 하는 팀을 위한, 프로젝트 관리 중심의 방법론이다.
  • 크리스털 패밀리
  • 애자일 개발 방법론 중 가장 소규모 팀에 적용하는 크리스털 클리어는 익스트림 프로그래밍만큼 엄격하지도 않고 효율도 높지 않지만, 프로젝트에 적용하기 쉬운 방법론이다.
  • FDD(Feature Driven Develompment, 기능 중심 개발)
  • Feature마다 2주 정도의 반복 개발을 하는 것으로 Peter Coad가 제창하는 방법론이다.
  • ASD(Adaptive Software Development)
  • SW 개발을 혼란 자체로 규정하고, 혼란을 대전제로 그에 적응 할 수 있는 SW방법을 제시하기 위해 만들어진 방법론이다.
  • 나선형 모델
  • 위험 분석에 중점을 두어 프로토타입을 발전시키는 진화적 프로토타입 모델의 대표적인 모델 방식이다.
  • 린(Lean), DSDMD(Dynamic System Development Method, 동적 시스템 개발 방법론) 등

XP(eXtreame Programming)

  • 1999년 Kent Beck이 제안하였으며, 개발 단계 중 요구사항이 시시각각 변동이 심한 경우 적합한 방법론이다.
  • 요구에 맞는 양질의 SW를 신속하게 제공하는 것을 목표로 한다.
  • 요구사항을 모두 정의해 놓고 작업을 진행하는 것이 아니라 요구사항이 변경되는 것을 적용하는 방식으로 예측성보다는 적응성에 더 높은 가치를 부여한 방법이다.
  • 요구사항을 모두 정의해 놓고 진행을 진행하는 것이 아니라 요구사항이 변경되는 것을 적용하는 방식으로 예측성보다는 적응성에 더 높은 가치를 부여한 방법이다.
  • 고객의 참여와 개발 과정의 반복을 극대화하여 생산성을 향상시키는 방법이다.

XP 핵심 가치

  • 소통(Communtication) : 개발자, 관리자, 고객 간의 원활한 소통을 지향한다.
  • 단순성(Simplicity) : 부가적 기능 또는 미사용 구조와 알고리즘은 배제한다.
  • Feedback : 소프트웨어 개발에서 변화는 불가피하다. 이러한 변화는 지속적 테스트와 통합, 반복적 결함 수정 등을 빠르게 피드백한다.
  • 용기(Courage) : 고객 요구사항 변화에 능동적으로 대응한다.
  • 존중(Respect) : 개발 팀원 간의 상호 존중을 기본으로 한다.

SCRUM 개념과 특징

  • 요구사항 변경에 신속하게 대처할 수 있도록 반복적이고 점진적인 소규모 팀원 간 활발한 소통과 협동심이 필요한 팀 중심의 SW 개발 방법론이다.
  • 신속하게 반복적으로 실제 작동하는 SW를 제공한다.
  • 개발자들의 팀 구성과 각 구성원의 역할, 일정 결과물 및 그 외 규칙을 정하는 것을 말한다.
  • 기능 개선점에 우선순위를 부여하고, 개발 주기 동안 실제 동작 가능한 결과를 제공한다.
  • 커뮤니케이션을 위하여 팀은 개방된 공간에서 개발하고, 매일 15분 정도 회의를 한다.
  • 팀원 스스로 팀을 구성해야한다.(Self Organizing)
  • 개발 작업에 관한 모든 것을 팀원 스스로 해결해야 한다.(Cross Functional)

SCRUM 기본 원리

  • 기능 협업을 기준으로 배치된 팀은 스프린트 단위로 SW를 개발한다.
  • 스프린트는 고정된 30일의 반복이며, 스프린트시행하는 작업은 고정된다.
  • 요구사항, 아키텍처, 설계가 프로젝트 전반에 걸쳐 잘 드러나야 한다.
  • 정해진 시간을 철처히 지켜야 하며, 완료된 모든 작업은 제품 백로그에 기록된다.
  • 가장 기본적인 정보 교환 수단은 일일 스탠드 업 미팅, 또는 일일 스크럼이다.

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기