로드 브리티쉬의 성리처드 개리엇 형님의 집에 도둑이 들었다고 합니다.

사건의 내용은 이렇습니다:

지난 02월 01일 자정, 최소 9명이 콜드워터 캐넌 근처에 있는 리처드 형님의 집(이라고 해도 여러 건물들 중의 두 곳)에 자물쇠를 부수고 들어갔습니다.

그리고 거기서 파티를 벌이는데, 그 과정에서 따지도 않은 $800짜리 포도주들과 고급 스카치 위스키들을 포함해서 모두 약 $5,000 정도의 술을 먹어치웁니다.

여기서 재미있는 건, 그들이 (아마도 너무 취한 나머지) 자신들의 사진이 담긴 디지털 카메라를 놔두고 갔다는 것입니다!
012


여기서 리처드 형님의 한 말씀:
"그들이 숙취 때문에 괴로워하며 일어났을 때, 카메라가 어디있는지 궁금해하겠죠. 한 마디로 다윈상 감이네요. 범죄 현장에 스스로를 고발하는 증거를 놔두고 가다니."

출처: http://www.kvue.com/news/top/stories/031707kvueburglary-bkm.1d01d4c0.html

사용자 삽입 이미지


몇 일뒤, 범인들 중의 일부가 카메라를 되찾으러 갔으나, 리처드 형님의 집에 자신들의 사진이 붙어 있는 것을 보고 경악을 했죠. 경찰은 근처 학교와 주민회 및 웹에 사진을 올려서 범인들을 수배했던 겁니다.

결국 그로부터 5일 후, 범인들 중 한 명이 변호사를 대동하고, 경찰서에 자수하러 왔다고 합니다.
..
.
사용자 삽입 이미지

여기서 리플을 달아주는 센스!
:

어젯밤 오랜만에 Agile Game Development에 들어가 글들을 읽다가, 재미있는 사실을 발견했습니다. High Moon Studios의 프로그래머 두 명이 퇴사해서 새로운 회사를 설립했다는군요:
Power of Two Games

(한때 High Moon Studios의 programmer였던) Noel Llopis와 Charles Nicholson가 Power of Two Games라는 새로운 개발사를 설립했습니다. 그 둘은 끝내주게 유능한 프로그래머들이었을 뿐 아니라, 우리가 애자일 프로세스를 도입하는데 큰 도움을 주었습니다. Noel의 팀은 우리가 XPTDD를 도입하는 발판이었죠. 한편 Charles는 High Moon에서 공정과 절차를 개선했던 위대한 개혁가였으며, 그 결과 우리는 Scrum에 이르게 되었습니다.

저는 이 조그만한 회사에서 어떤 것이 튀어나올지 정말 기대가 됩니다. 마침 그 두 명이 블로그를 개설해서 자신들의 경험을 기록하고 있으니, 한 번 보시죠.

출처: Agile Game Development Blog
..
그래서 둘 중의 한 명인 Noel Llopis의 블로그에 가봤습니다:
Power of Two Games라는 회사를 시작했습니다!

한동안 글이 거의 안올라왔다는 것을 압니다. 좋은 소식은 그런 지루함이 끝났다는 겁니다.

Charles Nicholson과 저는 Power of Two Games라는 둘만의 새로운 개발사를 만들기로 했습니다. 마침내 제가 오랫동안 간직했던 꿈을 결국 실현시킬 기회를 갖게 된 거죠!

이제부터 Power of Two Games에다가 글을 쓸까 합니다. 거기에다가 우리가 어떻게 회사를 시작했는지, 어떤 개발 절차를 사용하고 있는지 자세히 적겠습니다. 하지만 이번에는 훨씬 자주 글을 쓸테니까, RSS Feed를 구독하시는 게 좋을 것 같습니다.

이제 Power of Two Games 가보죠:

사무실은 정말 단촐하고, 아담하네요. 역시 미국인지라 Dell을 씁니다.
사용자 삽입 이미지

특이한 점은 svnsync, sshd on cygwinDynDNS를 사용해서, 돈을 한 푼 안들이고 사무실 외부에 자동으로 백업을 하고 있네요. (물론 장비는 구입했겠지만, 원래 자신들이 쓰고 있는 걸 쓰니까 무효!)

사용자 삽입 이미지

자세한 건 저렴한 소스 코드 관리를 보세요.


