저는 프로그래머가 아닌지라, 제가 직접 TDD를 해본 적은 없습니다. 그저 지속적인 통합으로 인한 혜택들을 누리고 있을 따름이지요.

그런데 테스트 주도 개발에 대한 솔직하고 멋진 포스팅이 있어서 제 맘대로 발췌/번역했습니다:


사용자 삽입 이미지
솔직히 말해서 실망했다. 더 크고, 확실한 성과를 기대했던 것이다.

코드의 품질이 나아질 거라고 말했지만, 사실 내 코드의 품질은 더 나빠졌다. (사실은 제대로 읽어보면, 실질적으로 나뻐진 게 아니라, 잘못 사용하고 있던 것들을 들춰내서 표면적으로 나뻐졌다는 이야기가 나옵니다.)

끝내주는 비방(silver bullet) 같은 게 아니었다.

[그러나] 내가 말하고 싶은 것은, 나는 결코 [테스트 주도 개발(이하 TDD)을 하기] 이전으로 돌아가지 않으리라는 것이다.

코드의 품질을 낮아졌지만, 코드에 대한 나의 이해는 높아졌다.

누군가는 이렇게 말할지 모르겠다. "어떤 규칙 같은 걸 만들어서, 네가 변경하는 코드를 제대로 이해하고 있는지 확인하는 건 어때? 그걸 위해서 굳이 TDD [같은 번거로운 것]을 할 필요까지는 없잖아?" 글쎄, 나는 거의 항상 변경하려는 코드를 이해하고 있다고 생각한다. 그런데 그러고 보니까 내가 정말 내가 그러고 있기는 하나? 이게 바로 TDD가 정말 도움이 되는 부분이다.

이것이야 말로, 내가 듣지 못한 TDD의 커다란 장점이다.

출처: 테스트 주도 개발 ,1년째


위의 글에 대한 박일 님께서 코멘트를 함께 보시면 좋습니다.

참고로 위의 Jamie Fristrom라는 양반, 제가 좋아하는 Manager in A Strange Land를 쓰신 분이군요.

:

린 소프트웨어 개발의 적용(Implementing Lean Software Development)의 번역판이 8월말에 출간될 예정이라고 합니다:


사용자 삽입 이미지
린 소프트웨어 개발이란, Toyota의 자동차 개발 철학을 소프트웨어에 접목시킨 것으로 Agile과 비슷한 점이 많다고 생각합니다.

예를 들어서, 린 소프트웨어 개발의 원칙들을 살펴보면 Agile과 비슷한 점이 발견됩니다:
-. 낭비를 제거하라: 장애물(impediment)
-. 학습을 증폭시켜라: 피드백(Feedback), 반복(Iteration)
-. 가능한 늦게 확정하라
-. 최대한 빨리 인도하라
-. 팀에 권한을 위임하라: 자기결정권(Self-determination), 동기 부여
-. 통합성을 구축하라: 리팩터링, 테스트
-. 전체를 보라

(혹시 둘 사이의 차이점에 대해서 좀더 알고 싶으신 분은 Agile vs Lean Software Development를 참고하십시요.)


한편, 이 책의 전작에 해당하는 린 소프트웨어 개발 역시 8월말에 출간될 예정이니, 두 권 모두 함께 보시길 권장합니다.
사용자 삽입 이미지

:

남기룡 님께서 리팩토링 카달로그(Refactoring catalog)의 일부를 정리해주셨습니다.

영어 원문은 이곳에서 보실 수 있습니다: Refactorings in Alphabetical Order

:

id Software는 FPS 전문 개발사라는 선입견을 바꿀만한 Rage라는 새로운 타이틀을 선보였습니다.

그런데 그에 대한 최근 인터뷰 중에 Agile에 대한 대목이 있어서 인용합니다:
(Rage가 Oblivion처럼 Mission 기반으로 진행될 거라는 이야기를 나눈 후에)

Shack: 이런 새로운 게임플레이 방식과 함께 기획 프로세스에도 변화가 있습니까?

