[CS] 애자일(Agile)
[1] 애자일의 개념
[1.1] 기본 개념
애자일은 우리말로 기민한
, 민첩한
이란 뜻을 가집니다.
빠르게 변화하는 비즈니스 환경에 창의적으로 대응하면서,
고객에게 지속적으로 가치를 제공하는 인간관계 중심의 프로젝트 관리 방법이라고 정의할 수 있습니다.
애자일 선언문
- 개인과 상호작용을 과정과 도구보다 더 중요시합니다.
- 실행되는 소프트웨어를 문서화된 문서보다 더 중요시합니다.
- 고객과의 협력을 계약 협상보다 더 중요시합니다.
- 변화에 대응하기를 계획을 따르기를 더 중요시합니다.
애자일 12가지 원칙
- 고객 만족을 최우선으로 합니다.
- 변화에 대한 대처를 중요하게 생각합니다.
- 짧은 시간 간격으로 기능을 배포하며 소프트웨어를 빠르게 전달합니다.
- 업무를 수행하는데 필요한 사람들을 모아 팀을 구성합니다.
- 열정적이고 자기 주도적인 팀원들로 구성합니다.
- 팀원들 간의 소통과 협력을 강조합니다.
- 동작하는 소프트웨어를 최우선으로 합니다.
- 지속적인 개선을 추구합니다.
- 프로세스와 도구보다 개인과 상호작용을 중요하게 생각합니다.
- 작동하는 소프트웨어에 대한 개발을 중시합니다.
- 지속적인 개발을 위해 안정적인 환경을 유지합니다.
- 팀원들 간 지식을 공유하고 지식 전이를 강조합니다.
- ⚠️애자일은 방법론이 아닌 하나의 사고방식입니다.
- 애자일 방법론이란 팀이 애자일 가치와 원칙을 따르는 방식으로 따르기로 선택한 규칙입니다.
애자일 기반으로한 프레임워크는 XP, SCRUM, Lean, ASD 등이 있습니다.
[1.2] MVP
MVP(Minimum Viable Product)란 최소 기능 제품이라는 뜻을 가지고 있습니다.
제품이나 서비스를 출시하기전에, 시장에서 요구사항과 반응을 빠르게 파악하고, 제품의 초기 버전을 출시하는 것을 의미합니다.
애자일에서 MVP는 제품 개발 초기 단계에서 중요한 개념 중 하나입니다.
최소한의 기능만으로 출시하여, 시장의 피드백을 수집하고 이를 기반으로 제품을 지속적으로 개선함으로써 비용과 시간을 절약하고,
제품의 성공 가능성을 높이기 위함입니다.
[2] 애자일의 특징
- 반복적이고 점진적인 개발 방식
작은 주기로 개발하며, 각 주기마다 기능을 추가하거나 수정하여 완성도를 높입니다. - 고객 중심의 개발 방식
고객의 요구사항에 맞춰 개발을 하며, 개발한 제품이 고객의 요구에 부합하는지 검증합니다. - 협업과 커뮤니케이션 강조
개발자끼리 뿐만 아니라 고객과도 긴밀한 의사소통을 통해 개발 진행 상황을 공유하고, 문제를 빠르게 파악하고 해결합니다. - 자가조직화된 팀
각 팀원이 책임감과 자율성을 가지고 업무를 수행합니다. - 빠른 피드백과 지속적인 개선
짧은 주기로 개발하여 빠른 피드백을 받고, 지속적으로 개선해나가는 방식으로 제품의 완성도를 높입니다. - 변화에 대한 대처 능력
요구사항이 바뀌더라도, 빠르게 대처하여 프로젝트를 진행할 수 있도록 준비합니다.
[3] 애자일의 등장 배경
전통적인 방법론의 경우 초기 계획을 미리 수립하고, 일련의 과정을 선행적으로 수행하는 방식으로 개발을 진행합니다.
그러나 이러한 방식은 변경에 대한 대응력이 부족하고, 고객 요구사항 반영이 어렵고, 고객 만족도를 높이는 데 어려움을 겪었습니다.
이러한 이유로 새로운 방법론의 등장이 필요하게 되었고 애자일이 등장했습니다.
- 애자일의 장점
- 변화에 대한 유연한 대처 가능성
반복적이고 짧은 개발 주기를 통해 지속적인 피드백을 받아 요구사항이 변경될 때 빠르게 대처할 수 있습니다. - 고객의 요구 사항에 대한 높은 만족도
객과의 빈번한 소통을 통해 요구사항을 정확히 파악하고 그에 따라 제품을 개발하며,
이를 통해 고객의 요구에 맞는 제품을 개발할 가능성이 높아지며 고객 만족도를 높입니다. - 팀 멤버들 간의 협력적이고 자율적인 분위기 조성
팀 멤버들이 자율적으로 일하고 의견을 나누며 서로 협력하여 문제를 해결하도록 유도합니다. - 빠른 반응과 수정이 가능한 개발과정
짧은 개발 주기를 갖기 때문에 빠른 수정과 개선이 가능합니다.
또한 피드백을 통해 신속하게 문제를 파악하고 대처할 수 있기 때문에 불필요한 작업을 피할 수 있습니다.
- 변화에 대한 유연한 대처 가능성
- 애자일의 단점
- 과도한 의사소통과 회의
확정되지 않은 계획 및 요구사항으로 인한 반복적인 유지보수 작업이 많을 수 있습니다. - 요구사항 불명확성
요구사항의 변경에 빠르게 대응할 수 있지만, 초기에 요구사항을 명확히 파악하지 못할 경우 문제가 발생 - 문서화 부족
애자일 방법론은 개발 과정에서 발생하는 모든 문제와 해결책을 문서로 남기지 않는 경향이 있습니다.
개발 프로세스가 잘못된 방향으로 나아갈 수 있으며, 프로젝트가 종료되더라도 나중에 문제가 발생할 경우 대응하기 어려울 수 있습니다.
- 과도한 의사소통과 회의
[4] 애자일 종류
[4.1] 스크럼(Scrum)
스크럼 프레임워크는 대규모 프로젝트에 주로 사용되며, 일정한 주기로 나누어진 스프린트(Sprint)를 통해 작업을 수행합니다.
스프린트 시작 전에 백로그라는 작업 목록을 작성하고, 스프린트 기간 동안 팀원들은 해당 작업 목록에서 자신이 맡은 작업을 수행합니다.
매일 정해진 시간에 짧은 미팅을 통해 진행 상황을 공유하고, 스프린트가 끝난 후에는 스프린트 회고를 통해 지속적인 개선을 추진합니다.
[4.2] 칸반(Kanban)
칸반 프레임워크는 스크럼에 비해 더 유연한 방법론이며, 짧은 사이클의 작업에 더 적합합니다.
시각화된 작업 보드를 사용하여 작업의 흐름을 시각적으로 파악하고, 각 작업에 대한 우선순위와 리미트 설정을 통해 공정성을 강조합니다.
스크럼과 달리 정해진 주기가 없으며, 작업의 우선순위를 중심으로 진행됩니다.
팀원들은 작업을 수행하면서 지속적인 개선을 추진하며, 이를 위해 리트로스펙티브라는 회고를 수행합니다.
[5] 요약
- 애자일은 빠르게 변화하는 비즈니스 환경에서 고객에게 지속적인 가치 제공을 위해 인간 중심의 프로젝트 관리 방법입니다.
- 애자일은 계획과 실행을 지속적으로 조율하고 개발자와 고객간의 소통을 강조합니다.
- 애자일은 전통적인 방법론의 부족한 대응력과 고객과의 의사소통이 어려운 한계와 단점을 극복하고자 등장했습니다.
- 애자일의 가장 큰 특징은 고객의 만족도와 생상성의 향상입니다.
참조
이상 포스팅을 마치겠습니다.
댓글남기기