애자일(Agile)의 의미와 종류

yurimLee·2022년 12월 28일
0

🎇 애자일(Agile)

개발 단계에서 변화에 대한 신속한 대응으로 요구사항을 지속적으로 분석, 반영하여 배포 시간차를 최소화하는 개발 방법론이다.

  • 애자일 선언문 (Agile Manifesto)
    1. 도구보다 개인과 상호작용을
    2. 문서보다 작동하는 SW
    3. 계약 협상보다 고객 협업을
    4. 계획 실행보다 변화 대응을

1. 스크럼(Scrum)

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

설명
백로그(Backlog)제품 및 프로젝트에 대한 요구 사항을 우선 순위에 따라 나열한 목록으로, 개발 과정에서 새롭게 도출되는 요구사항으로 인해 지속적으로 업데이트 되며, 완료된 모든 작업은 백로그에 기록한다.
스프린트(Sprint)‘전력 질주’라는 사전적 의미를 가지며, 30일 단위(Iteration)의 짧은 개발 기간으로 분리하여 반복적 수행하여 이해관계자에게 일의 진척도를 보고한다
스크럼 미팅(Scrum Metting)매일 15분 정도 미팅으로 오늘 및 내일 해야 할 일의 계획 수립한다.
스크럼 마스터(Scrum Master)프로젝트 리더로서, 스크럼 수행 시 문제 인지 및 해결한다.
개발 작업에 관한 것은 팀원 스스로 해결해야 한다.

2. XP(eXtreme Programmin)

의사소통 개선과 즉각적인 피드백에 의한 단순한 코딩으로 SW 품질을 높이기 위한 방벙론이다.
개발 단계 중 요구사항이 시시각각 변동이 심한 경우 적합한 방법론이다.
고객의 참여와 개발 과정의 반복(Iteration)을 극대화한다.
소규모 개발 조직에 적합하다.

  • 5가지 가치
설명
의사소통 / 커뮤니케이션1. 팀 개발에 있어서 가장 중요한 요소
2. 한 팀이라는 느낌을 만들고 효과적으로 협동하기 위해서 중요한 부분
단순함1. 간단한 부분은 바로 작성하고 복잡한 설계 부분은 지속적으로 리팩토링(Refactoring)하여 불필요한 복잡성을 줄이기 위해 노력
2. 부가적 기능, 사용되지 않는 구조와 알고리즘 배제
피드백1. 지속적인 테스트와 반복적인 결함 수정, 빠른 피드백
2. 의사소통의 핵심이며 단순성에도 기여함
용기1. 고객의 요구 사항 변화에 능동적으로 대처
2. 실패하는 해결책을 버리고 새 해결책을 찾아 나서는 용기
존중1. 모든 프로젝트 관리자는 팀원의 기여를 존중
2. 팀에 속한 모든 개인의 기여를 존중

❓❔ 리팩토링(Refactoring)
코드의 기능은 유지하면서 클래스, 함수, 필드처럼 여러 프로그래밍 요소를 변경하여 조금 더 읽기 쉬운 코드로 변환하는 과정 또는 그러한 기술이다.


3. 익스트림 모델링(XM; eXtreme Modeling)

UML을 이용한 모델링 중심 방법론이다.
여타 모델링 방법들과는 달리, 언제나 실행할 수 있고 검증할 수 있는 모델을 작성하는 공정을 반복해서 최종적으로는 모델로부터 자동적으로 제품을 생성한다.


4. 크리스털 패밀리(Crystal Family

크리스털 패밀리는 소트웨어 개발 자체가 협력적 게임이라는 데서 출발한다.
사용자들은 요구사항이 담긴 표식과 소도구를 전해주면 이를 힌트로 개발자는 산출물을 완성하고 다음 단계로 나아갈 수 있다.
마지막 단계는 운영되는 소프트웨어 시스템이 되고 다음 게임은 시스템의 변경이나 대체가 된다.
프로젝트 규모에 따라 Clear, Yellow, Orange, Red로 나뉜다.
사용자를 개발팀에 포함시키며, 방법론을 끊임없이 개선해나가는 워크숍을 개최한다.


5. 기능 중심 개발(FFD; Feature-Driven Development)

상품이나 서비스 단위가 아닌 신규기능 단위로 개발을 진행하는 방법론이다.
2주마다 반복 개발을 시도하며, UML을 이용한 설계 방법과도 밀접한 관련을 가진다.


6. 린(Lean)

TPS(Poyota Production System)를 재정립한 경영방법론인 린 시스템의 품질 기법을 소프트웨어 개발에 적용한 개발 방법론이다.

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

7. 칸반(Kanban)

WorkFlow를 가시화하고 작업 중인 항목의 제한 및 작업 소요시간을 측정할 수 있는 작업 지시서를 SW 개발에 작용한 애자일 방법론이다.


참고
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=roylove&logNo=191086559

0개의 댓글