Post

[개발 방법론] - 애자일(Agile) 방법론의 종류

0. 들어가기에 앞서


이전 포스팅에서는 애자일 방법론에대해 전반적으로 설명하였습니다. 이번 포스팅에서는 애자일 방법론에는 어떤것들이 있는지에대해 설명하고 해당 기법에대해 설명하도록 하겠습니다.


1. 스크럼(Scrum)


  • 애자일 방법론의 가장 대표적인 형태입니다.
  • 팀 중심의 협업과 빠른 피드백을 강조합니다.
  • 스크럼 팀이 존재하며 이는 다음과 같습니다.
    • PO(Product Owner) : 백로그 관리와 제품전반에걸친 관리를 하며 우선순리를 선정합니다.
    • SM(Scrum Master) : 스크럼 진행을 감독하고 팀원들이 잘 따라올 수 있도록합니다.
    • 개발자 : 개발자입니다.
  • 짧은 스프린트(1~4주)를 가지고 명확한 목표를 설정하여 이를 반복 수행합니다.
  • 데일리 스크럼을 통해 정보를 공유하여 팀간의 의사소통을 진행합니다.
  • 매 스프린트마다 피드백을 받고 이를 반영합니다.


1. 칸반(Kanban)


  • WIP를 제한하여 한번에 너무 많은 양의 작업이 동시에 일어나 병목현상이 일어나지 않도록 사전 방지합니다.
  • 칸반보드를 활용하여 작업의 흐름을 시각적으로 보여주어 작업 상태를 쉽게 파악할 수 있게 해줍니다.
  • 특정 주기에 얽매이지않고 언제든 새로운 작업을 추가 혹은 조정할 수 있습니다.
  • 작업을 스프린트 단위로 나누지않고 작업 항목이 완료되는 대로 새로운 작업을 시작합니다.


2. XP(eXtreme Programming)


  • 테스트 주도의 개발(Test-Driven Development, TDD)을 통해 앞으로 개발할 코드가 고객의 요구사항을 충족하는지 확인합니다.
  • 페어 프로그래밍(Pair Programming)을 통해 서로 의견을 공유하고 상호 보존함으로서 코드의 품질 향상과 오류를 줄여 코드의 완성도를 높여줍니다.
  • 지속적인 통합(Continuous Integration, CI)을 통해 개발중인 코드의 문제점을 사전에 파악할 수 있습니다.
  • 작은 릴리즈(Small Releases)를 통해 잦은 주기로 피드백 수용이 가능합니다.


3. 린(lean Development)


  • 제조업에서 시작한 린 원칙을 소프트 웨어개발에 적용한 방법론입니다.
  • 낭비를 최소화하며 효율성을 극대화하여 고객에게 가치를 빠르게 전달하는것이 목표입니다.
  • 불필요한 작업(중복된 문서화 등)을 최소화합니다.
  • 필요 최소한의 기능만을 구현하여 고객에게 빠르게 전당합니다.
  • 지속적으로 프로세스를 개선하고 문제를 해결해 나아가고자하는 노력을 중요시합니다.
  • 자율적이고 협력적인 팀을 강조하며 각 팀원들의 책임과 권한을 존중합니다.


4. 정리


아래표는 각 방법론별로 장단점을 비교한 표입니다.

방법론장점단점
스크럼(Scrum)- 짧은 스프린트로 빠른 개발 주기
- 팀 간의 협업과 의사소통 촉진
- 명확한 역할 분담이 존재합니다(PO, SM, DT)
- 주기적인 피드백과 프로세스 개선 가능
- 스프린트 중간에 변경 사항 반영이 어려움
- 스크럼 마스터의 역할이 중요해 관리 부담이 큼
- 정형화된 프로세스로 인해 작은 프로젝트에 부담 가능성
칸반(Kanban)- 일의 병목현상을 사전에 방지함
- 작업 흐름과 시각적 관리에 중점
- WIP(진행 중인 작업) 제한을 통해 효율성 증가
- 변화에 대해 즉각적인 반응 가능
- 스프린트 없이 연속적인 작업 흐름 유지
- 명확한 역할 분담이 없어, 책임 소재가 불명확할 수 있음
- 팀 자율성에 의존하여 자칫하면 혼란 발생 가능
- 작업이 우선순위 없이 분산될 가능성
XP(eXtreme Programming)- 테스트 주도 개발(TDD)로 코드 품질 향상
- 페어 프로그래밍으로 코드 완성도 향상
- 지속적 통합(CI) 및 짧은 개발 주기로 빠른 피드백 가능
- 코드의 재사용성과 유지보수성 향상
- 높은 기술력이 요구되며, 경험이 적은 팀에게는 부담
- 페어 프로그래밍이 비효율적으로 느껴질 수 있음
- 문서화 부족 가능성이 존재함
- 관리 측면에서 혼란 발생 위험
린(lean Development)- 낭비 제거와 최적화에 중점
- 가치 제공에 집중하여 불필요한 작업 최소화
- 지속적인 개선을 통해 효율성 증가
- 데이터 기반으로 의사결정
- 소규모 프로젝트에서 적용하기 어려울 수 있음
- 프로세스 개선에 대한 과도한 집중으로 실행 속도 저하 위험
- 문화적 변화가 필요하며 적용에 시간 소요


글을 마무리하며


이번포스팅에서는 주요 개발기법인 애자일 방법론의 세부 기법들을 알아보았습니다.
이를 통해 우리 팀에 필요한 방법론이 어떤 방법론인지를 좀더 명확히 할 수 있었으면 좋겠습니다.
본 포스팅에서 궁금한점 혹은 의문점이 있으신 분들께서는 언제라도 댓글로 알려주시면 확인후 적극 방영하도록 하겠습니다!

이만 가보겠습니다!

This post is licensed under CC BY 4.0 by the author.