애자일로 게임 개발하기

[개발]
'더게임스' 게임 신문에 썼던 컬럼...


more..

2009/02/06 23:25 2009/02/06 23:25

이 글의 트랙백 주소 :: http://mypage.sarang.net/tt/trackback/277

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::

[로그인][오픈아이디란?]

우리팀의 일정 추정 하기

[프로젝트]

회의에서 제일 어려운 것 중에 하나가 일정 추정하는 회의인데.. 이제 어느 정도 최적화가 된 듯하다. 일정 회의중 백미는 역시나 플래닝 포커 게임하는 시간... 모두 똑같은 값의 추정치를 내놓으면 사람들이 '올킬~' 하며 좋아라 한다.


사용자 삽입 이미지

다만 아쉬운 건 뽀대나는 카드가 아니라 A4 찢어서 만든 종이라는거...ㅠ.ㅠ
2009/01/22 19:38 2009/01/22 19:38

이 글의 트랙백 주소 :: http://mypage.sarang.net/tt/trackback/275

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::

  1. 외계고양이 [2009/01/24 16:04]  [댓글주소]  [수정/삭제]  [댓글쓰기]

    플래닝 포커게임은 애자일 방법론 인가요?? 재미있을 것 같네요 :)

    • 버드 [2009/01/29 01:15]  [댓글주소]  [수정/삭제]

      네.. 애자일 방법론에서 추정할 때 사용하는 방법중 하나입니다. 실제로 해보면 신나고 재밌습니다. :)

[로그인][오픈아이디란?]

칼 위거스 방법론(상대적인 가중치를 사용한 우선순위 결정 방법)

[개발]
각각의 기능을 그것이 구현되었을 경우 발생할 이득의 관점에서 평가하고, 구현되지 않았을 경우 야기될 수 있는 손해 관점에서도 평가한다. 팀원들은 모두 각자 각각의 기능별로 이득과 손실에 대한 상대적인 평가치를 1점에서 9점 사이의 점수로 매기고 그 값을 모두 합산한다.


기능
상대적 이득상대적 손해가치가치 %추정치비용 %우선순위
경기 결과를 그래프 형태로 시각화하는 기능
8
6
14
42
32
53
0.79
사진을 업로드할 수 있게 하는 기능
9
2
11
33
21
34
0.97
선수 신상 정보 입력 기능
3
5
8
25
8
13
1.92
합계
20
13
33
100
61
100



위 표를 예로 들면, 경기 결과를 그래프 형태로 시각화하는 가능을 구현했을 때 발생하는 이득은 8점으로 계산되었다. 사진을 업로드하는 기능에 비해서는 약간 적은 이득을 갖는 것으로 평가되었지만, 선수들의 신상 정보를 입력할 수 있게 해 주는 기능에 비해서는 높은 이득을 가지는 것으로 평가되었다. 상대적인 손해 관점에서 보면, 사진 업로드 기능은 구현하지 않더라도 손해는 거의 없다. 한편, 경기 결과를 그래프 형태로 시각화 하는 기능이나 신상정보 입력 기능 같은 것들은 구현되지 않을 경우 손해가 제법 크다.

각각의 기능에 대해 상대적 이득 점수와 손해 점수를 합산하여 가치 난에 기입한다. 필요하다면 이득 점수와 손해 점수에 가중치를 적용할 수도 있다. 가치 난에 기입된 점수들을 점부 합하면(위 표의 경우 33) 모든 기능들을 전부 구현할 경우 얻을 수 있는 가치의 총합을 구할 수 있다. 가치% 란에는 각 기능의 가치 난에 기입된 값을 그 총합으로 나눈 값에 100을 곱하여 넣는데, 이 값으로 각 기능이 전체 가치에 기여하는 정도를 알 수 있다.

추정치라는 이름의 열에는 스토리 점수나 이상적 작업일 단위로 평가한 추정치를 기입한다. 여기에 기입된 값을 추정치 총합(위 표의 경우 61)으로 나누어 100을 곱한 값을 비용%란에 기입한다.

마지막 열인 우선순위 부분에는 가치%열에 기입된 값을 비용%열에 기입된 값으로 나눈 결과를 기록한다. 그 값이 클수록 높은 우선순위를 갖게 된다. 구현에 투자하는 노력 대비 가치가 더 큰 것으로 평가되는 것이기 때문이다. 위 표의 경우, 신상 정보 입력 기능이 가장 높은 우선순위를 갖는 것으로 나와 있다. 가치 측면으로 보면 경기 결과를 그래프 형태로 시각화 하는 기능에 비해 1/2 정도의 가치밖에는 안 되지만, 비용 면에서 보면 1/4이다. 그렇기 때문에 가장 높은 우선순위를 가지게 된 것이다. 비용 대비 가치 비율이 가장 좋기 때문이다.

