일을 하다보면 가끔...... 아니다 솔직하게 말하자. 아주 자주! 종종! 이 일이 왜 이렇게까지 왔을까 싶을 때가 있다.
오늘이 그렇다. 시작은 언제나 작다. 사소한 기능 하나 추가. 사소한 것 하나 추가하려고 어마어마하게 많은 코딩을 하고 많은 버그를 만들어내게되고 결국 개발 완료시간까지 못 지키게 만들어 버린다.
"길드리스트에서 유저아이디를 터치하면 세부 정보를 보여주는 기능을 추가하려고 하는데 시간이 얼마나 걸릴까요?"
"뭐 이미 친구리스트에서도 비슷한 기능이 있으니까 3일정도면 될 것 같은데요."
"네 그럼 개발 시작해주세요. 티켓 만들어서 보낼께요."
여기까지는 참 부드럽고 자연스럽다.
기획문서보다 개발을 먼저 시작한 그 기능 초기 설계가 끝나서 코딩을 시작할 때 쯤 기획문서가 도착한다. 그리고 그 기획문서를 보면 아주 작게 쓰여져 있고 작게 그려져 있지만 정말 사소한 하나때문에 심장이 덜컥 내려앉는다.
음...
"게디님. 쓰신 문서 봤는데요."
기획서를 만든 게디님 자리에 기획문서를 들고 조심스럽게 옆에 앉았다.
"네. 친구리스트 기능하고 똑같이 만들었는데요."
"음.... 그게 문제인데 세부 정보 보기를 하면 이 유저가 어느 지역에 있는지 실시간으로 표시해주게 되어 있잖아요. 이게 꼭 필요한가요?"
"네. 그거 필요해요."
"음.... 그래요? 네 알겠습니다."
대화하면서 ‘음...’이 많을때는 ‘지금 프로그래머에게는 참 곤란한 상황이 되어버렸습니다.’라는 긴 문장이 숨어있다.
캐릭터의 세부 정보를 표시하는 건 데이터베이스에 저장된 정보를 불러오기만 하면 된다. 데이터의 양이 좀 많을 수는 있지만 그건 프로그래머가 알아서 처리하면 되는 것이다. 하.지.만 '실시간'으로 현재 있는 위치를 표시하려고 하면 이야기 복잡해진다.
요즘같이 분산서버로 지역처리를 하고 있으면 이 유저가 어디에 있는지 찾으려면 모든서버에 물어봐야 한다. 내가 어떤 게임을 만드느냐에 따라서 전체 유저들이 뭘 하고 있는지 수집하는 서버가 있을 수도 있었겠지만 MMORPG처럼 동시에 접속하는 인원이 정말 많고 또 그 안에서 해야 하는 것들이 정말 많은 경우에는 "한.명"의 유저가 어디에 있는지 종합해서 가지고 있지 않다.
요즘에는 그나마 Redis 캐시 DB로 저런 처리를 꽤 능숙하게 하긴 하지만 그것도 이미 내 게임에서 저 Redis 를 연결해 놨어야 하는 것이고 아무것도 해 놓지 않은 나는 음.... 이게... 언제 끝날지 예측할 수 없는 일이 되어버린다.
개발 기간을 늘이면 해결되는 것이겠지만 그게 상당히 곤란해진게
기획문서가 나온다.
문서 확인을 한다.
개발 일자를 산출한다.
이런 표준 순서로 진행했으면 ‘두달 걸려요.’라고 미리 이야기를 했겠지만 이미 3일이라고 이야기를 해 버렸다.
말로 개발 내용을 듣는다.
프로그래밍을 시작한다.
개발 일자를 산출한다.
기획문서가 나온다.
문서 확인을 한다.
시작이 기획서가 아니라 “말” 이라면높은 확율로 이런 사단이 난다는 것을 알고 있었으면서 또!!!
들쑤시는 것
"하아. 미치겠네."
옥상에 올라가서 담배를 피면서 나도 모르게 하늘을 향해 한 마디 했는데 목소리가 너무 크게 나왔다.
"넌 여기서 볼 때마다 미치겠다고 하더라. 언제 미치는거냐."
내가 이렇게 하늘보면서 괴로워하면 꼭 뒤에서 귀신같이 나타나시는 PD.
"담배필 때 추임새예요. 담배 맛 좋아지게 하는."
"웃기네. 표정은 그게 아니구만. 뭐가 문제야?"
"그게... "
PD한테는 괜히 말 돌리며 버텨봐야 소용없다. 궁금해한 것을 결국 알아내버리는 저 성격때문에 PD까지 바득바득 올라간게 분명하다.
이러니 저러니 설명을 한 참 했다.
"넌 그러니까 저 실시간 위치 알려주는 기능 추가하면 두달짜리라는 거지? 그리고 그걸 빼면 이틀이고?"
"네 맞아요."
"넌 그러면 이게 왜 이렇게 기간 차이가 크게 나는지 나한테 메일로 보내줘. 그리고 기획팀에 확인은 내가 해볼께. 저 기능이 왜 필요한건지."
이게 흔히 이야기하는 사소한 것으로 팀 들쑤시는 일이다.
실무자끼리 이야기해서 그 ‘실시간 위치 알려주는 기능’을 빼면 쉽게 해결될 수 있다. 하지만 문서가 만들어져 있고 + 개발이 시작된 일은 실무자의 협상으로 해결되기 어렵다. 이미 보고가 끝난 일이라는 것이다. 이 상황을 바꾸는 것은 결정권을 가진 사람들이 된다.
결국,
“섭자님. 잠깐 이야기 해요.”
예정된 결말이라고나 할까.
“시간이 오래 걸리는 거였으면 미리 이야기해줬으면 좋잖아요.”
이 말을 하는 게디님도 알고 나도 알고 모두 알고 있다. 미리 이야기하는 것도 불가능하고 미리 이야기 했어도 이런 문제가 생겼을 것이라는 것을. 하지만 이렇게 말 할 수 밖에 없다는 것도 알고 있다. 그래서 이 말은 문장 그대로 해석하면 안된다.
“그러게요. 저도 그렇게 복잡한지 몰랐다니까요. 우리 게임이 들춰봐야 알잖아요”
몰랐던 것이 아니라는 것을 우리 둘 다 알고 있지만 이렇게 웃고 끝내는 것이 가장 해피한 엔딩.
결론은 하나이다.
조금 수고스럽긴 하겠지만 기획서나 작업티켓 하나 만들어서 보내주시면 안될까요? 그것 보고 일정을 잡아볼께요.
이 한마디를 반드시 해야한다.