Agile process & Scrum

JUGNMIN LEE·2021년 2월 6일
0

경험이 쌓여 결과를 만들어 내듯이 소프트웨어를 개발하는 것 또한 수많은 시행착오 끝에
어떠한 방법을 토대로 만들어 내는 것이 좋겠다라는 결론이 내려졌고
그것을 소프트웨어 개발 모델이라고 칭하여 수많은 개발자들이 이 모델을
토대로 진행하는 것이 있다 그것이 바로 '애자일 방법론'이다

애자일 개발 모형(모델)

애자일 개발 모형(모델)은 폭포수(Water fall) 모델과 많이 비교되는데

아래의 그림이 폭포수 모델이다

이름 그대로 폭포수와 같이 소프트웨어 개발의 각 단계마다 명확하게 짚고 넘어가야
그 다음 단계로 나아갈 수 있는 방법이다!

이 방법에는 각 단계가 뚜렷히 명확하여 관리가 쉬울수가 있으나 그리하여 요구 사항 분석에 대한
시간이 오래걸리고 프로젝트가 클 수록 각 단계마다의 피드백 또한 오래 걸린다
만약 중간 단계에서 실수를 하게 되면 그 오류를 수정하기가 어려워지기도 하여 실제 프로세스
실행에 있어서는 불가능한 모델 이라고 할 수 있다.

그리하여 폭포수 모델을 보완한것이 바로 우리가 알고 싶은 애자일 모델이다

아래의 그림을 확인하자

애자일 개발 프로세스는 폭포수 모델과 달리 앞을 예측하여 개발을 하지 않아
일정한 주기를 가지고 끊임없이 프로토 타입을 만들어내며 그때 그때 필요한 요구 사항을 수정하고
파악하여 조그만한 조각에서 커다란 소프트웨어를 만들어 내기 까지 진행이 되는 방식이라 할 수 있다

애자일을 쉽게 정리하자면

1. 개발자와 고객과의 끊임없는 커뮤니케이션을 통하여 즉각적으로 변화하는 요구사항을 반영한다.
2. 개개인의 개발 가치보다 팀 전체의 가치를 우선순위로 측정한다.
3. 팀원들과의 주기적인 미팅을 통하여 프로젝트를 점검한다.
4. 주기적으로 제품을 실행하여 피드백을 받아 수용한다.

이정도로 정리할 수 있다.


2번을 보면 소프트웨어 개발 프로세스에서 개개인의 가치보다 팀 전체의 가치를 우선 순위하는
스크럼 이라는 개발 방법론이 있다.

Scrum(스크럼)

원래의 Scrum(스크럼)은 럭비에서 사용되는 언어이며 반칙으로 인해 경기가 중단되었을 때
쓰는 럭비의 한 대형이며 각자의 팀이 서로 밀집해 팔을 끼고 집단을 형성해 상대 팀을 밀치는 방법이다

이렇듯 소프트웨어 개발에서도 팀이라는 단어가 주는 의미가 더욱 좋은 성과를 낼 수 있기에 해당 단어를 사용한다고 한다

그래서 스크럼은 특정 개발 언어나 방법론에 의존적이지 않으며, 제품 개발 뿐만 아니라
일반적인 프로젝트 관리에도 사용 가능한 프로세스 프레임워크이다!
스크럼은 작은 주기로 개발 및 검토를 하며 효율적인 협업 방법을 제공하기도 한다

아래의 그림을 통해 스크럼 개발 프로세스를 확인하자

1. 제품 기능 목록 작성

개발할 제품에 대한 요구 사항 목록(기능 목록)을 작성한다.

사용자의 요구사항 목록이라고도 할 수 있으며 결정된 제품 기능 목록은 확정된 것이 아니라
개발 중이라도 수정이 가능하지만 왠만하면 한번의 주기가 끝나기 전까지는 수정하지 않는다.

2. 스프린트 계획 회의

각 스프린트 목표에 도달하기 위해서 필요한 작업목록이다.

각 주기에서 개발할 작업 목록을 의미하며 세부적으로 어떤 것을 구현해야 하는지
작업자는 누구인지 작업 시간은 어느정도인지를 세우게 된다.

3. 스프린트 수행

스크럼 모델에서 스프린트의 뜻은 반복적인 개발 주기를 의미한다.
스프린트 주기가 결정되면 배정된 작업을 중간에 멈추지 않고 전력 질주하여 끝내야 한다
그러기 위해서는 결정된 스프린트의 목표와 내용이 개발 도중에 바뀌지 않아야 하며
바꾸게 된다면 그 누구도 팀원들의 동의 없이 바꿀 수 없다는 원칙이 있다.

4. 일일 스크럼 회의

스프린트 기간에 하는 회의로 여러 특징을 가지고 있으며 대표적으로
짧게한다, 진행 상황을 체크한다, 모든 팀원이 참석한다, 어제 한일을 이야기한다, 오늘 할일을 이야기한다
문제점 및 어려움을 이야기한다 등이 있다

5. 제품완성 및 스프린트 검토 회의 및 회고

모든 스프린트 주기가 끝나면 제품이 완성이 된다.
그 최종 제품이 나오게 되면 검토 회의를 통해 처음 계획했던 대로 제품이 만들어 졌는지
시연을 통해 피드백을 받고 나서 회고를 진행하여 필요한 개선점은 무엇이고 팀이 정한 규칙과
표준을 잘 준수 했는지 검토한다 여기서 팀의 단점을 찾기보단 강점을 찾아 더 극대화하는데 중점을 둔다



사이트 참고 : https://zeddios.tistory.com/24
profile
Frontend Developer

0개의 댓글