----

이 방법으로 우선순위를 매겨보니 확실히 좀 더 객관적으로 우선순위를 정할 수 있게 된 것 같다. 개인적으로 1순위라고 생각했던 것이 최하위권으로 랭크되고 실제로 개발하는 동안 최하위권이 합리적이었던 경우도 있었다. 우선순위 정하는 방법도 간단해 한 달 일정 정도의 기능들의 우선순위를 정하는데 30분도 안걸린다. (위 표를 엑셀로 만들어놓고 쓰면 좋음)

우선순위를 결정하는 좀 더 자세한 내용을 알고 싶다면 다음 책을 추천한다. 위 내용도 거의 이 책을 보고 베꼈음(...)

사용자 삽입 이미지



2008/12/28 13:49 2008/12/28 13:49

이 글의 트랙백 주소 :: http://mypage.sarang.net/tt/trackback/271

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::

[로그인][오픈아이디란?]

애자일 게임 개발 도입하기 - KGC2008

[개발]
KGC2008 세션중 하나인 '애자일 게임 개발 도입하기' 월드까페에서 하고 싶은 얘기들 정리하면서 최종적으로 남는 몇가지 키워드들...

  • 결과를 위해 일하기
  • 시스템보다는 사람에 집중하기
  • 우선 보여주기
  • 천천히, 지속적으로..
  • 팀에서 가장 부족한 부분부터 실행..~

오늘 월드 카페 기대됩니다..ㅎㅎ

2008/11/14 09:22 2008/11/14 09:22

이 글의 트랙백 주소 :: http://mypage.sarang.net/tt/trackback/268

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::

[로그인][오픈아이디란?]

2007년 이후 변화된 개발 프로세스..

[프로젝트]
예전에 몇차례 우리팀의 개발 프로세스에 대해서 글을 썼었는데 그때 이 후 변화한 개발 프로세스에 대해서 간단하게나마 적어보고자 한다. 사실 그 후에 프로세스가 크게 달라진 게 없고, 초기에 많은 도전과 실험이 있었던 것에 비해 지금은 많이 안정화되었기 때문에 딱히 블로그에 적을게 별로 없었다. 우리 팀이 어떻게 돌아가고있나 궁금해하시는 분들도 있고 또 낼모레 KGC도 있고 해서 간단하게나마 다시 한번 작년 이후 바뀐 것들 위주로 적어본다.

예전엔 이런 글들을 올렸었다.

○ 스크럼
  • 크게 바뀐 것 없이 잘 운영되고 있다.
  • 여전히 제일 잘 지켜지고 있는 아침의 일일 스크럼 회의..
  • 퇴근 무렵 않은 자리에서 5분 정도 짧게 그날을 회고하면서 정리하는 회의를 갖고 있다. 특별한 이야기는 별로 없고 그날 무슨 일을 했나 정도 이야기한다. 이 회의로 뭔가 얻는다기보다 업무를 다같이 마무리한다는 데 의미가 있는듯..
  • 얼마 전부터 스프린트 주기가 한달에서 2주로 짧아졌다. 처음엔 픽스안된 기획이 많아 한달에서 2주로 줄인건데 하다보니 이게 더 우리한테 잘 맞는 것 같다. 좀 더 타이트한 느낌.. 일정 추정도 훨씬 수월하다.
  • 정보방열판도 예전이나 지금이나 달라진 게 별로 없다.
  • 추정 능력도 조금씩이지만 좋아지고 있다. 최근엔 처음으로 포커 플래닝을 해봤는데 일단 재밌고, 각 작업별로 각각 팀원들끼리 의견을 많이 나누니까 훨씬 현실적으로 추정하게 되는 것 같다.
  • 우선 순위 할당도 '불확실성과 화해하는 프로젝트 추정과 계획'에 나온 칼 위거스의 방법을 이번 스프린트 때 사용해 봤는데 객관적이면서 현실적인 느낌? 마음 속으로 생각했던 우선 순위와 많이 달라 내심 놀랬다. 이게 바로 이상과 현실의 괴리인듯.. ㅠ.ㅠ
  • 스프린트 마지막 평가는 제대로 이뤄지지 않고 있다. 결과가 좋지 않아도 다음에 잘 하면 되지.. 이런 느낌?
  • 긴 회의 시간에 대해선 회의적인 시각이 많다. 전체 회의 시간을 따져보면 스프린트(2주) 처음 추정하면서 4시간, 스프린트 마지막 평가 1~2시간, 첫 이터레이션(1주일 주기) 정리 1시간, 매일 아침에 10분, 오후에 5분.. 어떻게든 각 회의 시간을 줄이려고 하는데 쉽지가 않다.

○ 프로그래밍
  • 현재까지 만들어진 유닛 테스트 갯수는 1100여개... 이제 좀 보호막으로서의 역할을 하고 있다는 느낌이 든다. 그래도 여전히 버그는 많은 편이다..ㅠ.ㅠ 그나마 위안이 되는 것은 버그가 주로 테스트 코드가 없는 부분에서 난다는 것.. ㅠ.ㅠ
  • 예전엔 서버만 유닛 테스트를 만들었는데, 클라이언트도 적극적으로 만들기 시작했고 얼마 전부터는 데이터베이스도 유닛 테스트를 만들기 시작했다.
  • TDD는 하는 사람 있고, 안하는 사람 있고 제각각.. 안하는 사람이 더 많다.
  • 페어 프로그래밍은 거의 사용하지 않는다. 모두들 페어 프로그래밍의 장점은 잘 알고 있지만 몸에 베이기가 쉽지 않다. 꼭 필요할 때에만 페어 프로그래밍을 한다.
  • 많은 공을 들인 CruiseControl.Net을 이용한 자동화 테스트나 빌드 자동화도 잘 돌아가고 있다.

○ 기타
  • 악의 축이나 지각 벌칙 등 팀원을 괴롭히는 요소는 모두 사라졌다. 이유는 이제 모두들 잘지켜지기 때문...
  • 점심 시간에 서적 스터디는 꾸준히 진행중이다. 모두들 만족도가 높은 편.. 다만 부실할 수밖에 없는 먹거리 문제는 계속해서 고민꺼리..
  • 코딩 도장도 운영했었는데 어느 순간 흐지부지됬다. 점심 시간에 스터디도 병행하면서 코딩 도장까지 하려니 지치더라는...
  • 새로 들어온 팀원에게 팀의 개발 문화나 테스트 코드를 만들거나 하는 것들을 이해시키기가 쉽지 않다. 요즘 제일 큰 고민거리중의 하나..OTL
  • 만약 다른 팀에서 애자일을 도입한다고 할 때 제일 추천하고 싶은 프랙티스는 아침 일일 회의와 빌드 및 테스트 자동화, 유닛 테스트 만들기이다. 다시 얘기해서 이 세가지가 우리 팀에 제일 큰 도움이 되었음..

사용자 삽입 이미지
별로 바뀐 것이 없는 우리 정보방열판..=_=
2008/11/12 01:42 2008/11/12 01:42

이 글의 트랙백 주소 :: http://mypage.sarang.net/tt/trackback/267

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::

  1. 비밀방문자 [2008/11/12 10:10]  [댓글주소]  [수정/삭제]  [댓글쓰기]

    관리자만 볼 수 있는 댓글입니다.

    • 버드 [2008/11/12 14:07]  [댓글주소]  [수정/삭제]

      저도 그 책 재밌게 봤습니다. :)
      저도 가장 문화를 빨리 전파시키는 것은 직접 보여주는 것이고 또 페어 프로그래밍이 가장 효과적일 것이라고 생각합니다. 다만 또 그게 페어 프로그래밍 자체에 거부감이 있으면 또 그렇거든요..^^

  2. PizaNiko [2008/11/12 11:21]  [댓글주소]  [수정/삭제]  [댓글쓰기]

    몇가지 궁금한 것이 있어 질문드립니다.

    1. 일일 스크럼 회의에 기획팀도 참가하나요?
    2. 새로운 스토리가 작업 대기열로 들어가는 프로세스가 어떻게 되나요? (특히 스프린트 기간 중간에 요청이 들어왔을 때 어떤 방식으로 처리 하시는지. 예를들어 퍼블리셔에서 아 우리 그런거 몰라야 얼른 XXX해주세요 할때)

    • 버드 [2008/11/12 14:12]  [댓글주소]  [수정/삭제]

      1. 기획팀에서 적극적으로 참가는 하고 있지 않습니다. 다만 아침 일일 회의때 기획팀 대표 한분이 참석해 주시고요.
      2. 일단 우선순위가 높아 이번 스프린트 때 작업해야 할 것 같은 것들은 작업이 생기는 그때그때 추가하고요. 매주 이터레이션 시작할 때 우선 순위를 봐서 현실적으로 작업이 불가능할 것 같은 것들은 일정 버퍼에 넣습니다. 버퍼에 넣었다가 여유가 있으면 다시 꺼내오고 이번 스프린트 때 작업이 불가능하면 다음 스프린트로 연기하구요.

  3. 헝그리맨 [2008/12/15 19:07]  [댓글주소]  [수정/삭제]  [댓글쓰기]

    재미있게 잘 보고 갑니다. 요즘 "Head First Software Development" 책을 보고 있는데, 신입개발자들에게
    개념주입하기에 딱 좋은 책이라고 느껴져서 추천드립니다. ^^

[로그인][오픈아이디란?]