꾸매코딩

[용어 정리] 애자일 방법론이란? 본문

CS

[용어 정리] 애자일 방법론이란?

꾸매코더 2021. 12. 11. 15:12
반응형

서론

회사에서 애자일 방식을 통해 프로젝트를 진행하게 되었다.

설명을 듣긴 하였지만, 정확히 어떤 이론인지 알지 못하여 정리하고자 글을 작성하게 되었다.

 


소프트웨어 개발 방법론이란?

소프트웨어 개발에 필요한 반복적인 과정(절차, 방법, 산출물, 기법, 도구)들을 체계적으로 정리한 것

수 많은 소프트웨어 실제 개발 과정을 정리하여 체계적인 분석을 통해 각각의 상황에 맞는 개발 방법을 정의한 이론
정리하자면,
현재 나보다 앞서 경험해 보시고 불편함을 느끼신 선배님들께서,
이러한 불편함을 최소화하기 위해 여러 방법론을 만들어 놓으셨다.


어떤 방법론이 '좋다, 나쁘다' 보다는 속해있는 팀, 회사 상황, 어떠한 프로젝트인지..
상황에 맞게 그에 맞는 방법론을 활용하면 좋은 결과를 낼 수 있을 것이라고 생각한다.

 


소프트웨어 개발 방법론의 종류

- 정보공학 방법론

- 객체지향 방법론

- CBD(Component Base Development) 방법론

- Agile(애자일) 방법론 

- Waterfall(폭포수) 방법론
소프트웨어 개발 방법론의 종류는 다양하지만, 필자는 위의 방법론과 같이 크게 5가지로 나누었다.

이 글에선 애자일 방법론에 대하여 설명하고, 정리하고자 한다.

이해를 돕기 위한 예) 위 그림은 폭포수 방법론, 아래 그림은 Agile 방법론


애자일이란?

애자일은 프로젝트를 더 작은 반복 주기로 나누는 프로세스다.

각 반복 주기의 결과물을 측정하여 지속적으로 일정을 평가하는 데 사용한다.

기능은 비즈니스 가치 순서대로 구현하므로 가장 중요한 것이 먼저 구현된다.

품질은 가능한 한 높게 유지한다. 일정은 주로 범위를 조절하여 관리한다.
정리하자면,
프로젝트를 더 작은 단위로 개발을 해서 해당 부분을 고객에게 선보이고,
빠르게 피드백을 받아 수정이나 이슈 처리에 대한 기민한 대응을 하는 것.

위 예시 사진처럼,
1.  완벽하지는 않지만 고객의 요구사항을 증명할 수 있는 개발을 진행
2.  이에 대한 피드백을 취합
3.  요구사항을 반영하여 점차 결과물이 나오는 것 이다.

 


애자일의 종류 

- Scrum (스크럼) 

- Kanban (칸반)

- XP(Extreme Programming)

이해를 돕기 위한 예

 


스크럼(Scrum) 이란?

유지보수보다는 개발에 초점이 맞추어진 애자일 방법론이다.

참고로 스크럼(Scrum)이란, 미식축구처럼 어깨를 맞대고 횡대를 이루는 자세라고 한다.
제품 책임자(PO : Product Owner)가 관리하는 해야 할 일들의 목록(Product Backlog)에서

스프린트 동안 해야 할 일들(Sprint Backlog)을 결정하고

완수하여 매 스프린트마다 결과물(Finished Work)을 산출 

회고(Sprint Review + Retrospective)를 통해 잘한 점, 부족한 점, 아쉬운 점, 나아질 점 등을 공유한다. 

스크럼 진행 프로세스

 

스프린트(Sprint) 란?

스프린트란 위 프로세스에서 반복되어 진행되는 기간이다.

크지 않은 양의 업무를, 적당한 기간 동안 집중해서 전력 질주하듯 업무를 수행하는 것이다.

