이 책은 애자일 방법론 중 스크럼, XP, 린을 소개하며 이를 적용하는 방법을 소개한다. 게임 개발이라는 특수한 환경에서 애자일 실천방안이 어떻게 적용되는 확인해준다.
비디오 게임 초창기에는 아티스트, 기획자, 프로그래머 직군의 구분이 필요하지 않았다
오직 한 가지 게임을 위해서 하드웨어가 개발되었고, 때문에 전기기사가 개발자의 역할을 대신하게 되었다. 기술이 발전함에 따라 하나의 하드웨어에서 다양한 소프트웨어가 탑재된 게임들이 증가하기 시작되었다. 게임 개발자는 구현하는 프로그래머가 되었다.
=> 게임 개발 초기에 사용된 모델은 하드웨어 능력에 맞추어졌다. 때문에 하나의 하드웨어에 탑재되는 카트리지와 같은 현재의 소프트웨어 기능의 게임들이 즐비했고, 공장형식으로 게임들을 찍기 시작했다.
하드웨어의 성능이 날이 갈수록 증가함에 따라 그 성능을 맞춘 게임을 개발하기 위한 제작 비용이 증가하기 시작했고 더이상 게임 개발은 혼자서 할 수 없는 일이 되었다. 커져가는 위험을 줄이기 위해 게임 개발 방법론에 소프트웨어 방법론의 바이블과 같은 워터폴 모델을 도입했다(윈스턴 로이스)
=> 오늘날 처럼 다양한 직군이 생기게 되었다.
하드웨어의 성능은 무어의 법칙을 따르지만 게임 제작 도구나 프로세스는 그렇지 못했다. 때
문에 인력들을 무차하게 투입시켰고 결과적으로 투입 노동력의 비대해졌다.
=> 시장의 성장 보다 게임 제작에 들어가는 노력이 커지게 되었다.
매번 히트 게임을 만들어 낼 수 없기 때문에 게임 제작 비용을 절감하는 방법과 시장 출시 훨씬 전부터 큰 실패를 미리 발견할 수 있는 방법을 찾아야 한다.
비용이 줄이기 위해 리스크가 작은 상업적인 게임들의 시도만 이루어졌고, 이것은 게임시장의 콘텐츠의 단순화로 이루어졌다. 하지만 내부에서는 가장 적은 비용으로 최대의 효과를 누리기 위해 크런치가 성행하게 되었고 이것은 게임 회사들의 뿌리깊은 악순화를 만들어 냈다. 때문에 능력있는 개발자들은 점차 산업을 떠나게 되었다.
" 산업의 변화 함께 게임 개발에도 그에 최적화된 개발 프로세스의 연구가 필요해졌다. "
당시 게임 개발을 어렵게 만드는 원인들로는 크게 세가지 있다.
피처 크립
: 게임 또는 소프트웨어 등 제품에 새로운 기능을 계속 추가해서 범위를 지속적으로 확장하는 것.
BDUF(Big Designs Up Front)
: 프로그램의 설계가 구현을 시작하기 전에 완벽해야하는 개발 접근법 설계를 구현보다 더 비중있게 다루어야 좋은 품질의 소프트웨어를 생산할 수 있다.
=> 하지만 이것은 게임 개발에 맞지 않다. 시작부터 게임의 모든 것을 알 수 없기 때문
낙관적인 일정
: 간단한 심부름조차도 예기치 못한 문제가 불쑥 튀어나와 추정을 벗어나기 마련임.프로덕션의 어려움
: 프로덕션 실제 게임을 구현하는 단계다. 프리 프로덕션에서 설계한 내용을 구체화한 단계이다." 애자일 프로젝트는 이 모든 것을 반복을 통해 불확실성과 낭비를 없애도록 한다. "
💡 그렇다면 어떤 부분부터 위의 문제를 해결할 수 있을지 알아보자
게임 개발에서 그렇다면 줄여야 하는 것 부터 확인해보자
미들웨어 솔루션
: 다른 개발자로부터 구매한 기술=> 애자일 실천방안은 프로젝트 내 낭비 제거를 초첨을 둔다.
애자일을 재미를 우선으로 초기부터 가치를 찾아낸다. 반복적인 개발 방법을 통해 개발 비용을 쉽게 예측하고, 만들 수 있는 사람들이 함께 일하는 효율성을 향상 시킨다. 게임 개발 비용을 줄일 수 있는 지속적인 개선 문화를 만든다.
애자일 프로젝트는 계획을 회피하지 않는다. 프로젝트를 진행함에 따라 변화를 허용하는 계획 방식을 사용한다.
애자일 개발 프로세스
스크럼 마스터는 결과적으로 진행에 방해되는 것을 제거하고 결과적으로 합의된 프로세스를 따르도록 하여 스크럼 팀을 돕는다.
규모가 큰 애자일 게임 프로젝트의 대부분은 콘센트 => 프리프로덕션 => 프로덕션 => 포스트 프로덕션과 같은 일련의 릴리스 과정을 수행한다.
애자일 적용
애자일 적용이라는 것은 단지 실천방안만을 적용하는 것이 아니다. 실천방안은 간단하다.
진짜 도전은 스튜디오 문화, 게임회사, 그리고 애자일 간 충돌에서 발생한다.
=> 스크럼 방법론을 이를 적용하기 위한 최적의 방법론이라고 필자는 말한다. 투명성을 만들고
일의 가장 좋은 흐름을 방해하는 모든 결함은 조사를 통해 파악한다. 문서를 믿기 보다는 반복적인 게임 자체에 신뢰를 가진다.
스크럼
은 애자일 구현하기 위한 하나의 프레임 워크
80년대 중반 '새로운 신제품 게임 개발(다케우치와 노나카)' 라는 제목의 획기적인 기사는 기존 방식과의 제품 개발의 차이점을 제시해주었다.
이를 기반으로 점진적이고 반복적인 제품 개발 프로세스에 대해서 대두되기 시작했고
'고약한 문제, 합당한 해결'(1990) 이란 책에서 처음으로 스크럼을 소프트웨어 개발 모델을 언급했다.
스크럼 게임 개발 프로세스
스크럼으로 개발한 게임의 경우에는 6~10명의 다분야 통합팀을 구성하고
2~4주간 반복 또는 스프린트를 통해 제품을 만든다. 스프린트를 시작할때 팀은 스프린트 계획 회의에서 제품 백로그로 불리는 우선순위가 정해진 피처 목록에서
몇개의 피처를 선택한다.
스크럼 원칙
제품 백로그 : 제품 백로그는 게임, 게임을 만들기 위한 파이프라인에 대한 요구사항,
또는 PBis라 불리는 우선순위를 정한 목록이다.
ex) 게임에 입자 효과추가 etc..
스프린트 : 스크럼 개발 프로젝트는 각 스프린트 안에서 제품을 만든다. 이 반복이 곧
프로젝트의 심장 박동이다.
릴리스 : 릴리스는 게임의 새로운 주요 피처를 가져와서 출시에 가까운 상태로 만들기 위한
스프린의 묶음이다.
스크럼 팀은 스크럼마스터, 제품 책임자, 개발 팀으로 구성된다.
스크럼 마스터
: 구성원들이 스스로 수립한 실천방은 따르도록 스크럼에 대해 팀을 교육시킬 책임이 있다. 문제 해결을 용이하게 하고, 필요하면 팀을 위해 닭에 맞서 귀찮은 일을 마다하지 않는다.
제품 책임자
: 게임 비전을 의사소통하고 투자수익률을 극대화할 책임이 있다. 제품 백로그내
피처의 우선순위를 정함으로써 투자수익률을 극대화한다.
팀
: 스프린트 동안 목표를 달성하기 위해 필요한 모든 분야의 모든 사람을 포함한다.
우리쪽 프로세스를 개선하기 위해서 요청사항을 전달하지만 그쪽에서는 불필요한 커뮤니케이션 비용이 증가하는 업무가 하나 있었다.
요청을 받은 부서에게 최대한 기분이 나쁘지 않으면서도, 최대한 설득력과 논리력이 동반되어
이 업무가 단순히 불필요한 커뮤니케이션 비용만 증가하는 것이 아니구나를 알려주는 것이 굉장히 힘듦.
계획하기
스프린트 우선순위 결정 회의를 통해서 결정하며, 목표를 확인한다.,
일일 스크럼 회의
회고
스프린트 회고는 아마도 가장 중요하지만 가장 방치된 실천방안이다.
단 1%라도 향상 되는 것도 지속적인 스프린트 회고를 통해서 변화가 이루어져 나갈 것이다.
방법은 1. 무엇을 중단해야하는가 2. 무엇을 시작해야 하는가 3. 계속해야 하는 잘 되는 것은 무엇인가
스프린트 실패
스프린트 리셋
이렇게 리셋을 야기하는 문제는 여러가지가 있다.
번다운 차트
작업 부족
의사소통은 게임 개발에 있어 가장 큰 도전 중 하나이다. 그 중 문제는 바로 언어이다.
비즈니스 언어, 프로그래머들은 그들의 지식이 함축된 언어 아티스트들의 언어 등.
그래서 좋은 부분은 도구를 쓰는 것이 오히려 좋을 수 있다. 도구에서는 사용자가 누구든지
동일한 단어선택을 통해 기능을 제공하기 때문에
사용자 스토리
: 사용자 관점에서 게임의 요구사항 세부사항에 대해 대화하기 위한 플레이스홀더이다.
PM으로서 다양한 유관부서와 소통을 하지만, 실제 마주하는 업무적인 프로세스 궁금중이 날로 커졌다. 지금 진행하고 있는 프로세스는 어떤 개발 프로세스인지 유관부서의 조직의 문화는 어떤 문화를 적용하는지 등 실제 게임 개발에 사용하는 애자일 방법론의 적용 사례에 대해 정독하고 나니 100%는 아니지만, 조금은 애자일
이 무엇이고 어떤식으로 적용을 해야할지에 대해 구체화 할 수 있었다.