Agile 방법론 - Scrum 방식

hamingu·2021년 8월 2일
2
post-thumbnail

개발 방법론 중 하나인 Agile 방법론의 간단한 의미와 Agile 방법론 중의 하나인 Scrum 방식에 대해서 알아보도록 하자.
추가로 scrum 방식에서 비춰본 스타트업 개발자가 가져야할 자세에 대한 간단한 내 생각도 정리해보려 한다.

Agile이란?

agile이란 직역하면 기민한 이라는 뜻이다. 말 그대로 정해진 방법과 규칙 안에서만 움직이기 보다는 보다 기민하고 유연하게 대처한다는 뜻으로 쉽게 설명하자면 개발을 진행하면서 발생되는 여러 변수에 맞게 계획이나 목표가 조금은 수정될 수가 있다.
또는 너무 잦은 계획, 목표의 수정이 올바르지 못하다고 생각이 된다면 주기를 상대적으로 짧게 잡아서 프로토 타입을 만든 후 프로토 타입을 테스트 하며 생기는 문제점 또는 발견되는 새로운 방향성을 습득하여 그 다음 단계로 디벨롭 하는 방식으로 쓰일 수도 있을 것이다.

Scrum의 중점 가치

프로세스, 도구보다는 사람과 상호작용을
광범위한 문서보다는 실제 작동하는 제품을
계약 협상보다는 고객 협력을
계획을 따르기보다는 변화 대응을
-agile 선언문 내용-

애자일 선언문에서 발표한 가치이다. 이 가치가 바로 Scrum의 주요 가치인데 선언문에 참여한 1인인 서덜랜드의 저서 '스타트업처럼 생각하라'에서 Scrum이 agile의 중점가치를 실행해주는 틀이라고 적은 만큼 위의 애자일 선언문 내용이 Scrum의 중점가치다 라고 정의해도 무방할 것이다.

✅ 서덜랜드는 agile과 scrum의 주요가치를 '스타트업처럼 생각하라'라는 책에서 설명했다. 무슨 의미인지 생각해봐야 한다. agile하게 한다가 정해진 계획 안에서만 움직이지 않고 기민하고 유연하게 대처하는 방법이라고 한다면 프로젝트 팀원간의 정말 긴밀한 교류 즉 많은 대화가 필요하다.
개발자는 개발을 하기 위한 기술에만 얽매여서는 안되고 기획자, 마케터가 하는 생각을 어느정도는 같이 이해하고 고민해야한다. 마찬가지로 기획자, 마케터 또한 개발자들과의 효율적인 협업을 위한 노력이 필요할 것이다.

특히 난 스타트업에 필요한 개발자는 기획서 내용을 보고 그대로 완벽하게 구현해내는 개발자가 아니라 기획의도를 파악하고 고객이 이 서비스에서 얻어갈 수 있는 가치. 또한 그 가치를 쉽게 찾고 얻어가기 위해 어떤 기능을 더 줘야할 지를 끊임없이 같이 고민해주는 개발자라고 생각한다.

Scrum의 뜻은?

Scrum 개발에 대한 과정?? 방법??? 가치?? 무튼 내용 자체는 서덜랜드와 또 누군가가 만든 방법이다.
다만 Scrum이라는 단어 자체는 타케우치 히로타카가 만들었다고 한다.

스크럼 단어는 럭비 용어인데 경기 재개를 위해 팀 전원이 서로 밀착하는 전술 대형을 일컫는다.
프로젝트 팀원들이 서로 머리를 맞대고 같이 고민하고 같이 수행하는 그런 가치를 중점으로 뒀기에 스크럼이라는 단어를 사용한 것이 아닌가 싶다.

Scrum 방식

소규모로 구성된 프로젝트 팀이 개발을 완성하기 위하여 주기를 정하고 수행한다. 이 주기를 정하고 수행하는 것을 스프린트(sprint)라고 하는데 이 스프린트 기간동안 해야할 일을 스스로가 결정하고 스프린트가 종료될 때마다 서로 회의를 통해 완료 상황 등을 공유한다.

게시글 중간 저장

우선 여기까지가 내가 이해한 Scrum 방식이다. 더 정리할 수 있는 내용이 있지만 완벽히 이해되거나 공감되지 않아 추후 내용을 추가해서 수정할 계획이다.

Scrum 방식을 진행하며 내가 개인적으로 생각하는 중요한 사항은 다음과 같다.

  • 고객의 행동은 중요한 데이터가 된다. 고객이 행동할 수 있게 즉 너무 오랜 시간을 투자한 상태의 오픈보다는 프로토 타입과 같은 느낌으로 오픈하는게 중요한 것 같다.

  • 생각만으로는 발견하기 힘든 방향성, 에러, 변수 등이 있다. 그러니 생각만 하지말고 테스트를 할 수 있게하자.

우리는 컴퓨터가 아니다. 머리로 우리의 계획만으로 완벽한 예측과 분석을 할 수 없다. 예기치 못한 에러, 변수를 해결하고 또 고객 행동에 의한 데이터로 다음 방향성을 정할 수 있도록 가능한 빠른 주기로 프로토 타입의 결과물이 나와야 한다.

그리고 이 모든 것을 아우르는 가장 중요한 가치는 고객이 우리 서비스를 통해 얻고자 하는게 무엇인지를 파악하는 것이다.

그 가치는 나중에 구현되서는 안된다. 가장 먼저 프로토 타입에서도 그 가치를 경험할 수 있는 기능이 있어야 데이터를 통한 분석이든 뭐든 가능하지 않을까?

예를들어 물체를 땅에서 띄우는게 가치인 프로젝트에서 띄워지지 않는 것을 프로토 타입으로 만들면 무슨 의미가 있으며 어떤 피드백을 줄 수 있을까?

결국 고객에게 빠른 가치를 경험하게 해주는 것이 제일 중요한 요소라면 개발자도 고객과 서비스를 중심으로 생각할 줄 알아야 한다. 이게 우선은 나의 결론이당....

속 마음으로 태클 환영.. 댓글로 태클은 상처받으니 사양합니다..ㅠ

profile
프로그래밍구

0개의 댓글