(CS) Agile Methodology

Mirrer·2023년 2월 17일
0

Computer Science

목록 보기
1/2
post-thumbnail

Agile

신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발 방식

Agile 은 기민한, 날렵한이란 뜻으로 좋은 것을 빠르게 취하고, 낭비 없게 만드는 다양한 방법론을 통칭해 일컫는 말이다.

애자일 방법론의 특징은 단어에서 예측할 수 있듯 앞을 예측하며 개발하지 않고, 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더해 점진적으로 서비스를 발전시킨다.


Agile Process

애자일 방법론의 진행 과정은 아래와 같으며 이를 반복적으로 진행한다.

계획 -> 설계(디자인) -> 개발(발전) -> 테스트 -> 검토(피드백)

미리 정해진 단계를 엄격하게 수행하는 일직선 과정의 폭포수 프로세스와는 반대로 먼저 진행 후 분석, 시험, 피드백을 통하여 서비스를 개선한다.

각 단계의 상세 과정은 다음과 같다.

  • 계획 및 분석: 고객과 사용자가 원하는 바를 파악하여 타당성을 조사하고 SW 기능과 제약조건을 정의하는 명세서 작성, 대상이 되는 문제 영역과 사용자가 원하는 task를 이해하는 단계
  • 설계 (디자인): 기획의도에 맞는 설계 및 디자인 추가 및 수정하는 단계
  • 개발 (발전): 설계단계에서 만들어진 설계서를 바탕으로 프로그램을 작성, 코딩, 디버깅, 단위 / 통합 테스트 수행
  • 테스트: 발생 가능한 실행 프로그램 오류를 발견, 수정하는 단계
  • 검토 (피드백): 기획의도를 파악하고 시험결과와 기획의 따라 수정할 부분을 제시하는 단계

Features of Agile

애자일 방법론은 고객과 개발자 사이의 지속적인 소통을 시도하여 변화하는 요구사항을 신속하게 수용한다.

또한 개발자 개인의 가치보다는 팀의 목적을 우선시하며 고객의 의견을 가장 우선시한다.

애자일 방법론의 대표적인 장, 단점은 다음과 같다.


장점

  • 프로젝트 계획에 걸리는 시간을 최소화

  • 점진적 테스트를 통한 쉽고 빠른 디버깅

  • 계획, 기능에 대한 수정과 변경에 유연

  • 고객 요구사항에 대한 즉각적인 피드백에 유연하며, 프로토타입 모델을 빠르게 출시 가능


단점

  • 확정되지 않은 계획 및 요구사항으로 인한 반복적인 유지보수 작업이 증가

  • 고객의 요구사항 및 계획이 크게 변경될 경우 기존 모델의 붕괴 가능성 증가

  • 개인이 아닌 팀 중심의 작업으로 인해 공통 작업의 증가

  • 반복적인 업무가 아닌, 미흡한 기능들에 대한 대처가 필요


Scrum in Agile

Scrum 은 팀이 협업하고 영향력이 큰 업무를 수행하는 데 도움이 되는 Agile Framework이다.

스크럼 프레임워크는 팀이 반복과 지속적인 개선에 집중할 수 있도록 가치, 역할, 지침의 청사진을 제공한다.

전통적으로 스크럼은 스프린트라고 하는 보통 2주간의 업무 세션으로 구성되며, 마지막에 특정 결과물이 산출된다.

  • 일일 스탠드업 미팅 : 하루에 한 번 수행하며, 스크럼 팀이 15분 동안 논의하며 일상 활동을 조율할 수 있는 기회
  • 스프린트 회고 : 스프린트가 끝났을 때 수행하며, 스크럼 마스터가 진행하는 스프린트 회고에서 팀은 자신의 스프린트를 되돌아보고 향후 스프린트를 위해 조정

Scrum이 추구하는 가치

스크럼은 다음의 5가지 가치에 중점을 두어 진행된다.

  • 용기: 팀의 목표가 올바른 길로 가기 위해 팀원 간 갈등을 두려워하지 말며 도전을 위한 용기를 가진다.

  • 집중 (전념): 팀의 목표와 약속을 지키기 위해 모든 노력과 기술은 성공을 위해 집중하여야 한다.

  • 확약: 팀의 목표 달성을 위해 팀에 헌신하며 약속을 지켜야 한다.

  • 존중: 자신과 팀원들에게 경의를 표하며, 개인의 다름을 이해해야 한다.

  • 정직: 자신에게 불리하더라도 팀을 위해 프로젝트에 대한 모든 내용을 투명하게 공개해야 한다.


MVP

MVPMinimum Viable Product의 약자로, "최소 기능 제품" 또는 "최소 요건 제품"을 의미한다.

여기서 말하는 최소 기능이란 고객이 꼭 필요로 하는 기능들을 의미하며, 고객이 실제 실행하려는 비즈니스가 올바르게 동작할 수 있는 최소한의 기능을 포함해야 한다.

또한 MVP 를 통해 고객에게 필요한 기능을 빠르게 제공함과 동시에, 고객으로부터 피드백을 받을 수 있다.

해당 과정을 반복하면 지속적으로 고객 요건에 맞는 제품 개선을 할 수 있다.


참고 자료

조직을 애자일(Agile)하게 운영하는 방법 | 시프티 - Shiftee
스크럼이란 무엇인가요? - 스크럼 방법론 설명 - Amazon AWS
기획자로서 알아야 하는 MVP 개발 방법론 - 요즘IT - 위시켓

profile
memories Of A front-end web developer

0개의 댓글