마감. 이런 분위기를 그리워 했던 것인 지도.
지난 보고 준비를 계속해 슬슬 마무리 했습니다. 이제 남은 보고 과정이 잘 진행되어 우리들이 예상한 것 만큼의 런웨이를 확보해 앞으로 나아갈 기회를 얻거나 그렇지 못해 어려운 상황에 빠지거나의 기로에 서 있습니다. 종종 상황을 부정적으로 바라보는 경향이 있는 제 입장에서는 우리들의 준비가 과연 사람들의 주목과 신뢰를 이끌어낼 수 있을지 걱정이 큽니다. 다른 한 편으로는 미리 우리들의 상황을 본 분들로부터의 평가가 그리 나쁜 것 같아 보이지는 않습니다. 하지만 저는 이미 지옥의 걱정 모드에 들어갔고 나쁘지 않은 평을 얻고 있다는 이야기는 한 쪽 귀로 들어와 순식간에 다른 쪽 귀로 빠져나가 버립니다.
게임 개발에 참여하며 항상 마감은 별로 좋은 이미지가 아니었습니다. 마일스톤 목표는 개발하며 분명히 맞닥뜨릴 문제를 해결하기 위해 연구할 시간을 고려하지 않은 채 수립되고 개발이 진행 되어 가며 서로 다른 기능이 통합되어 생긴 새로운 문제점은 이를 감안해 계획을 수정하기에는 일정이 너무 빡빡해 한 가지 일정을 조정하려면 아주 많은 다른 일정에 영향을 줘야 합니다. 그래서 문제가 있음을 알고 있지만 적당히 문제가 쉽사리 드러나지 않게 하는 선에서 적당히 마무리하곤 하는데 이런 의사 결정은 항상 좋지 않은 뒷맛을 남깁니다. 이렇게 적당히 마무리한 문제는 시간이 지나면 반드시 훨씬 더 비싼 청구서를 들고 찾아오기 때문입니다.
또한 마일스톤이 거의 끝나 갈 때가 된 다음에야 빌드를 살펴본 고위 의사결정자들이 그때서야 나타나 우리들이 이미 알고 있는 문제점을 지적하며 우선순위를 끌어올리거나 마일스톤 계획 상에 서로 구분한 기능의 경계선을 인식하지 않았거나 의도적으로 무시한 채 새로운 요구사항을 이번 마일스톤 안에 밀어 넣으려는 시도가 일어납니다. 언제나 겪어 온 일이지만 이번 마일스톤에도 달라지지 않았습니다. 예정에 없던 기능을 급히 작성한 명세는 딱 봐도 엉성해 보이지만 고위 의사결정자가 가장 높은 우선순위로 요구한 이번 마일스톤의 목표와는 별 관계가 없는 기능을 급하게 만들어내 보고에 예쁜 그림을 만들어내는 개발에 집중합니다. 극심한 초과근무를 반복해 사기는 떨어지고 빌드의 결함률은 줄어들 생각을 하지 않습니다.
이전까지는 그랬습니다. 이전에 경험한 모든 프로젝트에서 마감은 항상 이런 이미지였습니다. 분명 시작할 때 적당히 계획을 세웠지만 계획은 항상 지켜지지 않는데 원인은 우리가 어쩌면 통제할 수 있었을지도 모르는 곳으로부터 나왔습니다. 지구가 태양 주변을 공전하거나 대기가 순환하며 예측 불가능한 결과를 일으키는 것은 우리가 통제할 수 없지만 서로 다른 기능이 통합되며 문제를 일으키는 상황을 예상해 계획에 반영하거나 막판에 나온 마일스톤 관점에서는 별로 중요하지 않은 기능의 등장을 고려해 일정을 수립할 수도 있었겠지만 이런 생각은 오직 사람들의 머릿속과 술자리에만 등장할 뿐 실행된 적은 없었습니다.
한편 이번에는 이런 상황을 조금 더 통제할 수 있었다고 생각합니다. 물론 이번에도 소프트웨어를 개발하는데 참여하는 인간들의 완벽하지 못함은 서로 다른 기능이 한 빌드에 통합되어 상호작용을 일으키며 발생 시키는 오동작을 예측하지 못했고 한 편으로는 황당하고 또 다른 한 편으로는 웃긴 온갖 문제를 일으켰습니다. 이런 통합 단계에서의 문제 해결에 필요한 시간을 계획 수립에 충분히 반영하지는 못해 결국 초과근무를 피할 수 없었지만 밝은 면을 보면 마일스톤 후반에서야 빌드에 대한 낮은 이해도와 기능 간의 경계선을 감안하지 않은 이상한 요구사항이 나타나지 않도록 했습니다. 그래서 빌드 마감은 이전의 경험에 비해 평화로운 편이었고 또 사기가 떨어지지도 않았다고 생각합니다.
마감 날, 이미 여러 번 테스트를 통해 치명적인 결함을 대부분 해결했지만 이번에도 막판에 서로 다른 기능이 빌드에 통합되면서 이번에 본 적 없는 문제가 일어났고 문제를 해결하는데 엔지니어들이 달라붙어 있고 몇몇 사람들이 대기하며 테스트를 준비하고 있었습니다. 시간은 저녁을 지나 밤으로 가고 빌드머신은 계속되는 빌드에 거의 V1에 다다랐으며 삼삼오오 모니터를 가운데 두고 모여 앉아 커밋 로그와 코드를 가리키며 대화를 나누고 있습니다. 그러다가 누군가 ‘짝!’ 하고 박수를 치고 ‘이거네!’ 하며 원인을 찾아내고 그 자리에서 빌드해 동작을 확인하고 코드를 커밋해 빌드머신을 이륙 시키며 다음 테스트를 위해 각자 대기하며 하던 사사로운 행동을 멈추고 자세롤 고쳐 앉으며 빌드가 배포되기를 기다리는 분위기는 오랜만에 마감이 이전에 경험하던 사기가 낮고 또 무기력한 그런 느낌과는 무척 다르게 느껴졌습니다.
마감. 이런 분위기를 그리워 했던 것인지도 모르겠습니다.
이번 주에는 이런 다섯 가지 생각을 해봤습니다.
마감은 끝났지만 여전히 그동안 준비한 빌드를 실제로 보고할 일이 남았습니다. 이전 같으면 직속 임원 분들이나 대표 수준에 보고하면 됐지만 이번에는 서로 다른 여러 주체에 보고해야 해서 보고에 소요되는 기간이 짧지 않습니다. 부디 나름 즐겁게 개발하고 있으니 이를 계속해 의미 있는 결과를 만들 기회를 얻을 수 있으면 좋겠습니다.