장바구니 담기 close

장바구니에 상품을 담았습니다.

애자일 소프트웨어 개발

애자일 소프트웨어 개발

  • 클린턴키스
  • |
  • 에이콘출판
  • |
  • 2016-02-05 출간
  • |
  • 440페이지
  • |
  • 188 X 235 X 23 mm /820g
  • |
  • ISBN 9788960778221
★★★★★ 평점(10/10) | 리뷰(1)
판매가

35,000원

즉시할인가

31,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
31,500

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 이 책에서 다루는 내용 ★

■ 게임 개발 맥락에서의 스크럼 목표, 역할, 실천방안에 대한 이해
■ 게임의 비전, 피처, 진행 계획과 의사소통
■ 격주마다, 심지어는 날마다 게임을 실행 가능한 상태로 유지하는 반복 기술 사용
■ 모든 팀 구성원이 자신의 역할을 성공적으로 수행하기 위한 지원
■ 개발 과정에 대한 안정성과 예측 가능성 개선
■ 유동적인 시장의 모호한 요구사항에 대한 관리
■ 스크럼을 지리적으로 분산된 개발 팀으로 크게 확장
■ 스크럼 시작하기: 관성을 극복하고 조직의 현재 프로세스에 스크럼을 통합

★ 이 책의 대상 독자 ★

이 책은 프로그래머, 프로듀서, 아티스트, 테스터, 기획자로 구성된 애자일 팀을 구성하고, 팀 안팎으로 효율적인 협력을 촉진하는 전 과정을 다룬다. 또한 장기적인 계획에서부터 진척에 대한 추적과 지속적인 통합까지, 저자가 현실에서 어렵게 얻은 경험을 바탕으로 수많은 팁과 트릭, 해결책을 제시한다.

★ 이 책의 구성 ★

1부, "문제와 해결책"은 게임 산업의 역사로부터 시작한다. 게임 산업의 상품과 개발 방법론이 어떻게 변화되어 왔는가? 무엇이 우리를 비대한 예산, 절대로 맞출 수 없는 일정, 프로젝트 초과근무, 죽음의 행진으로 이끌었는가? 이어서 애자일에 대한 개요를 소개하고 애자일 가치가 어떻게 게임 개발 관리의 문제에 도움을 줄 수 있는지 이야기한다.

2부, "스크럼과 애자일 계획"에서는 스크럼, 스크럼의 역할과 실천방안, 스크럼을 게임 개발에 적용하는 방법에 대해 살펴본다. 또 게임의 비전, 피처, 진척에 대해 의사 소통하고, 계획하고, 단기 및 장기적으로 반복하는 방법을 설명한다.

3부, "애자일 게임 개발"에서는 일부 스크럼 실천방안에 프로덕션을 위한 린 실천방안 및 칸반 실천방안을 보강할 수 있는 것을 포함해, 게임 개발 프로젝트 전반에 걸쳐 애자일을 사용하는 방법을 설명한다. 또한 애자일 팀과 전 세계에 걸쳐 분포되어 있는 대규모 직원들에게 스크럼을 확장하는 방법을 알아본다. 또한, 팀이 게임을 구축하는 모든 사항을 반복하는 데 필요한 시간을 줄임으로써 지속적으로 자신의 개발속도를 향상시키는 방법에 대해 검토한다.

4부, "애자일 관심 분야"에서는 광범위하고 다양한 각각의 분야가 한 애자일 팀에서 함께 일하는 방법에 대해 살펴본다. 또한 각 분야 리더의 역할과 리더를 스크럼 역할에 매칭시키는 방법을 설명한다.

5부, "시작하기"에서는 당신의 스튜디오와 게임회사에 애자일 실천방안을 도입하는데 따르는 어려움과 해결책을 상세히 알아본다. 문화적 관성을 극복하고 애자일 원칙의 훼손 없이 스튜디오 고유의 프로세스에 통합시키는 것은 시간이 걸릴 수 있고 도중에 많은 어려움이 생긴다. 5부를 구성하고 있는 내용은 이런 어려움을 헤쳐나갈 수 있도록 안내해준다.

이 책은 애자일 게임 개발을 위한 출발점이지 결코 종착점이 아니다. 스크럼, XP, 린, 칸반, 사용자 스토리, 애자일 계획 등 게임 개발에 대한 좋은 책들이 있다. 이런 책들은 지속적인 향상으로 가는 길에 필요한 모든 세부사항을 제공해준다.

아이폰, PC, 대규모 멀티플레이어 온라인 게임 개발자는 여기에 설명한 실천 방안들을 사용한다. 나는 기술적 배경을 바탕으로 한 많은 이야기를 공유했고 이중에는 애자일 프로그래머를 위한 실천방안들이 많지만, 이 책은 전체 산업에 적용할 수도 있다. 다양한 분야, 장르, 플랫폼에 관계된 많은 사람들로부터 얻은 이야기와 경험들도 이 책에 모두 담았다.

★ 옮긴이의 말 ★

내가 처음 애자일을 접한 것은 1999년이다. 개발자, 설계자, 프로젝트 관리자 등으로 활동했던 나는 당시 수백억 원을 들여 많은 외국인들과 함께 웹 기반 투자 시스템을 만드는 회사에 신용분석(CreditAnalytics) 팀장으로 합류했었고, 쉽지 않은프로젝트 상황을 잘 이끌어가려고 고군분투하고 있었다. 여러 명의 인도 출신 개발자들이 풀(Pool) 형태로 존재했고, 새로운 일이 내게 주어질 때마다 개발자 풀에서 협업을 해본 경험이 없는 사람을 데려와서 매우 생소한 개발 업무를 맡겨야만 했다. 업무를 가르쳐주기도 어려웠고, 전체 아키텍처 및 관련 모델, 개발 환경 등을 짧은 시간 내에 전달하는 것도 쉽지 않았으며, 이전 프로젝트 결과들과 지속적인 통합을 하면서 일관성을 유지하는 것도 쉽지 않았다.

이때 XP를 알게 되었다. 풀로부터 데려온 개발자에게, 비즈니스 전문가들과 논의해 만들었던 스펙 내용을 보면서 코딩하는 것을 한 시간쯤 시범적으로 보여주었고, 한 시간은 직접 코딩하도록 시키면서 업무, 공통 모듈, 프로그래밍 스타일 등에 대한 개발 관련 코칭을 수행했다. 그렇게 P C 한 대로 일주일쯤 함께 짝 프로그래밍(Pair Programming)을 진행하면, 이후에 필요한 일은 스펙을 통해 적절하게 협업할 수 있는 상황이 되었다. 이전 프로그램이나 다른 사람들이 작성한 프로그램들을 개발자가 직접 개선하기 위해 코드 소유권을 공유할 수밖에 없었고, 프로그램 대부분이 기업 회계를 위한 계산과 각종 금융 상품 처리 등에 관한 것이다 보니 계속 회귀 테스트를 할 수밖에 없는 상황이어서, 항상 테스트를 염두에 두고 개발해야만 했다.

회사 전체의 개발/관리 프로세스를 따르면서 우리 팀은 UP(Unified Process) 방법론을 관리의 틀로 활용하며 로즈(Rose)라는 모델링 도구로 UML 모델을 만들고, 로직이 없는 스켈레톤 코드(Skeleton Code)를 생성해 개발자에게 배포했으며, XP를 통해 개발자들과 의사소통했다. 그 당시 빌드를 전담하는 전문 빌드 마스터가 있어서, 지속적 통합 빌드 체계도 유지할 수 있었다. 프로젝트 관리자는 미국인 여성으로 MBA 출신이었고, 소프트웨어 아키텍트는 중국계 캐나다 사람이었으며, 영국이나 홍콩 등 다양한 출신의 영업 및 국제법 전문가 등도 있었다. 그리고 투자사들은 항상 우리들의 성과에 대해 관심을 표명하고 있었다. 우리는 급변하는 금융 상황에 대처할 수 있는 빠른 피드백이 필요했고, 내게 XP는 그 당시의 어려운 상황을 타개할 수 있는 유일한 탈출구였다.

모델링 및 프로그래밍 관련 저서를 출간했던 나는 저술 경험을 살려 XP에 대한 좋은 경험을 공유하고자 번역서인 『XP 도입을 위한 실전 입문: Extreme Programming Installed』를 2002년 출간했다.

이후 삼성생명 비전속 등 다양한 프로젝트들을 수행하면서 팀 활동에 XP를 적용해 빠른 피드백을 만들어낼 수 있었고, 2007년에는 증권사의 차세대 프로젝트에 스크럼(Scrum)을 적용해서 프로젝트 성공에 크게 기여할 수 있었다.

2007년 7월부터 2009년 5월까지 증권사 차세대 프로젝트에서 내가 맡았던 역할은 소프트웨어 아키텍트(Software Architect)이자 변화관리자(Change Agent)였다. 프로젝트 진행 중에 증권사 CIO 및 현업과 전산 리더들, 수행사였던 삼성SDS의 PM, PL, QA 등 주요 리더들, PMO를 모두 포함한 스크럼 조직을 구성했고, 나는 스크럼마스터(ScrumMaster)가 되어 매일 스크럼 미팅(Daily Scrum Meeting)을 진행했다. 또한, 매일 진행된 미팅을 뉴스페이퍼(Daily News Paper)로 만들고 인쇄해서 프로젝트 관련 전체 인원(250여명)에게 배포했다.

20년이 넘는 나의 IT 경력에서 가장 값진 경험을 바로 이때 얻었다. 스크럼마스터로서 전사 프로젝트의 의사소통 메커니즘을 이끌어냈고, 날마다의 대면 이슈 관리를 통해 빠른 상황 대처를 할 수 있었다. 그리고 필요한 정보 공유를 통해 전체 프로젝트의 이해 공유(Shared Understanding)를 향상시킬 수 있었다. 비록 전체 프로젝트의 공식 방법론이 정보공학 방법론이었고 C 언어가 주 언어였지만, 스크럼과 같은 애자일 방식이 전사 차원의 프로젝트 성공에도 일조할 수 있다는 확신을 갖게 해주는 사례를 만들 수 있었다.

크고 작은 프로젝트 수행이 끝날 때마다 프로젝트 경험을 정리하면서 모델링이나 프로젝트 관리 관련 책과 애자일 관련 책의 번역 작업을 꾸준히 해올 수 있었고, 덕분에 내 통산 열 번째 책인 『애자일 소프트웨어 개발』을 IT 전문가와 함께 출간하는 기쁨을 얻을 수 있었다. 이 모든 것에 대해 하느님께 감사드리며, 어려운 IT 환경에 조금이라도 도움이 되기를 희망한다.
박현철

소프트웨어 개발 환경은 급속도로 변화하고 있다. 우리가 소프트웨어로 해결해야 하는 문제는 점점 더 복잡해지고 있으며 프로젝트의 불확실성과 복잡도도 함께 높아졌다. 전통적인 개발 방법으로 이를 대처하기란 역부족임을 주변의 많은 프로젝트 실패가 보여주었다. 폭포수 개발에 익숙한 개발자나 프로젝트 매니저가 이 책을 읽고 있다면 아마 적어도 한두 번쯤 실패했던 기억을 어렵지 않게 떠올릴 수 있을 것이다. 이때 등장한 애자일 방법론이 이러한 환경에서 소프트웨어를 개발함에 있어 발생하는 많은 문제를 해결해줄 것으로 기대되고 있지만, 실제로 애자일 철학과 실천방안들을 우리의 소프트웨어 개발에 제대로 적용하는 것이 쉽지만은 않다. 현장에서 프로젝트에 애자일, 스크럼을 적용해봤다면 충분히 공감하는 문제일 것이다.

이 책은 애자일의 철학뿐 아니라 스크럼을 통해 소프트웨어 개발에 어떻게 그 철학을 적용하고 우리 자신의 것으로 만들어낼 수 있는지 알려준다. 또한 개발 프로세스뿐 아니라 조직에도 어떻게 스크럼 역할들을 적용하고 확장할 수 있는지 설명해준다. 저자인 클린턴 키스는 이 책에서 자신의 통찰과 잘 구조화된 지식을 자신의 경험담과 함께 재치 있게 이야기한다. 『애자일 소프트웨어 개발』은 단순히 방법론과 특정한 실천방안, 기술만을 소개하는 책이 아니다. 이 책을 통해 우리의 프로젝트를 어떻게 더 좋게 만들 수 있는가에 대한 해답을 찾을 수 있도록 코칭해준다.

스크럼은 단순하고 쉽다. 전체 실천방안을 설명하는 데 몇 분 정도면 충분하지만, 애자일과 스크럼의 철학을 이해하고 ‘왜 해야 하는가?’에 대한 답을 찾고 우리가 일하는 환경에 맞도록 이를 적용하는 것은 매우 오랜 시간이 필요할 수도 있다. 하지만 여전히 스크럼은 간단한 것으로부터 시작하며, 이로써 우리는 작은 실험들을 통해 소프트웨어 개발 시간과 결과를 점차 긍정적으로 바꿔나갈 수 있다. 독자들도 자신의 환경을 돌아보며 이 책을 따라가다 보면 답을 찾기 위한 여러 실험들을 적용해보고 싶은 마음이 생길 것이다. 그러므로 당장 실행해보라고 권하고 싶다.

아울러 이 책은 게임 개발을 주요 맥락으로 애자일과 스크럼을 이야기하고 있지만, 개발자가 아니더라도 또 게임 외 다른 산업에 종사하는 독자라도 모두 도움을 받고 통찰을 얻을 수 있다. 소프트웨어 개발 프로젝트에 참여하는 구성원뿐 아니라 이해관계자들도 애자일 소프트웨어 개발에 대한 합리적인 시각과 태도를 갖는 데 조금이나마 이 책이 도움이 되었으면 한다.
전장호

★ 감수의 글 ★

게임의 본질은 오락으로서의 재미다. 그러므로 게임을 개발한다는 것은 게임적 재미를 찾아가는 것을 의미한다. 이러한 게임의 본질은 일반적인 소프트웨어를 개발하는 것과 크게 다른 근본적인 차이를 야기한다.

일반적인 소프트웨어는 사용자가 원하는 기능이 올바로 구현되면 성공적으로 개발되었다고 할 수 있다. 그러나 게임 소프트웨어는 ‘구현된 기능이 재미있는가?’라는 추가적인 요구사항이 따른다. 만약 재미가 없다면 그 기능이 완벽하게 개발되었더라도 수정되거나 삭제될 수밖에 없다.
문제는 이 게임의 재미라는 것이 상당히 주관적이며 예측하기 어렵다는 점이다. 몇 가지 기능이 재미있다 하더라도 전체 게임 시스템이 완성되었을 때의 재미 문제는 전혀 다를 수 있기 때문이다. 상당히 단순한 메커니즘을 가지고 있는 게임일지라도 그 메커니즘에서 재미를 극대화시킨다는 것은 대단히 어렵다는 점에 모든 게임 개발자들이 동의할 것이다.

이러한 게임의 불확실성과 복잡성 같은 속성들로 인해 게임 개발 프로젝트를 관리하는 것은 매우 어렵다. 이 책의 저자는 이러한 문제에 대해 게임 개발자들이 전통적인 계획 작성 도구와 규범화된 방법으로 접근을 시도했다고 봤다.

한국의 상황도 크게 다르지 않았다. 허들시스템 등의 프로젝트 관리 방법론은 전통적으로 규범화된 제품 개발 방법론이었고, 많은 개발 스튜디오들이 비슷한 폭포수 방식의 개발 방법론을 사용해왔다.
폭포수 방식의 개발 방법론이 지닌 문제는 명확하다. 기획 단계에서 구현되지 않은 게임의 재미를 예측해 설계하는 것은 대단히 어렵다. 더구나 기획 단계 시점과 게임 오픈 시점 간의 시차는 게임 업계의 시간 개념으로는 매우 긴 시간이기에, 그동안 시장과 게이머가 어떻게 바뀔지도 알 수 없다. 그런데 게임 시스템이 완성되어 테스트에 들어가는 시점이 되었을 때에야 비로소 게임의 실체를 테스트해볼 수 있게 되니 테스트 결과가 좋지 않더라도 이미 어쩔 수 없는 일이 되어 큰 폭의 수정 없이 그대로 오픈하게 된다. 다행히 재미있는 게임이었다면 성공하겠지만, 불행히도 한국의 게임 역사에서는 큰 실패를 안겨준 대작 게임들이 더 많았다.

클린턴 키스는 이러한 문제에 대해 애자일 스크럼이라고 하는 일 잘할 수 있는 방안에 대해 실증적이면서 구체적으로 설명한다.
이 책에서도 중요하게 인용되는 켄 슈와버와 제프 서더랜드는 그들의 문서 ‘스크럼 가이드(The Scrum Guide)’를 통해 다음과 같이 스크럼을 평가한다.

■ 간단하고
■ 이해하기 쉽지만
■ 마스터하기는 어려운 프레임워크

스크럼은 대단히 쉽게 배울 수 있는 방법론이다. 하지만 ‘어떻게 적용할 것인가?’에 대해서는 많은 고민과 성숙된 경험이 필요하다. 물론 스크럼을 잘 수행할 수 있는 팀을 갖추는 것은 더 어렵다. 하지만 이 책을 통해 독자들은 애자일 스크럼의 철학부터 게임 개발이라는 특수성에 맞는 구체적인 적용 방안에 대한 지식까지 얻을 수 있다. 최고 수준의 해외 게임 개발 스튜디오가 일하는 방법을 접해보는 것도 흥미로울 것이다. 참고로 이 책에서 다루는, CCP 게임즈(CCP Games)가 어떻게 〈이브 온라인(EVE Online)〉개발 프로젝트에 애자일 스크럼 방법론을 적용 했는지에 대한 소개 영상도 유튜브에서 볼 수 있으니 반드시 시청하기 바란다(https://www.youtube.com/watch?v=GqsReCZD4hc).

게임 프로듀서로서 애자일 스크럼 게임 개발 프로젝트 관리의 바이블인 이 책이 마침내 한국에 소개되는 것이 매우 반갑다. 더군다나 이 책을 번역한 박현철 님, 전장호 님은 애자일 스크럼에 대한 풍부한 현장 경험과 지식을 갖춘 분들로, 이 책의 번역 작업을 맡아주셔서 업계의 한 사람으로서 깊이 감사한다. 일반적인 기술 서적과는 다른 특수성을 지닌 전문적인 내용을 번역하느라 많은 어려움이 따랐으리라 생각한다. 훌륭한 결과물과 그간의 노고에 박수를 보낸다.


목차


1부 문제와 해결책
1장 게임 개발이 직면한 위기
__간추린 게임 개발의 역사
____오락실 게임에서의 반복
____초기 방법론
____묻지마 투자의 종말
__위기
____줄어든 혁신
____떨어진 가치
____악화된 업무 환경
__한 줄기 희망
__추가 자료

2장 애자일 개발
__프로젝트가 어려운 이유
____프로젝트 검토로부터 배우기
____문제
__왜 게임 개발에 애자일을 사용하는가
____아는 것이 열쇠다
____비용과 품질
____우선 재미를 찾는 것부터
____낭비 제거
____게임 개발에 적용하는 애자일 가치
__애자일 프로젝트 모습
____애자일 개발
____전체 프로젝트
__애자일 도전
__추가 자료

2부 스크럼과 애자일 계획
3장 스크럼
__스크럼의 역사
____큰 그림
____스크럼 원칙
__스크럼 구성
____제품 백로그
____스프린트
____릴리스
__스크럼 역할
____스크럼 팀
____팀
____스크럼마스터
____제품 책임자
__고객과 이해관계자
__돼지와 닭
__스크럼 크기 조정
__요약
__추가 자료

4장 스프린트
__큰 그림
__계획하기
____스프린트 우선순위 결정
____스프린트 계획하기
____길이
__진척 추적하기
____작업 카드
____번다운 차트
____일일 스프린트 백로그 추세
____작업 보드
____전략 회의실
__일일 스크럼 회의
__실천방안
__스프린트 검토
____단일 팀 검토
____멀티 팀 검토
____게임회사 이해관계자
____스튜디오 이해관계자
____정직한 피드백
__회고
____회의
____결과 게시 및 추적
__스프린트 실패
____스프린트 중단
____스프린트 리셋
____팀이 실패했을 때
____작업 부족
__요약
__추가 자료

5장 사용자 스토리
__운명적인 만남
__사용자 스토리란 무엇인가
__상세 수준
__만족 조건
__사용자 스토리 인덱스 카드 사용
__사용자 스토리의 INVEST
____독립적이다
____협상 가능하다
____가치가 있다
____추정 가능하다
____적절한 크기다
____테스트 가능하다
__사용자 역할
__완료 정의
__스토리 수집
__사용자 스토리의 장점
____대면 의사소통
____사용자 스토리는 모두가 이해할 수 있다
__요약
__추가 자료

6장 애자일 계획
__왜 애자일 계획인가
__제품 백로그
____제품 백로그 우선순위 결정
____지속적인 계획
____미래 예측
__스토리 크기 추정
____추정에 얼마나 많은 노력을 기울여야 하는가
____스토리 크기는 얼마만큼 추정해야 하는가
____스토리 점수
____플래닝 포커
____스토리 점수 크기와 피보나치 수열
____이상적인 작업일
릴리스 계획
____릴리스 계획 회의
____계획 발표
____릴리스 계획 갱신
____잡지 데모와 경화 스프린트
__요약
__추가 자료

3부 애자일 게임 개발
7장 비디오 게임 프로젝트 계획
__〈미드나잇 클럽〉 이야기
__최소 요구 피처 목록
__단계의 필요성
__개발 단계
__단계 혼합
__릴리스로 단계 관리
__애자일 프로젝트에서의 프로덕션
____프로덕션 빚
____프로덕션에서 스크럼의 어려움
____린 프로덕션
____스크럼으로 작업하기
____스크럼 팀 전환
__요약
__추가 자료

8장 팀
__좋은 팀
__팀에 대한 스크럼 접근법
____다분야통합 팀
____자기 관리
____자기 조직화
____팀 크기
____리더
__게임 팀과 협업
____피처 팀
____기능 팀
____프로덕션 팀
____공용 기반 환경 팀
____도구 팀
____풀 팀
____통합 팀
__스크럼 크기 조정과 분산
____대형 팀의 문제
____스크럼의 스크럼
____제품 책임자의 계층 구조
____스프린트 날짜 맞춤
____실천방안 커뮤니티
____종속성 피하기
____분산 팀
__요약
__추가 자료

9장 빠른 반복
__반복 오버헤드는 무엇으로부터 비롯되는가
__반복 시간 측정 및 표시
____반복 시간 측정
____반복 시간 표시
__개인 반복과 빌드 반복
____개인 반복
____빌드 반복
__요약
__추가 자료

4부 애자일 관심 분야
10장 애자일 기술
__문제
____불확실성
____변경이 문제를 야기
____늦은 변경의 비용
____초기에 너무 많은 아키텍처
__애자일 접근법
____익스트림 프로그래밍
____디버깅
____최적화
__요약
__추가 자료

11장 애자일 아트와 음향
__애자일로 해결하는 문제들
__애자일에 대한 우려
__아트 리더
__다분야통합 팀의 아트
____창의적 긴장
____아트 QA
____아트 지식 구축
____‘아직 끝나지 않은’ 신드롬 극복
____예산
____‘마지막 단계’ 음향
____프로덕션에서의 협업
__요약
__추가 자료

12장 애자일 설계
__문제
____기획자는 지식을 만들지 않는다
____게임은 마지막에 드러난다
__스크럼으로 설계하기
____모든 팀에 기획자 한 명씩?
____문서의 역할
____차고 바닥의 부품들
____집합 기반 설계
____선임 기획자 역할
____제품 책임자로서의 기획자
__요약
__추가 자료

13장 애자일 QA 및 제작
__애자일 QA
____QA의 문제점
____애자일에서 테스트는 단계가 아니다
__애자일 게임 팀의 QA 역할
____QA를 팀에 소속시켜야 할까, 풀에 두어야 할까
____팀에 몇 명의 테스터가 있어야 하는가
____버그 데이터베이스 사용
____수행 테스트
____QA의 미래
__애자일 제작
____애자일 프로젝트에서 제작자의 역할
____스크럼마스터로서 제작자
____제품 책임자 지원 역할로서 제작자
____제품 책임자로서 제작자
____제작의 미래
__요약
__추가 자료

5부 시작하기
14장 스크럼의 신화와 도전
__은총알 신화
____스크럼은 당신을 위해 모든 문제를 해결해줄 것이다
____스크럼을 사용하는 프로젝트는 항상 제시간에 출시할 수 있다
__두려움, 불확실성, 의심: FUD
____끝없는 개발
____관리 방법에 대한 일시적 유행
____이중 잣대
____변화는 나쁜 것
____끝없는 회의
__스크럼 도전
____프로세스 및 문화 변화를 위한 도구, 스크럼
____스크럼은 작업의 추적이 아닌 가치를 추가
____현재 상태 vs. 지속적인 향상
____화물 숭배 스크럼
____스크럼은 모든 사람을 위한 것이 아니다
____초과근무
____크런치
__요약
__추가 자료

15장 게임회사와 일하기
__어려움
____때 늦은 집중
____마일스톤 대가 지급과 협업
____제한된 반복
____게임기 하드웨어 제작사 문제
____포트폴리오가 날짜를 좌우한다
__신뢰 구축, 두려움 타파
____두려움
____애자일 이해하기
____게임회사 측 제품 책임자
____조기에 프로젝트 어려움을 해결하기
____프로덕션 계획 관리
____두려움 완화
__애자일 계약
____계획보다는 반복
____고정된 출시일
____애자일 프리프로덕션
____스테이지 게이트 모델
__요약
__추가 자료

16장 스크럼 시작하기
__적용의 3단계
____견습생 단계
____숙련 단계
____달인 단계
__적용 전략
____교두보 팀
____대대적인 확산
__요약
__추가 자료

결론

도서소개


★ 이 책에서 다루는 내용 ★

■ 게임 개발 맥락에서의 스크럼 목표, 역할, 실천방안에 대한 이해
■ 게임의 비전, 피처, 진행 계획과 의사소통
■ 격주마다, 심지어는 날마다 게임을 실행 가능한 상태로 유지하는 반복 기술 사용
■ 모든 팀 구성원이 자신의 역할을 성공적으로 수행하기 위한 지원
■ 개발 과정에 대한 안정성과 예측 가능성 개선
■ 유동적인 시장의 모호한 요구사항에 대한 관리
■ 스크럼을 지리적으로 분산된 개발 팀으로 크게 확장
■ 스크럼 시작하기: 관성을 극복하고 조직의 현재 프로세스에 스크럼을 통합

★ 이 책의 대상 독자 ★

이 책은 프로그래머, 프로듀서, 아티스트, 테스터, 기획자로 구성된 애자일 팀을 구성하고, 팀 안팎으로 효율적인 협력을 촉진하는 전 과정을 다룬다. 또한 장기적인 계획에서부터 진척에 대한 추적과 지속적인 통합까지, 저자가 현실에서 어렵게 얻은 경험을 바탕으로 수많은 팁과 트릭, 해결책을 제시한다.

★ 이 책의 구성 ★

1부, '문제와 해결책'은 게임 산업의 역사로부터 시작한다. 게임 산업의 상품과 개발 방법론이 어떻게 변화되어 왔는가? 무엇이 우리를 비대한 예산, 절대로 맞출 수 없는 일정, 프로젝트 초과근무, 죽음의 행진으로 이끌었는가? 이어서 애자일에 대한 개요를 소개하고 애자일 가치가 어떻게 게임 개발 관리의 문제에 도움을 줄 수 있는지 이야기한다.

2부, '스크럼과 애자일 계획'에서는 스크럼, 스크럼의 역할과 실천방안, 스크럼을 게임 개발에 적용하는 방법에 대해 살펴본다. 또 게임의 비전, 피처, 진척에 대해 의사 소통하고, 계획하고, 단기 및 장기적으로 반복하는 방법을 설명한다.

3부, '애자일 게임 개발'에서는 일부 스크럼 실천방안에 프로덕션을 위한 린 실천방안 및 칸반 실천방안을 보강할 수 있는 것을 포함해, 게임 개발 프로젝트 전반에 걸쳐 애자일을 사용하는 방법을 설명한다. 또한 애자일 팀과 전 세계에 걸쳐 분포되어 있는 대규모 직원들에게 스크럼을 확장하는 방법을 알아본다. 또한, 팀이 게임을 구축하는 모든 사항을 반복하는 데 필요한 시간을 줄임으로써 지속적으로 자신의 개발속도를 향상시키는 방법에 대해 검토한다.

4부, '애자일 관심 분야'에서는 광범위하고 다양한 각각의 분야가 한 애자일 팀에서 함께 일하는 방법에 대해 살펴본다. 또한 각 분야 리더의 역할과 리더를 스크럼 역할에 매칭시키는 방법을 설명한다.

5부, '시작하기'에서는 당신의 스튜디오와 게임회사에 애자일 실천방안을 도입하는데 따르는 어려움과 해결책을 상세히 알아본다. 문화적 관성을 극복하고 애자일 원칙의 훼손 없이 스튜디오 고유의 프로세스에 통합시키는 것은 시간이 걸릴 수 있고 도중에 많은 어려움이 생긴다. 5부를 구성하고 있는 내용은 이런 어려움을 헤쳐나갈 수 있도록 안내해준다.

이 책은 애자일 게임 개발을 위한 출발점이지 결코 종착점이 아니다. 스크럼, XP, 린, 칸반, 사용자 스토리, 애자일 계획 등 게임 개발에 대한 좋은 책들이 있다. 이런 책들은 지속적인 향상으로 가는 길에 필요한 모든 세부사항을 제공해준다.

아이폰, PC, 대규모 멀티플레이어 온라인 게임 개발자는 여기에 설명한 실천 방안들을 사용한다. 나는 기술적 배경을 바탕으로 한 많은 이야기를 공유했고 이중에는 애자일 프로그래머를 위한 실천방안들이 많지만, 이 책은 전체 산업에 적용할 수도 있다. 다양한 분야, 장르, 플랫폼에 관계된 많은 사람들로부터 얻은 이야기와 경험들도 이 책에 모두 담았다.

★ 옮긴이의 말 ★

내가 처음 애자일을 접한 것은 1999년이다. 개발자, 설계자, 프로젝트 관리자 등으로 활동했던 나는 당시 수백억 원을 들여 많은 외국인들과 함께 웹 기반 투자 시스템을 만드는 회사에 신용분석(CreditAnalytics) 팀장으로 합류했었고, 쉽지 않은프로젝트 상황을 잘 이끌어가려고 고군분투하고 있었다. 여러 명의 인도 출신 개발자들이 풀(Pool) 형태로 존재했고, 새로운 일이 내게 주어질 때마다 개발자 풀에서 협업을 해본 경험이 없는 사람을 데려와서 매우 생소한 개발 업무를 맡겨야만 했다. 업무를 가르쳐주기도 어려웠고, 전체 아키텍처 및 관련 모델, 개발 환경 등을 짧은 시간 내에 전달하는 것도 쉽지 않았으며, 이전 프로젝트 결과들과 지속적인 통합을 하면서 일관성을 유지하는 것도 쉽지 않았다.

이때 XP를 알게 되었다. 풀로부터 데려온 개발자에게, 비즈니스 전문가들과 논의해 만들었던 스펙 내용을 보면서 코딩하는 것을 한 시간쯤 시범적으로 보여주었고, 한 시간은 직접 코딩하도록 시키면서 업무, 공통 모듈, 프로그래밍 스타일 등에 대한 개발 관련 코칭을 수행했다. 그렇게 P C 한 대로 일주일쯤 함께 짝 프로그래밍(Pair Programming)을 진행하면, 이후에 필요한 일은 스펙을 통해 적절하게 협업할 수 있는 상황이 되었다. 이전 프로그램이나 다른 사람들이 작성한 프로그램들을 개발자가 직접 개선하기 위해 코드 소유권을 공유할 수밖에 없었고, 프로그램 대부분이 기업 회계를 위한 계산과 각종 금융 상품 처리 등에 관한 것이다 보니 계속 회귀 테스트를 할 수밖에 없는 상황이어서, 항상 테스트를 염두에 두고 개발해야만 했다.

회사 전체의 개발/관리 프로세스를 따르면서 우리 팀은 UP(Unified Process) 방법론을 관리의 틀로 활용하며 로즈(Rose)라는 모델링 도구로 UML 모델을 만들고, 로직이 없는 스켈레톤 코드(Skeleton Code)를 생성해 개발자에게 배포했으며, XP를 통해 개발자들과 의사소통했다. 그 당시 빌드를 전담하는 전문 빌드 마스터가 있어서, 지속적 통합 빌드 체계도 유지할 수 있었다. 프로젝트 관리자는 미국인 여성으로 MBA 출신이었고, 소프트웨어 아키텍트는 중국계 캐나다 사람이었으며, 영국이나 홍콩 등 다양한 출신의 영업 및 국제법 전문가 등도 있었다. 그리고 투자사들은 항상 우리들의 성과에 대해 관심을 표명하고 있었다. 우리는 급변하는 금융 상황에 대처할 수 있는 빠른 피드백이 필요했고, 내게 XP는 그 당시의 어려운 상황을 타개할 수 있는 유일한 탈출구였다.

모델링 및 프로그래밍 관련 저서를 출간했던 나는 저술 경험을 살려 XP에 대한 좋은 경험을 공유하고자 번역서인 『XP 도입을 위한 실전 입문: Extreme Programming Installed』를 2002년 출간했다.

이후 삼성생명 비전속 등 다양한 프로젝트들을 수행하면서 팀 활동에 XP를 적용해 빠른 피드백을 만들어낼 수 있었고, 2007년에는 증권사의 차세대 프로젝트에 스크럼(Scrum)을 적용해서 프로젝트 성공에 크게 기여할 수 있었다.

2007년 7월부터 2009년 5월까지 증권사 차세대 프로젝트에서 내가 맡았던 역할은 소프트웨어 아키텍트(Software Architect)이자 변화관리자(Change Agent)였다. 프로젝트 진행 중에 증권사 CIO 및 현업과 전산 리더들, 수행사였던 삼성SDS의 PM, PL, QA 등 주요 리더들, PMO를 모두 포함한 스크럼 조직을 구성했고, 나는 스크럼마스터(ScrumMaster)가 되어 매일 스크럼 미팅(Daily Scrum Meeting)을 진행했다. 또한, 매일 진행된 미팅을 뉴스페이퍼(Daily News Paper)로 만들고 인쇄해서 프로젝트 관련 전체 인원(250여명)에게 배포했다.

20년이 넘는 나의 IT 경력에서 가장 값진 경험을 바로 이때 얻었다. 스크럼마스터로서 전사 프로젝트의 의사소통 메커니즘을 이끌어냈고, 날마다의 대면 이슈 관리를 통해 빠른 상황 대처를 할 수 있었다. 그리고 필요한 정보 공유를 통해 전체 프로젝트의 이해 공유(Shared Understanding)를 향상시킬 수 있었다. 비록 전체 프로젝트의 공식 방법론이 정보공학 방법론이었고 C 언어가 주 언어였지만, 스크럼과 같은 애자일 방식이 전사 차원의 프로젝트 성공에도 일조할 수 있다는 확신을 갖게 해주는 사례를 만들 수 있었다.

크고 작은 프로젝트 수행이 끝날 때마다 프로젝트 경험을 정리하면서 모델링이나 프로젝트 관리 관련 책과 애자일 관련 책의 번역 작업을 꾸준히 해올 수 있었고, 덕분에 내 통산 열 번째 책인 『애자일 소프트웨어 개발』을 IT 전문가와 함께 출간하는 기쁨을 얻을 수 있었다. 이 모든 것에 대해 하느님께 감사드리며, 어려운 IT 환경에 조금이라도 도움이 되기를 희망한다.
박현철

소프트웨어 개발 환경은 급속도로 변화하고 있다. 우리가 소프트웨어로 해결해야 하는 문제는 점점 더 복잡해지고 있으며 프로젝트의 불확실성과 복잡도도 함께 높아졌다. 전통적인 개발 방법으로 이를 대처하기란 역부족임을 주변의 많은 프로젝트 실패가 보여주었다. 폭포수 개발에 익숙한 개발자나 프로젝트 매니저가 이 책을 읽고 있다면 아마 적어도 한두 번쯤 실패했던 기억을 어렵지 않게 떠올릴 수 있을 것이다. 이때 등장한 애자일 방법론이 이러한 환경에서 소프트웨어를 개발함에 있어 발생하는 많은 문제를 해결해줄 것으로 기대되고 있지만, 실제로 애자일 철학과 실천방안들을 우리의 소프트웨어 개발에 제대로 적용하는 것이 쉽지만은 않다. 현장에서 프로젝트에 애자일, 스크럼을 적용해봤다면 충분히 공감하는 문제일 것이다.

이 책은 애자일의 철학뿐 아니라 스크럼을 통해 소프트웨어 개발에 어떻게 그 철학을 적용하고 우리 자신의 것으로 만들어낼 수 있는지 알려준다. 또한 개발 프로세스뿐 아니라 조직에도 어떻게 스크럼 역할들을 적용하고 확장할 수 있는지 설명해준다. 저자인 클린턴 키스는 이 책에서 자신의 통찰과 잘 구조화된 지식을 자신의 경험담과 함께 재치 있게 이야기한다. 『애자일 소프트웨어 개발』은 단순히 방법론과 특정한 실천방안, 기술만을 소개하는 책이 아니다. 이 책을 통해 우리의 프로젝트를 어떻게 더 좋게 만들 수 있는가에 대한 해답을 찾을 수 있도록 코칭해준다.

스크럼은 단순하고 쉽다. 전체 실천방안을 설명하는 데 몇 분 정도면 충분하지만, 애자일과 스크럼의 철학을 이해하고 ‘왜 해야 하는가?’에 대한 답을 찾고 우리가 일하는 환경에 맞도록 이를 적용하는 것은 매우 오랜 시간이 필요할 수도 있다. 하지만 여전히 스크럼은 간단한 것으로부터 시작하며, 이로써 우리는 작은 실험들을 통해 소프트웨어 개발 시간과 결과를 점차 긍정적으로 바꿔나갈 수 있다. 독자들도 자신의 환경을 돌아보며 이 책을 따라가다 보면 답을 찾기 위한 여러 실험들을 적용해보고 싶은 마음이 생길 것이다. 그러므로 당장 실행해보라고 권하고 싶다.

아울러 이 책은 게임 개발을 주요 맥락으로 애자일과 스크럼을 이야기하고 있지만, 개발자가 아니더라도 또 게임 외 다른 산업에 종사하는 독자라도 모두 도움을 받고 통찰을 얻을 수 있다. 소프트웨어 개발 프로젝트에 참여하는 구성원뿐 아니라 이해관계자들도 애자일 소프트웨어 개발에 대한 합리적인 시각과 태도를 갖는 데 조금이나마 이 책이 도움이 되었으면 한다.
전장호

★ 감수의 글 ★

게임의 본질은 오락으로서의 재미다. 그러므로 게임을 개발한다는 것은 게임적 재미를 찾아가는 것을 의미한다. 이러한 게임의 본질은 일반적인 소프트웨어를 개발하는 것과 크게 다른 근본적인 차이를 야기한다.

일반적인 소프트웨어는 사용자가 원하는 기능이 올바로 구현되면 성공적으로 개발되었다고 할 수 있다. 그러나 게임 소프트웨어는 ‘구현된 기능이 재미있는가?’라는 추가적인 요구사항이 따른다. 만약 재미가 없다면 그 기능이 완벽하게 개발되었더라도 수정되거나 삭제될 수밖에 없다.
문제는 이 게임의 재미라는 것이 상당히 주관적이며 예측하기 어렵다는 점이다. 몇 가지 기능이 재미있다 하더라도 전체 게임 시스템이 완성되었을 때의 재미 문제는 전혀 다를 수 있기 때문이다. 상당히 단순한 메커니즘을 가지고 있는 게임일지라도 그 메커니즘에서 재미를 극대화시킨다는 것은 대단히 어렵다는 점에 모든 게임 개발자들이 동의할 것이다.

이러한 게임의 불확실성과 복잡성 같은 속성들로 인해 게임 개발 프로젝트를 관리하는 것은 매우 어렵다. 이 책의 저자는 이러한 문제에 대해 게임 개발자들이 전통적인 계획 작성 도구와 규범화된 방법으로 접근을 시도했다고 봤다.

한국의 상황도 크게 다르지 않았다. 허들시스템 등의 프로젝트 관리 방법론은 전통적으로 규범화된 제품 개발 방법론이었고, 많은 개발 스튜디오들이 비슷한 폭포수 방식의 개발 방법론을 사용해왔다.
폭포수 방식의 개발 방법론이 지닌 문제는 명확하다. 기획 단계에서 구현되지 않은 게임의 재미를 예측해 설계하는 것은 대단히 어렵다. 더구나 기획 단계 시점과 게임 오픈 시점 간의 시차는 게임 업계의 시간 개념으로는 매우 긴 시간이기에, 그동안 시장과 게이머가 어떻게 바뀔지도 알 수 없다. 그런데 게임 시스템이 완성되어 테스트에 들어가는 시점이 되었을 때에야 비로소 게임의 실체를 테스트해볼 수 있게 되니 테스트 결과가 좋지 않더라도 이미 어쩔 수 없는 일이 되어 큰 폭의 수정 없이 그대로 오픈하게 된다. 다행히 재미있는 게임이었다면 성공하겠지만, 불행히도 한국의 게임 역사에서는 큰 실패를 안겨준 대작 게임들이 더 많았다.

클린턴 키스는 이러한 문제에 대해 애자일 스크럼이라고 하는 일 잘할 수 있는 방안에 대해 실증적이면서 구체적으로 설명한다.
이 책에서도 중요하게 인용되는 켄 슈와버와 제프 서더랜드는 그들의 문서 ‘스크럼 가이드(The Scrum Guide)’를 통해 다음과 같이 스크럼을 평가한다.

■ 간단하고
■ 이해하기 쉽지만
■ 마스터하기는 어려운 프레임워크

스크럼은 대단히 쉽게 배울 수 있는 방법론이다. 하지만 ‘어떻게 적용할 것인가?’에 대해서는 많은 고민과 성숙된 경험이 필요하다. 물론 스크럼을 잘 수행할 수 있는 팀을 갖추는 것은 더 어렵다. 하지만 이 책을 통해 독자들은 애자일 스크럼의 철학부터 게임 개발이라는 특수성에 맞는 구체적인 적용 방안에 대한 지식까지 얻을 수 있다. 최고 수준의 해외 게임 개발 스튜디오가 일하는 방법을 접해보는 것도 흥미로울 것이다. 참고로 이 책에서 다루는, CCP 게임즈(CCP Games)가 어떻게 〈이브 온라인(EVE Online)〉개발 프로젝트에 애자일 스크럼 방법론을 적용 했는지에 대한 소개 영상도 유튜브에서 볼 수 있으니 반드시 시청하기 바란다(https://www.youtube.com/watch?v=GqsReCZD4hc).

게임 프로듀서로서 애자일 스크럼 게임 개발 프로젝트 관리의 바이블인 이 책이 마침내 한국에 소개되는 것이 매우 반갑다. 더군다나 이 책을 번역한 박현철 님, 전장호 님은 애자일 스크럼에 대한 풍부한 현장 경험과 지식을 갖춘 분들로, 이 책의 번역 작업을 맡아주셔서 업계의 한 사람으로서 깊이 감사한다. 일반적인 기술 서적과는 다른 특수성을 지닌 전문적인 내용을 번역하느라 많은 어려움이 따랐으리라 생각한다. 훌륭한 결과물과 그간의 노고에 박수를 보낸다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.