사용자 도구

사이트 도구


애자일과_스크럼

Agile 개발 방법론과 Scrum

  • 이 문서는 Project Superready에서 Scrum을 운영하면서 배운 요소들을 배합 해 작성되었습니다. 실제 실천 예제는 해당 항목 참고.
  • 참고문헌
    • 켄 슈와버 외 1인, '스크럼', 2008년, 인사이트.

Agile이란 무엇인가

애자일 개발 방법론은 기존 산어 개발 방법론에서 파생한 소프트웨어 개발 방법 접근에 대해 문제를 제기하고, '소프트웨어 개발'에 적합한 방식을 제시하는 개발 방법론이다. 'Agile'의 의미를 '기민함'이라 할 수 있는데, 여기서의 기민함은 피드백에 빠르게 대응하고, 그 대응의 움직임에 낭비가 없음을 의미하는 것.

Agile 개발 방법론은 아래의 문구로 그 철학을 대표할 수 있다.

  • 절차와 도구를 넘어선 개성과 화합
  • 종합적인 문서화를 넘어선 동작하는 소프트웨어
  • 계약과 협상을 넘어선 고객과의 협력
  • 계획 준수를 넘어서 변화에 대응

그렇다면 Scrum은 무엇인가

Scrum은 일본에서 시작된 소프트웨어 개발 방법론이며, 미국에서 '스크럼'으로 이름이 붙여졌다. 스크럼은 비즈니스 요구를 충족시키는 소프트웨어를 개발하는데 초점을 두고 복잡함을 제거하는 관리 및 제어 프로세스다.

애자일에서는 핵심 구성요소를 통해 다음과 같은 가치를 표방한다.

  • 경험주의
  • 자기조직화
  • 실천

스크럼의 구성요소

인적 구성요소

  • 스크럼 마스터는 스크럼 팀 운영을 주관하는 인원. 데일리 스크럼 미팅을 주도하고 장애물 요소를 접수하여 스크럼 운영의 방해요소를 빠르게 제거해준다.
  • 개발 팀
  • 프로덕트 오너

시스템적 구성요소

  • 스크럼 보드
  • 프로덕트 백로그
  • 스프린트 백로그

스크럼의 진행 시스템

스크럼 구성물과 진행 시스템. 너무도 유명한 그림이지.

자동화의 중요성

개인적으로는...

솔직히, 우리가 좋은 친구들을 만나면서 지속적으로 서로 작업 내용을 확인하고, 같이 밥을 먹으러 가면서 프로젝트 이야기를 하고, 같이 도서관에서 가서 참고문헌을 찾아보는 것도 Agile개발 방법론의 일부이다. Scrum은 이런것들이 잘 안될때 프로젝트를 잘 이끌어 나갈수 있도록 만들어주는 '도구'일 뿐, 이것이 만약 프로젝트의 전부가 되어버리면 팀은 뻣뻣한 시스템에 반감을 가지게 될 것.

사실 같이 동업하고 있는 사람과 이 프로젝트에 대해서 잘 알고, 잘 끌고 나간다는 생각이 절로 들고 있다면, Scrum과 같은 시스템은 필요 없다. 이는 친구와의 이러한 동업 만으로도 Agile한 프로젝트를 이행하고 있기 때문이다. 투명한 프로젝트 성과를 매번확인하고, 매 기간마다 동작 가능한 소프트웨어가 나온다면 말이지.

다만, Agile에서는 또한 Code Craftmanship을 요구하고 있기 때문에, 프로젝트 문화 및 분위기와는 별개로 좋은 코드를 만들기 위한 자기개발은 필수.

Agile에서 제시하는 소프트웨어 철학을 올바르게 이해한 가운데 XP나 Scrum에서 제시하는 도구와 방법을 받아들인다면 나날이 발전하는 프로젝트와 코드와 팀원과 자신을 발견할 수 있다.

애자일과_스크럼.txt · 마지막으로 수정됨: 2017/08/19 22:13 (바깥 편집)