Tim Willits: 물론입니다. 우리가 한 것들 중의 하나는 프로덕션 파이프라인(production pipeline)을 변경시킨 것입니다. 우리는 Agile의 비중을 더 높히기 위해서 노력했습니다. 마일스톤을 Scrum으로 구성했고, 개발자들은 Scrum에 익숙해졌습니다. 예를 들어서, 레이싱과 관련된 사람들을 한데 모아서, Scrum을 실행했더니, 레이싱이 나왔죠.

출처:  id의 Tim Willits와 Todd Hollenshead가 Rage에 대해 이야기하다

얼마전에 해당 게임을 발표하면서 John Carmack이 "내 역할은 동료들이 작업할 도화지를 마련하는 것"이라고 말을 해서 혹시나 했는데, 역시나 Agile을 사용하고 있군요.

:

사용자 삽입 이미지

국제 소프트웨어 테스팅 컨퍼런스 2007
이 개최됩니다.

  • 일시: 2007년 10월 8일(월) ~ 11일(목)  [일정표]
  • 장소: 코엑스 컨퍼런스 센터 4층          [약도]

이 행사는 잘 모르지만, P-Camp의 한 축인 STEN에서 하는 것으로 봐서는 기대됩니다. 강연들 중에는 Tutorial의 Agile Test Management using Scrum이라는 강연이 눈에 띄는군요. 안그대로 Sprint 동안 QA 부서와 어떻게 일해야 할지를 고민하고 있던 참인데 말입니다.

개인적으로 품질보증(Quality Assurance)은 배급사들간의 비교 우위를 결정짓는 중요한 요소들 중의 하나가 될 것이라고 생각합니다. (그 외에는 고객관리(Customer Service), 운영(Operation) 및 제작관리(Production)을 들 수 있겠습니다. 전적으로 개인적인 생각입니다.)

국내 품질보증 부서에서 일하시는 분들은 물론, 개발자들도 많이 참석해서 보다 효과적인 테스트를 할 수 있게 되면 좋겠습니다.
:

Webzen의 Huxlely 개발에 참여하고 계신 (것으로 추정되는) twiny 님께서 Paper Burns: Game Design With Agile Methodologies의 후반부를 번역해주셨습니다:


참고로 Rory Mcguire는 High Moon Studios의 수석 기획자(Senior game designer)로, GDC 2007에서 애자일 게임 개발을 이용한 게임 기획 (Game Design in Agile Development)을 강연했습니다.

마지막으로 동료분께 번역을 부탁하고, 그 결과물을 공개해주신 twiny 님께 진심으로 감사를 드립니다.

:



애자일 게임 개발을 이용한 게임 기획
(Game Design in Agile Development)


...
Agile의 역사는 60년전으로 거슬러 올라갑니다. 좀더 자세히 말하자면 일본 캐논 카메라입니다. 당시 캐논은 심각한 재정난에 봉착해 있었죠. 그래서 회사는 기술자들과 영업사원들 및 생산직 근로자들을 한 곳에 몰아놓고는, "회사를 구할 신제품을 만들어라!"는 특명을 내렸습니다.
그에 따라, 제품 개발 전영역에 걸친 여러 사람들이 한 방에 매일 모여서, 이야기를 나누고, 브레인스토밍을 하고, 협력한 끝에, 마침내 회사를 구할 신제품을 만들어냈습니다.
...
High Moon Studios에서는 어떤 기능(feature)의 가치를 기획서가 아니라, [게임에 넣어서] 직접 화면으로 보고 평가합니다. 게임 개발자는 기획서를 파는 게 아니라, 게임을 팝니다. 그렇지 않습니까?
...
(애자일에서는) 프로세스와 프로젝트 관리 도구보다 사람들과 의사 소통을 더 중요시합니다. 이게 정확히 무슨 뜻인지 예를 들어서 설명해보죠.
엑셀 시트의 간트 차트(Gantt chart)에 기능 A가 40시간에 끝난다고 나온다고 합시다. 반면에 프로그래머에게 얼마나 걸려냐 물으니, "2주 정도 걸릴 것 같은데."라고 하는 겁니다.
이 경우에, 우리는 간트 차트보다는 프로그래머의 의견에 더 비중을 두며, 이것이 바로 프로세스와 프로젝트 관리 도구보다 사람들과 의사 소통을 더 중요시한다는 의미입니다.