:
...
.
애자일 선언문의 바탕에 깔린 원칙들
(Principles behind the Agile Manifesto)



우리는 다음 원칙들을 따른다:

우리는 가치있는 소프트웨어를
일찍 그리고 계속적으로 인도함으로써
고객을 만족시키는 것을 최우선으로 한다.

비록 개발 후반부라도 요구사항의 변경을 환영한다.
애자일 프로세스는
고객의 경쟁력 강화를 위해서
변화를 원동력으로 삼는다.

동작하는 소프트웨어를
2주에서 2개월 간격으로 자주 인도하며,
그 간격은 짧으면 짧을 수록 좋다.

사업부 사람들과 개발자들은 프로젝트 기간 동안
매일 함께 일해야만 한다.

의욕에 찬 사람들을 중심으로 프로젝트 팀을 구성한다.
그들이 필요로 하는 환경과 지원을 제공하고,
그들이 프로젝트를 완료할 것을 의심하지 않는다.

개발팀 내에서 혹은 개발팀과
정보를 교환하는 가장 효과적이고 효율적인 방법은
얼굴을 맞대고 이야기하는 것이다.

동작하는 소프트웨어가 진척 상황을 가늠하는 가장 중요한 척도이다.

애자일 프로세스는 지속 가능한 개발을 촉진한다.
후원자들, 개발자과 사용자들은 일정한 속도를
계속 유지할 수 있어야 한다.

탁월한 기술과 뛰어난 설계에 대한
끊임없는 관심은 기민성(Agility)을 강화시킨다.

단순함-꼭 필요하지 않은 것을
최대한 덜 개발하는 기술-은 필수적이다.

최고의 아키텍쳐, 요구사항과 설계는
자율적인 팀으로부터 나온다.

정기적으로 어떻게 하면 팀이
더 효과적으로 운영될 수 있을까를 돌아보고,
그에 따라 팀의 행동을 조율하고 수정한다.

.
...

제 자신이 완역한 것이 아닙니다.

인터넷에 떠도는 것들을 기반으로

Principles behind the Agile ManifestoAgile 소프트웨어 개발을 참고하여 수정하였습니다.

번역하신 분들께 감사드립니다.

...
출처: (영문) Principles behind the Agile Manifesto
         (한글) Agile 소프트웨어 개발
                   http://war625.info/trackback/14
참고:
http://bbs.kldp.org/viewtopic.php?p=103770#103770
...
:

.
애자일 소프트웨어 개발 선언문
(Manifesto for Agile Software Development)




우리는 직접 소프트웨어를 개발하면서, 또 남이 개발하는 것을 도와주면서

더 나은 
소프트웨어 개발 방법을 발견하고자 한다.

이 과정에서 우리는 다음을 가치있게 여기게 되었다:


공정과 도구보다 개인과 상호 소통
,

포괄적인 문서보다 제대로 동작하는 소프트웨어
,

계약에 대한 협상보다 고객과의 협력
,

계획을 따르는 것보다 변화에 대응하는 것을 
더 중요시한다.


다시 말해서, 왼쪽에 있는 것들이 비록 가치있긴 하지만,

우리는 오른쪽에 있는 것들에 더 큰 가치를 둔다는 것이다.



Kent Beck                James Grenning   Robert C. Martin
Mike Beedle            Jim Highsmith       Steve Mellor    
Arie van Bennekum   Andrew Hunt       Ken Schwaber  
Alistair Cockburn      Ron Jeffries         Jeff Sutherland  
Ward Cunningham    Jon Kern             Dave Thomas   
Martin Fowler          Brian Marick                          
    



애자일 소프트웨어 개발이 지향하는 가치가 무엇인지를 표방하는 글이다.

출처: Agile Manifesto
참고: XPer의 Agile Manifesto, Agile 소프트웨어 개발, 하얀아이

:

E-Mail Icon 생성기

Here & Now 2007. 5. 3. 18:34 |
E-Mail Icon 생성기를 사용해서 Blog에 Email 주소의 Banner를 달아보았습니다. (사실 이걸 하려고, Sidebar가 지원되는 Skin으로 교체했습니다.)

사용자 삽입 이미지

위에 처럼 E-Mail Icon을 생성해줄뿐만 아니라, 그 URL도 제공해줘서 아주 편리하네요.