평균 1~2주의 기간 동안 개발팀이 충분히 해낼 수 있을 정도의 업무를 진행하는 것이 목적이다.

 


스크럼의 단점

스프린트 기간의 문제로서 추정된 시간이 어긋나는 경우가 빈번히 발생하게 된다면,

지연되거나 관리하기 어려운 상황이 발생하고,

비즈니스 요구사항(Business Requirement)에 어긋나게 된다.

칸반(Kanban) 이란?

연속적 흐름 처리 방식이다.

스크럼의 단점을 보완하기 위해 칸반의 WIP(Work In Progress) 개념이 생겼다. 

스크럼과 다른 점은 스프린트 기간이 없이, 연속적인 흐름에 따라 즉, WIP에 따라 애자일을 실행한다.

참고로 칸반(Kanban)이란, 일본어로 '시각적 신호'라는 뜻이라고 한다.
연속적 흐름 처리 방식으로, 이슈는 큐에 입력되고, 개발 프로세스 단계에 따라 당겨진다.
칸반은 보드로 시각화되고, 각각 단계는 열로 표시한다.

이슈들은 "수영 레인(SwimLane)"으로 불리는 행으로 나누고 우선순위가 낮은 이슈들을 아래에 배치한다.
칸반의 핵심인 WIP(Work-In-Progress)동시에 개발이 진행될 수 있는 아이템의 수를 제한하는 것이며,
작업할 때 WIP에 여유가 있을 때 작업을 가져올 수 있다.

정리하자면 - (멀티 태스킹을 그만둬라!!!)
WIP(Work-In-Progress)를 제한하고,

이슈를 우선순위에 따라 나열하고,
작업자는 우선순위에 따라 이슈를 처리하고,
이슈를 시작하면 해당 이슈를 마무리하고 다음 이슈를 해결하기 위해 업무에 들어간다.

 


애자일 소프트웨어 개발 선언

출처 : https://agilemanifesto.org/iso/ko/manifesto.html

 


마치는 글

내가 실제로 경험해보았다. 라고 말할 방법론은 사실 없다.
애자일이라는 단어를 알게 된 것도 어제가 처음이다.

애자일을 정리하면서 다양한 방법론이 있다는 것을 알게 되었고,
팀장님(직급이 없는 수평적인 문화이지만 설명을 위해)이 애자일 방법론을  통한 어떤 목적과 목표가 있으신지 어렴풋이 
알게되었다.


더 자세히 느끼기 위해서 다른 방법론도 정리를 할 예정이다.

참고 자료

https://velog.io/@dell_mond/%EC%95%A0%EC%9E%90%EC%9D%BC%EC%9D%84-%EB%8C%80%EC%B6%A9-%EC%95%8C%EA%B3%A0-%EC%9E%88%EB%8A%94-%EB%8B%B9%EC%8B%A0%EC%9D%84-%EC%9C%84%ED%95%98%EC%97%AC

 

애자일을 대충 알고 있는 당신을 위하여

운이 좋았던 내가 경험한 제대로 된 애자일과 내가 이해한 애자일을 좀 더 쉽게 풀어서 이야기하고 싶었다. 알려주고 싶었다. 애자일을 "대충" 알고 있는 당신을 위해서.

velog.io

https://kood-dev.tistory.com/2

 

애자일(Agile) 그리고 칸반(Kanban) 과 스크럼(Scrum)

애자일 이여야 하는가❓ 애자일은 소프트웨어 엔지니어링 다른 말로 소프트웨어 공학이라 불리는 학문의 일부분으로 소프트웨어(프로젝트)의 개발, 운영, 유지보수 등의 생명 주기 동안 효율적

kood-dev.tistory.com

http://frontend.diffthink.kr/2019/07/xp.html

 

애자일 개발방법론 (스크럼, 칸반, XP)

web frontend, development, vue, angular, react, html, html5, css, scss, javascript, es6

frontend.diffthink.kr

 

반응형