때때로 의사 결정 시점은 빠를 수록 좋다

전통적으로 비용을 유지한 채 의사결정 시점을 늦출 수 있으면 좋다고 알려져 있지만 그렇지 않을 수도 있습니다.

때때로 의사 결정 시점은 빠를 수록 좋다

‘지금은 판단하기 어려우니 다음 달 말에 다시 한 번 모여서 판단하자' 게임을 만들어 오며 회의 중 이런 말을 여러 번 들어 왔습니다. 이 말을 하는 시점에는 보통 이렇게 말할 수밖에 없는 상황입니다. 보통 특정 기능의 마일스톤 기간 내 개발 가능 여부를 판단할 때 주로 발행하는데 일단 남은 기간에 비해 기능의 복잡도나 다른 기능에 대한 의존성이 높아 함부로 개발할 수 있다고 말할 수 없습니ㅏㄷ. 물론 이런 상황에서 정확한 답변을 종용하면 ‘안된다’는 답변을 들을 수 있기는 하지만 이 역시 답변을 들어야 하는 입장에서 원하는 답변은 아닙니다.

게임 소프트웨어 개발을 여러 번 반복해도 여전히 우리가 기간 내에 지불할 수 있는 비용에 맞춘 마일스톤 계획을 수립하기는 쉽지 않습니다. 비슷한 게임 소프트웨어를 개발하고 있지만 이번 프로젝트는 지난 프로젝트와 요구사항이 미묘하게 다르고 기반도 미묘하게 다르며 개발하는 사람들은 이전과 완전히 다릅니다. 때문에 초반에는 각자가 협업해 낼 수 있는 퍼포먼스를 잘 모르기 때문에 팀이 낼 수 있는 퍼포먼스에 맞춘 마일스톤 계획을 수립하기 어렵습니다. 팀의 퍼포먼스를 어느 정도 예측할 수 있게 되면 이번에는 이전과 다른 개발 기반 때문에 비용을 예측하기 어렵습니다. 새로운 기반에 익숙해진 팀의 퍼포먼스를 예측할 수 있게 되면 이번에는 이전과 비슷하지만 또 미묘하게 다른 요구사항 때문에 비용을 예측하기 어려워 집니다. 결국 소프트웨어 개발 주기 전체에 걸쳐 팀이 낼 수 있는 퍼포먼스에 맞춘 마일스톤 계획 수립은 거의, 항상 실패합니다.

이제 같은 팀이 프로젝트를 수행하며 의미 있는 빌드를 내기 시작한 지도 시간이 꽤 지났지만 여전히 마일스톤 목표에 포함된 요구사항의 개발 가능 여부를 미리 확정하기는 쉽지 않습니다. 이전 마일스톤에서 캐릭터는 무기 외에 스킬을 사용할 수 있었습니다. 미리 할당한 키를 누르면 수류탄을 던질 수 있었고 무기에 따라 모든 탄을 한 번에 뿌려 넓은 범위에 걸친 대미지를 주거나 근거리 무기를 들고 회전하며 주변에 대미지를 줄 수도 있었습니다. 만약 전통적인 개발팀이었다면 이런 스킬이 게임 상에서 개체들 끼리 동기화 되는 거의 모든 기능의 근본이라는 사실을 알고 이에 맞는 구현을 준비했을 겁니다. 전통적인 MMO 프로젝트에서 스킬은 사실 게임의 전부라고 해도 틀리지 않습니다. 근거리 무기로 몬스터를 평소와는 다른 애니메이션으로 강하게 공격하는 행동부터 포션을 사용하면 체력이 회복되는 동작에 이르기까지 게임 상에서 다른 사람들 사이에 동기화 되어야 하는 기능 거의 대부분이 스킬에 기반해 만들어집니다. 때문에 스킬 시스템은 항상 다양한 확장을 고려해 개발되고 이에 따라 개발 비용이 높습니다.