다만 GMail, Hotmail, MSN, Yahoo!, AOL 등의 해외 업체는 지원하나, 안타깝게도 한국에서 많이 사용하는 Daum이나 Naver는 제공하지 않네요.

'Here & Now' 카테고리의 다른 글

잡지를 온라인에서 무료로 보는 곳!  (0) 2007.05.22
이것이 진짜 UCC: Code Guardian  (0) 2007.05.02
The Making of Star Wars 출간!  (0) 2007.04.27
:

"게임 개발자 구하기" 에피소드2 프리뷰입니다.


어제 아주 조금만 보고 왔는데, 이번에는 12분으로 길이가 늘어났고, 돌컴 님의 일인 다역에서 각 인물마다 성우들 채용했더군요.

참고로 오는 05월 05일(토)-아마도 자정-올라올테니, 다들 기대하십시요!
:
<게임으로 오세요: 게임 개발자들에게 배워야 할 점들> 제2편입니다.

이번 제2편에는 High Moon Studios에서 <GDC 2007 - Agile Game Development>에 이르기까지 어떤 과정을 겪었는지를 보여줍니다.

한편 제1편도 주석을 달아서 보강했습니다.

 
게임으로 오세요: 게임 개발자들에게 배워야 할 점들
(Get in the Game: What others can learn from game developers) 


2/3


 

출처: p. 24, Better Software (November, 2006)

작성: Clinton Keith

번역: 김기웅, Nikopole(교정), Khazad(교정)


MOVING TO AGILE
Agile로의 이행

폭포수(waterfall) 모형의 이러한 문제들 때문에, High Moon Studios에는 반복적이고 점증적인 방법론(iterative and incremental methodology)으로 돌아가려는 강렬한 욕구가 있었다. 이에 대한 가장 큰 장애물은 팀의 규모였다. 우리는 보다 공식적인-규모가 10명 이하였을 때의 분위기로 돌아갈 수 있는 일련의 실천 사항들로 이루어진-방법론이 필요했다.

 

우리는 Scrum을 발견했고, 채택한지 한 달 이내에, 팀의 생산성과 사기에 커다란 향상이 있었다. 우리 팀은 이내에 또 다른 이점을 깨달았다: 우리가 개발하던 게임이 형태를 갖추기 시작했고, 단기간에 얼마나 할만하고 재미있는가를 확인할 수 있었다. 나중에 우리 프로그래밍 팀은 Extreme Programming (XP)를 채택했고, 또 한 번의 중요한 발전이 있었다.

 

 

 

CHALLENGES

난관들

 

Agile을 채택했을 때, 우리는 모든 사항들을 준수하는 것을 목표로 했다. 우리는 그 원칙을 완전히 이해했을 경우에만 그것을 변형해서 적용하기로 했다. 사실 고위 관리자들이 Agile의 원칙들을 충분히 이해하고, 폭포수(waterfall) 모형에서는 옳지만 Agile에서는 그렇지 않은 잘못된 결정을 내리는 것을 중단하기까지 정말 오래 시간이 걸렸다.

 

Agile을 적용한지 수개월이 지나고 그 실천 사항들(pratices)에 숨겨진 이유들을 이해하게 되었을 때, 우리는 부딪힌 난관들을 해결하기 위해서 Agile에 변형을 가하기 시작했다.

 

 

 

HARD DEADLINES

빡빡한 마감

 

비디오 게임 개발은 빡빡한 마감 날짜들에 맞춰서 돌아간다. 대부분의 마감 날짜들은 매해의 특정 시기에 맞추어져 있으며, 마케팅상의 이유로 결정된다. 마케팅상의 마감은 게임의 성공에 매우 중요하다. 많은 주류 게임들이 대목인 연말(a holiday release)[1]에 맞춰 출시된다. 영화를 원작으로 하는 게임은 영화와 게임이 동시에 출시되어야 한다.

 

정해진 일정이 있기 때문에 개발에서 선택 가능한 사항은 오직 개발 범위(scope)뿐이다. 예산이 유동적일 수는 있지만, 프로젝트 후반에 인력을 더 투입하는 것은 오히려 상황을 악화시킬 뿐이다[2]. 개발 범위를 조절하는 데에는 반복적이고 가치를 우선(value first)”하는 접근법이 빛을 발한다. Agile을 사용하면, 매주기마다 최우선 항목들(the most important features)을 반복적으로 먼저 개발하게 된다. 팀이 시간에 쫓기게 되면, 아직 적용하지 않은 기능들이 이미 적용된 기능들보다 덜 중요하다고 확신하고, 쓸데없는 기능을 추가하지 않게 된다.

 