GDC 2007에서 있었던 "애자일 게임 개발을 이용한 게임 기획(Game Design in Agile Development)"의 강연 녹음입니다. 애자일 게임 개발을 이용한 게임 기획(Game Design in Agile Development)의 슬라이드와 함께 보시면 더욱 좋습니다.

(안타깝지만 당연히도) 영어이고, MP3 Player에 넣어서 일하시거나 출퇴근할 때 들으시면 좋습니다.

10Mb 이상을 올릴 수 없어서 두 개로 쪼개서 올립니다.
:



애자일 게임 개발(Agile Game Development) 강연 녹음

한 가지 더 말씀드리고 싶은 게 있다면, 애자일 게임 개발은 게임을 만드는 방법이 아니라, 그저 '프로세스'에 지나지 않는다는 것입니다. (중략) 끝내주는 게임을 만드는 최소한의 조건은 [끝내주는 프로세스가 아니라] 끝내주는 팀을 만드는 겁니다. (중략) 더  좋은 프로세스가 더 좋은 게임을 만든다는 걸 말하려는 게 아닙니다. 그저 좋은 팀이 [더 좋은 결과를 낼 수 있도록] 돕는 것뿐이죠.
(The other thing I'd like to mention as well, I'm not apealing this is the way to make games. This is a just a process. ... Really bottom line is a great game makes a great game. ...  It's not about which better process gonna produce a better game. This is just helping great teams.)



GDC 2007에서 있었던 "애자일 게임 개발(Agile Game Development)"의 강연 녹음입니다. 애자일 게임 개발(Agile Game Development)의 슬라이드와 함께 보시면 더욱 좋습니다.

(당연하지만) 영어이고, MP3 Player에 넣어서 일하시거나 출퇴근할 때 들으시면 좋습니다.

10Mb 이상을 올릴 수 없어서 두 개로 쪼개서 올립니다.
:



바쁠수록 돌아가라:
테스트 주도 개발을 이용해 더 좋은 게임 만들기

(Backwards Is Forward: Making Better Games With TDD)



강연 슬라이드 내려받기
(PPT의 슬라이드 노트를 잊지 말고 챙겨 보시길 권장합니다.)
'강연 노트' 살펴보기
'소스 코드 예제'
내려받기
..

..

박일 님께서 GDC 2006에서 발표된 "바쁠수록 돌아가라: 테스트-주도 개발을 이용해 더 좋은 게임 만들기(Backwards Is Forward: Making Better Games With TDD)"를 번역해 주셨습니다.

단, 슬라이드는 GDC 2006보다 조금 더 보강된 Game Connect 2006의 "게임을 위한 테스트 주도 개발: 무엇을, 왜 그리고 어떻게(Test Driven Development For Games: What, Why And How)"로 교체되었습니다.

이전의 실전 애자일 게임 개발보다 테스트-주도 개발를 더 자세하게 다루고 있습니다.

번역에 힘써주신 박일 님께 다시 한 번 감사를 드립니다.

:

애자일 게임 개발: 최전선의 이야기
(Agile Game Development:Tales from the Trenches)



(아래의 첨부 파일를 받으시길 권합니다.
위의 미리보기에서는 에니메이션이나 슬라이드 노트를 볼 수 없습니다.)
영어 원문

..
..
MS Gamefest 2006의 에서 있었던 '애자일 게임 개발: 최전선의 이야기(Agile Game Development:Tales from the Trenches)'의 한글 번역입니다:
  • Agile Development
  • 조직 차원의 Agile 기법
  • Agile 기법을 이용한 프로그래밍
  • 우리가 얻은 교훈들

(강연자인 Noel Llopis 씨의 허가를 받고 번역하였습니다.)

마지막으로 여러분의
소감, 비판, 경험 혹은 계획을 Trackback이나 댓글로 달아주시면 정말 감사하겠습니다.

: