[같이 보기] 이번 사태가 개발 능력 부족으로 인한 게 아닌 이유


실제 대규모 개발을 해보면은, 구현해야 할 커다란 기능이 있을 때 구성요소를 깔끔하게 모듈화하는 건 생각보다 귀찮은 일임.


이게 어려워서 못하는 일이란 게 아니라, 수고가 더 많이 들어간다는 뜻이야. 단순히 생각해서 만들어야 할 구성요소의 '개수'가 늘어난다는 건데, 그 말은 설계해야 할 인터페이스의 수가 몇 배로 늘어난다는 거거든.

물론 개발자들의 격언 중에 앞으로의 유지보수를 생각해서 기능을 모듈화해 구현하라는 말이 있긴 한데, 이거는 보통 사용하는 기술 스택이 다른 경우야. 예를 들어서 GUI와 코어 (실제 기능)을 분리한다거나, DB와 컨텐츠 서버를 분리한다거나 같은 거. 이런 거는 디버깅할 때 문제 범위를 좁혀주기 위해서 반드시 지켜야 할 격언이고, 대부분의 제정신인 개발자들은 따로 말 안 해줘도 알아서 잘 구현할 거야.


그런데, 기획자의 요구사항이라는 건 개발자가 함부로 모듈화할 수 있는 게 아냐. 예전 글에도 말했지만 개발자는 이런 판단을 할 수도 없고 해서도 안 돼. 개발자의 역할은 기술적인 측면을 고려하면서 기획자의 의도를 최대한 충실하게 구현하는 거니까.


예를 들어서 서비스 중간에 "아 스즈미 스킬 지금 와서 보니까 성능이 너무 답이 없는데 섬광탄 말고 백린탄으로 바꿔볼까?" 라고 얘기가 나왔다고 하자. 근데 개발팀한테 문의했더니 "학생의 스킬은 그렇게 편하게 바꿔끼울 수 있는 게 아니에요" 라고 답변이 왔어. 이런 상황에서 개발자가 학생들의 스킬을 미리 모듈화하지 않았다고 비난하는 건 개발자 입장에선 굉장히 억울한 일이야.

만약 이런 요구를 할 거였으면 기획자가 "혹시 나중에 이런 거 바꿔야 할 수도 있으니 당장 구현은 아니더라도 대비를 해주실 수 있을까요?" 라고 얘기를 해줬어야 해. 기획자가 요구한 내용을 생깔 수 있는 개발자는 없어. 그러니까 개발자가 미리 이런 요구를 했었다면은 개발자는 분명히 투덜대면서도 구현을 해줬을 거란 말이지. 반대로 "이런 요구는 없었지만 학생의 스킬이 서비스 중간에 바뀔 수도 있으니 스킬 하나하나를 모듈화 해야겠다"면서 요구사항에 없던 기능을 구현하려다가 생기는 모든 문제까지 책임질 개발자가 있을까?


대략 요약하자면, 개발자 입장에서는 가뜩이나 스케줄에 쫓기는 마당에 따로 요구가 없다면 굳이 요구사항을 직접 분석해서 모듈화할 동기가 딱히 없다는 거임. 이거는 개발자가 할 수 있는 영역이 아니고, 만약에 이런 걸 변경할 수 있어야 할 거 같다 생각했으면 기획자가 미리 개발팀에 귀띔해줬어야 한다는 거지.




위 내용을 이번 사태에 대입하자면, 개발자들이 받은 전술대항전 구현 요구사항에는 <지형>과 <유저 배치>를 유동적으로 구성할 수 있어야 한다는 내용이 없었을 거야. 요구받지 않은 사항을 구현할 이유는 없으니 구현된 전술대항전은 이 둘을 분리하기 힘든 구조가 됐을 수도 있어.


여기서 내가 생각하는 가장 큰 문제는, 이 문제가 7달 동안이나 방치됐다는 거야. 내가 맨 위에서도 말했지만 모듈화라는 건 귀찮은 일이지 어려운 일은 아냐. 새로운 기능이나 알고리즘을 구현하는 게 아니니까, 원래 기능을 구현할 능력이 있는 개발자에게 코드의 구조를 개선하는 건 구현과 테스트에 시간이 다소 걸릴지언정 불가능한 일은 아니란 거지. 7달이면 솔직히 개발자에게 "우선순위가 조금 밀려도 좋으니 구조 개선을 해주세요" 라고 알려줬으면 충분히 구현했을 시간이야. 사실 시즌 3에서 어차피 유저 배치 방식이 바뀐 거 생각해 보면, 이때라도 개발자에게 요구사항을 전달했으면 시즌 3을 구현하며 유저 배치 방식을 모듈화시킨 새로운 시스템을 진작에 완성시켰을지도 모르는 일이지.


근데 우리의 기획자님은 이 문제를 기어이 지금까지 방치하다가 똑같은 문제를 또 터트렸어. 이거는 너무 명백한 기획자의 실책... ㅅㅂ 치는 내 손가락이 다 아프다. 글 어떻게 마무리할지 모르겠어서 걍 3줄요약 하고 치울래


😔3줄요약

1. 진작 해결할 수 있었던 문제를 디렉터가 게을러서 또 터트렸다

2. 개발자들 욕하지마 ㅠㅠ 개발자들은 잘못이 없어

3. 씨발