폭포수(waterfall) 모형을 사용하여 개발할 경우, 기능의 구현이 반드시 중요한 것부터 순서대로 진행되지는 않는다. 예를 들어서, 기술 팀은 인공 지능(이하 AI)이 완성되기 전에 복잡한 애니메이션 시스템에 집중하고 싶어할 수도 있다. 만약 애니메이션이 예상보다 오래 걸린다면, 원래는 AI 개발에 할당되었던 시간을 사용할 것이고, 이렇게 개발된 AI는 사용자들에게 그다지 매력적이지 않을 수도 있다. 반복적인 접근법에서는, 다른 부가적인 기능을 추가하기에 앞서, 게임의 가장 중요한 기능들을 완성하는데 요구되는, 적절한 수준의 애니메이션과 AI를 개발하는 것을 목표로 하게 된다. 다시 말해서 반복적인 접근법의 목표는, 예정된 계획을 따르는 것이 아니라, 필요한 수준의 기능을 개발하는 것이다.

 

 

 

CONTRACTS

계약


개발사들은 배급사와 계약을 체결하여 비디오 게임을 만든다. 배급사의 역할은 개발에 대한 대가를 지불하고, 게임을 홍보하며, 그 게임이 담긴 DVD나 카트리지를 대량 생산해서 배포하는 것이다.

 

폭포수(waterfall) 모형에서, 많은 배급사들은 게임이 어떻게 개발될 것인가에 대해 사전에 구체적인 계획(an up-front, well-fleshed-out plan)과 언제 어떤 기능이 완성될 것인지에 대한 일정을 요구한다. 이 결과물들, 마일스톤(milestones)”은 개발사에 대한 자금 지급과 결부된다. 마일스톤에 따른 지급은 개발사에게는 생명줄이며, 생존에 필수적이다. 계약, 즉 마일스톤 식의 일정은 (해당 기능들의 가치와 상관없이) 개발사들이 사전에 정의된 모든 기능들이 구현하도록 유도한다. 그러나 동시에 마일스톤 식의 일정은 어떤 변경 사항이 생겼을 때, 배급사와 개발사 사이에 장애물을 만들기도 한다.

 

Agile을 적용할 때 겪는 어려움들 중 하나는, Agile 방법론을 허용하는 계약을 성사시키는 것이다. Agile planning은 유동적이고 오직 짧은 기간(보통 3)만을 대상으로 한다. 이런 단기 일정이 한때 많은 배급사들을 겁에 질리게 했었지만, 이제 배급사들은 사전에 상세한 계획을 요구하는 것이 부질없는 짓이라는 것을 깨닫기 시작했다. 개발사와 배급사 사이의 신뢰 또한 넘어야 할 장벽들 중에 하나다. 배급사가 개발사의 개발 속도와 품질에 대한 헌신을 인식하게 되고, 개발사가 배급사의 비전과 성실성을 믿게 되는 데에는 오랜 시간이 필요하다. 신뢰는 둘 사이의 유대를 강화시키고, 더 나은 게임이 완성되는 배경이 된다.

 

신뢰가 구두 계약을 의미하지 않지만, Agile의 반복적이고, 유연한 접근법을 반영할 필요는 있다. 예를 들어서, 만약 어떤 게임을 개발할 것인지 사전에 충분히 정의하지 않는다면, 개발사의 계약위반 여부를 알기가 어렵다. 이러한 문제를 해결하기 위한 한 가지 방법은, Agile에서 출시(release)”라고 불리는 3~6개월마다, 여러 개의 작은 계약들을 체결하는 것이다. 그리고 각 출시 시점마다 잠재적으로 시장에 배포될 수 있는 버전을 만든다. 이러한 단기 계약들에는 개발사와 배급사간의 굳은 믿음이 필요하다. 그러나 만약 게임이 매 출시 단계마다 점점 더 가치가 증가하거나 재미있어진다는 것을 보여준다면, 배급사가 개발사의 개발 진도를 파악하기 쉬울 것이다.

 

 

 

SPECIALIZED ROLES

전문 영역들


진정한 Agile 팀들을 구성할 때, 겪는 또다른 어려움은 전문 영역들의 존재이다. 전통적으로, Agile 팀들에는 서로 상대방의 업무를 거의 이해하지 못하고, 일정 수준까지만 협력하는 전문화된 프로그래머들이 있다. 게임 개발팀들에서는 아티스트, 게임 기획자와 프로그래머가 완전히 서로 다른 역할을 수행한다. 아티스트가 프로그래머의 작업을 보는 것은(혹은 그 반대의 경우), 흡사 흑마술(black art)”을 보는 것과 같다. 따라서 진정한 Agile 팀들을 조직하기 위해서는 동료들 사이에 많은 믿음과 신뢰가 필요하다.

 

게임 개발팀은 특성상 이질적인 전문 분야들이 혼합되어 있기 때문에, Agile의 기본적인 실천 사항들(the basic agile practices)을 실천하는 것이 쉽지 않다. 자율 조직(self-organization)이라는 방식이 더 어려운 이유는, 아티스트들이 프로그래머들과 동일한 기준들(criteria)로 팀 프로그래머들을 선택하지 않기 때문이다. 복수의 전문 분야가 뒤섞인 업무 환경(across-discipline team environment)에서 더욱 이루어지지 힘든 멘토링(mentoring)과 업무 공유도 상황은 마찬가지이다.

 

팀을 이상적인 규모로 유지하는 것은 더욱 달성하기 힘들다. Agile에 따르면, 한 팀은 8~12명으로 구성된다. 이것을 초과하면, 의사 소통의 경로가 너무 복잡해져서 자율적이기 어렵다. 한 팀에 복수의 분야가 있을 경우, 분야당 필요한 최적의 인원수(critical mass)를 갖추기 어렵다. 예를 들어서, XP에서는 2조를 짜기 위해서 최소 4명의 프로그래머가 필요하다.[3] 6명이면 이상적이지만, 각 분야마다 6명을 배치하면 규모가 너무 커진다. 이에 대한 해결책은 각기 한쪽 분야에 살짝 더 비중을 두는 팀들(teams that are skewed slightly toward one discipline over the others)을 구성하는 것이다.[4] 그것 또한 새로운 난관이 될테지만, 팀의 규모를 작게 유지해준다.

 

처음에 우리는 프로그래밍 부서에만 Scrum을 적용시켰다. 아티스트와 기획자들은 Scrum 프로그래밍 팀들을 조직하는 프로젝트의 고객들이었다. 우리는 고객의 요구를 전달받지 못했기 때문에(due to lack of customer input), Sprint 마다 수백 번의 진행 장애를 겪고 있다는 점을 재빨리 깨달았다. 우리가 Scrum 팀들이 대부분의 장애물을 내부적으로 즉시 해결할 수 있도록 자급자족적이어야 한다는 사실을 깨달았을 때, 아티스트들과 기획자들이 팀에 합류했다.



                               

[1] [역자주] 성탄절(Christmas)을 전후로, 추수감사절(Thanksgiving day, 11월 마지막 목요일) 즈음부터 연초(New Year’s Day)에 이르는 기간. 북미 시장의 경우, 한 해 매출의 절반 가까이가 이때 발생한다.

 

