​ ​
Agile 방법론 (애자일 방법론)
etc

Agile 방법론 (애자일 방법론)

팀단위의 소프트웨어 개발을 하게 되면 '애자일'이라는 주제를 자주 접하게 된다.

이 애자일 이라는 것이 무엇인지 알아보기로 하자.

 

1. 애자일(Agile)이 탄생하게 된 이유는?

애자일이라는 용어 자체는 '재빠른', '민첩한' 등의 뜻을 가지고 있고, 이는 개발 방법론 중의 하나다.

애자일 용어자체의 뜻을 생각해보면 개발을 민첩하게 한다? 이런 의미인가 싶다.

 

결론부터 말하자면 소프트 웨어를 개발함에 있어서 유연하고 빠르게 대처하며 일하는 방식이라고 말할 수 있다.

 

과거의 개발방식은 요구사항을 분석하고, 요구사항에 맞게 설계한 후에 개발하고 배포하는 단계로 진행되어 왔다. 설계한 순서대로 일이 진행되고 그 과정의 점검은 띄엄띄엄 이루어진다. 커뮤니케이션의 오류가 있더라도 그 오류를 바로 알아차리기엔 쉽지가 않다.

즉 이미 진행된 일에 대해 다시 쉽게 되돌아 갈수 없는 구조이다. 이를 폭포수 개발 방식(Waterfall model)이라고 부른다.

 

제품의 기획 방향과 솔루션이 명확하고 구체적이라면 이러한 개발 방식을 따르더라도 문제가 발생하지 않을것이다. 순서에 맞게 해야할 일이 구체적으로 주어지기 때문이다. 그러나 다수의 소프트웨어 개발은 그렇게 순조롭게 흘러가지 않는다. 이는 소프트웨어 개발을 하는 중에 사용자의 요구사항이 변경될 가능성이 크기 때문이다.

 

이렇게 중간에 프로젝트의 설계나 흐름이 바뀔수 있기 때문에, 애자일 소프트웨어 방법론이 만들어졌다.

프로젝트 진행 중에 변화는 반드시 일어나기 때문에 이 변화에 민첩하고 유연하게 대응해야만 하는데, 이 대응하는 방법을 애자일 방법론이라 한다.

 

2. 애자일을 적용한 개발 방법은?

애자일스러운 방법으로 적용하여 성공적으로 책을 출판하는 과정을 풀어서 써보려 한다.

  1. 어떤 주제로 책을 쓸지 명확히 정하지 않은 상태에서 한개의 글을 간단히 쓰고 블로그 등에 올려서 사람들의 반응을 살핀다.
  2. 사람들의 반응이 좋았고 결과물을 어떻게 만들지에 대하여 방향성이 정해졌다.
  3. 피드백을 받아서 글에 문제가 있으면 즉시 수정한다.
  4. 빠른 수정을 함으로써 나중에 발생할 문제를 방지하고, 사람들과의 커뮤니케이션이 수월하다.
  5. 글을 1개 단위로 발행하면서 독자의 피드백을 반영하고, 글의 품질을 높인다.
  6. 출판사와 저자 사이에 커뮤니케이션 오류가 적어지고, 중간의 의견차이로 인한 어려움이 발생하지 않는다.

위의 과정처럼 글을 짧은 주기로 쓰면서 피드백을 받아 글을 수정하고, 지속적으로 커뮤니케이션을 하는 이러한 과정들이 애자일 개발 방법이다. 작업의 단위를 작게 쪼개서, 중간에 프로젝트가 변경이 되더라도 실수나 문제가 발생할 가능성을 최소화 한다. 수정할 필요가 있으면 바로 수정을 하기 때문에 비용도 크게 들지 않고 쉽게 수정할 수 있다.

 

3. 애자일의 도구

위에서 설명한 과정이 애자일의 기본 개념이고, 이를 잘 실천할 수 있도록 만들어 놓은 도구들이 스크럼, 칸반 등이다.

애자일을 하는데 가장 흔히 접하는 스크럼에 대해 알아보려 한다.

3.1 스크럼 (Scrum)

스크럼은 럭비에서 유래된 용어로, 이 스크럼 자체가 하나의 방법론이었고, 애자일이란 방법론이 나오면서 자연스럽게 애자일 범주 안에 들어가게 되었다. 스크럼에서는 사용하는 용어들이 있는데, 이에 대해 먼저 살펴보자.

 

백로그(Backlog)

요구사항 리스트, 개발해야할 대상의 목록 등으로 이해할 수 있다. 이를 애자일에서 User Story라고 부른다. 이때 이 user story는 엔드 유저가 이해할 수 있는 언어로 작성되어야 한다.

 

스프린트 (Sprint)

애자일은 짧은 기간을 주기로 개발한 소프트웨어를 사용자에게 보여주면서 피드백을 받아서 고쳐나간다. 이 기간을 스크럼에서는 스프린트(Sprint)라고 한다. 보통 팀내의 상황에 맞게 1~4주의 기간을 상황과 조직에 맞게 선정한다.

 

스프린트 백로그 (Sprint Backlog)

한개의 스프린트에서 개발할 백로그들을 스프린트 백로그라고 한다.

스크럼을 적용하여 제품 개발을 한다고 하면 진행과정의 흐름은 다음과 같다.

제품 백로그 작성 → 스프린트 계획 미팅 → 일일 스크럼 미팅 → 소멸 차트 → 스프린트 리뷰( 코드 리뷰 등)

'etc' 카테고리의 다른 글

ASCII Code & Uni Code  (0) 2021.06.14