[2] [역자주] Kurt Bittner유스 케이스를 이용한 반복 개발(Driving Iterative Development With Use Cases에서 다음과 같이 설명하고 있다;

프로젝트 후반에 사람들을 투입하면 프로젝트는 더 지연된다. 아키텍처가 안정되지 않고 작업이 독립적인 단위로 효과적으로 나뉠 수 없을 경우에는 더욱 그렇다. 이 경우 서로 충돌을 방지하기 위해 지속적으로 통신해야 하기 때문에 작업이 느려지고 더 많은 사람들이 하나의 프로젝트에 작업하더라도 실제 작업은 줄어들게 된다.”


[3]
[역자주] 4 = 2* 2. XP의 짝 프로그래밍(Pair programming)-두 명의 프로그래머가 한 조를 이루어 함께 프로그래밍 하는 것-을 말한다.


[4]
[역자주] 예를 들면, 프로그래밍이 중요한 팀에는 6명을, 보통은 4명을, 별로 필요하지 않은 곳에는 2명을 배치하는 것을 말한다. 이 경우, 각 팀이 일정 크기를 유지하기 위해서, 그만큼 각 팀의 아티스트나 기획자의 수가 줄거나 늘어난다.

.
:
This is the English translation of 애자일 게임 개발 적용 사례.

Note:
  • At this point(May 2nd, 2007), MAIET Entertainment is the only game developer acknowledged using Agile game development in Korea, although there is a rumor telling that other several companies like (some teams in) NC Soft are using it.
  • Don't hesitate to notify me broken English in this translation.

I presented the case study of my project by using Clinton Keith's Agile Game Development translated by Kay Kim and Chang-joon Kim's Agile culture before Dev Rookie's members on  last Sat. (2007/04/28)

Issues;
  • Adopted Agile methodology(esp. Scrum) since Nov. 2006.
  • Started small. (Never try to convert the entire studio overnight.)
  • Adjusted Agile game development to our team, not followed it as dogma.
  • Not forced team members into Agile game development.
  • Tried to build Agile culture first: planning game, penalties, seminars, changing roles and analogue practices.
  • Didn't focus on doing Agile practices, but making a fun game.
  • Continuous trials and errors.
  • Trying to raise the frequency of using Pair Programming and TDD

Scrum;
  • Team size: 10 programmers.
  • Customer: the director of our own.
  • Sprint length: 1 month
  • Sprint planning meetings
  • Daily scrums
  • Reviewed user story every Mon. Short demonstration.
  • Sprint review

Challenges;
  • All the members were not good at Agile game development. (Never trained before.)
  • Had difficulty estimating
  • The scrum team wasn't self-contained. No participation of game designers and artists yet.
  • Less efficient user story reviewed by the customer: caused frequent redos on completed user stories.
  • Members' low motivation toward Agile game development.
  • Communication is still a problem: we need to talk more.

사용자 삽입 이미지

It's almost same as the thing from How to Schedule a Montly Plan, but something were changed;
  • Programmers and game designers wrote user stories together.
  • Wrote detailed tasks of a user story on post-it and post next to the user story.
  • A person in charge of each task wasn't defined in advance, but just before the task began.

사용자 삽입 이미지

Actively utilized a white board and a post-it. The picture above is a scene from  the game design discussion that I, a game designer and a programmer attended.


사용자 삽입 이미지

You can see detailed information about the picture above from Our War Room. The upper part of "Done!" is about the completed tasks in this iteration and the lower part is about the last iteration. Planning "To Do" for this iteration was meaningless for too frequent changes of "To Do". So, we decided to list only the completed tasks in this iteration. (Once we had reported what each team members did in the last iteration, but we replaced the report with the list of completed tasks.)

Added the day tasks began and ended post-its including description, memo, worker, estimates and priority.

사용자 삽입 이미지

The burndown chart of Feb. 2007.


Its velocity was 2.3 based on five-day-iteration, and the problem is unstable velocity.

:



Code Guardian이라는 제목의 이 동영상은, 독일 제3제국의 비밀 병기와 미국의 Code Guardian이 실감나게(?) 싸우는 장면을 보여줍니다.

잼나게 보고 끄려던 찰나, Credit에 "Factor 5"가 지나가는 것이 아닙니까! Factor 5라면 Star Wars: Rouge Squadron를 만든 그 회사! 이 동영상을 Factor 5에서 녹음했다고 나오는군요.

알고 보니 Marco Spitoni라는 제작자는 이탈리아의 소재의 Milestone이라는 개발사에서 일했다는군요. 그의 홈페이지 http://www.cee-gee.net 에 가면 두 편의 동영상이 더 있습니다.

'Here & Now' 카테고리의 다른 글

잡지를 온라인에서 무료로 보는 곳!  (0) 2007.05.22
E-Mail Icon 생성기  (0) 2007.05.03
The Making of Star Wars 출간!  (0) 2007.04.27
:
애자일 게임 개발에 자주 사용되는 XP의 중요한 요소 중 하나인 사용자 스토리에 대해 좋은 글이 있어서 Trackback을 합니다.

사용자 스토리   by writely (2007/01/10)

왜 사용자 스토리? by writely (2007/02/12)


참고로 사용자 스토리: 고객 중심의 요구사항 기법이라는 책이 발간되어 있습니다.
: