게임을 아주 좋아하지 않는 개발자를 위한 변명(?)

programmer
Source: http://www.flickr.com/photos/38174668@N05/5938630792

코딩 호러 이펙티브 프로그래밍이란 책을 보면 개발자의 단계를 8레벨로 분류하고 있다.

1. 죽은 프로그래머: 최고의 단계. 개발자가 죽어도 코드는 영원히 살아남아 후세에도 쓰임. 다익스트라, 커누스 교수가 여기에 포함됨.
2. 성공적인 프로그래머: 자신의 코드로 비즈니스를 창조한 사람. 빌 게이츠
3. 유명한 프로그래머
4. 일하는 프로그래머
5. 평균적인 프로그래머
6. 아마추어 프로그래머
7. 알려지지 않은 프로그래머: 3~7까지는 수식어의 차이지 프로그래머로서 자격은 있는 사람들임.
8. 나쁜 프로그래머: 프로그래밍에 어울리는 기술이나 능력이 없는 상태에서 프로그래밍하는 사람들. 다른 이들에게 고통을 줌.

1이나 2 단계의 프로그래머는 극히 드물고, 아울러 극단이라 할 수 있는 8의 프로그래머도 매우 적을 것이다. 대개 3~7의 수준에 속하는 프로그래머들에 의해 서비스가, 게임이, 자동차가, 회사에서 쓰는 업무용 소프트웨어가 만들어진다. 1이나 2, 그리고 8과 같은 양극단을 제외하고 프로그래머가 자신의 직업을 좋아한다는 것은 어떤 의미가 있을까?

첫 번째로는 프로그래머로서 프로그래밍이라는 업을 좋아한다는 뜻이 있을 것이다. 그렇다면 프로그래밍이란 업의 특징은 무엇일까? 우선 컴퓨터 기술을 사용해서 해결해야 할 문제를 정의하고, 이 문제를 프로그래밍 언어로 해결하는 게, 이 업의 큰 줄기일 것이다. 좋은 프로그래머가 되기 위해서 다양한 기술이 필요하겠지만, 문제를 잘 정의하고 문제를 해결할 알고리즘을 알거나 창조적으로 만들어, 효율적이면서 효과적으로 코딩할 수 있는 능력이 있어야 한다. 말하자면 프로그래맹이라는 업을 좋아한다는 건, 일련의 과정을 좋아한단 뜻이다.

두 번째로는 자신이 프로그래밍 언어를 사용해 만들어내는 제품을 좋아한다는 뜻이 있다. 예를 들자면 자바로 만드는 ERP시스템을 좋아하는 개발자나, C를 사용해서 나비에-스토크스 미분 방정식을 풀 수 있는 유체해석 프로그램을 만드는 것을 좋아하는 개발자가 있을 수 있다. 사실 두 번째 관점은 첫 번째 관점과 달리, 프로그래밍 업의 핵심과 다소 동떨어진 것이다. 프로그래밍이 주는 순수한 기쁨이 아닌, 프로그램을 사용해서 해결하려는 문제 영역과 해결 영역을 좋아하는 것이다. 따라서 프로그래밍을 좋아한다는 것과 다른 관점이다.

프로그래밍을 좋아한다는 이야기를 할 땐, 지금까지 첫 번째 영역과 두 번째 영역이 혼재되어 있었다. 순수 IT산업이 발전한 지금에서는 컴퓨터 관련 직업이 하나의 독립된 영역이지만, 80년대나 90년대 IT기술이 발전할 당시, 컴퓨터를 사용해서 문제를 해결하려는 사람들은, 문제나 해결책 영역에 대한 전문적인 지식과 더불어 IT기술 또한 가지고 있었다. 따라서 자신이 관심이 있는 것에 대한 프로그래밍적인 해결책을 내놓는 게 당연했다. 따라서 프로그래밍을 업으로서 좋아하는 것과 문제/해결 영역을 프로그램으로 잘 처리하는 것이 모두 좋아하는 것의 대상이었다.

“게임을 좋아한다는 이유만으로 개발자를 꿈꾸지 마라”란 기사 덕분에 개발자 사이에서 많은 이야기가 있었다. 다양한 이야기의 논점을 정리하자면, 게임 개발자는 게임을 좋아해야 한다, 인 것 같다. 게임을 혐오하면서 게임 개발자로 살아가기는 쉽지 않을 것이다. 페미니스로서 대학 때 활동하다 광고 업계에 입문한 사람의 이야기를 들은 적이 있다. 광고 업계에 있으면서 성의 상품화를 숨김없이 그대로 표출하는 광고를 기획하는 것 때문에 심적인 고통을 토로하는 이야기였다. 이처럼 자신의 가치관과 정면으로 대치되는 일을 상당기간 지속한다는 건, 신의 경지에 이르는 또 다른 길처럼 무척 고통스러운 것이다.

하지만 게임을 그다지 즐기지 않거나, 게임을 싫어하지는 않지만 아주 좋아하지 않는 개발자들에게, 게임은 프로그래밍 업으로서 충분히 좋아할 만한 일이다. 말하자면 프로그래밍을 좋아한다는 첫 번째 영역엔 해당하지만, 프로그래밍으로 산출된 결과물인 두 번째 영역은 그다지 흥미를 느끼지 않는 셈이다. 이런 분류에 속하는 (다양한 분야의) 개발자들은 이 세계에 들어온 이후로 참 많이 만났다. 말하자면 코딩 호러 이펙트에서 말하는 3~7단계 속하는 개발자다. 물론 개밥 먹기란 이야기가 있듯이, 개발자는 자신이 만든 제품을 사용해 봐야 한다. 그래야 발전이 있다. 하지만 개밥을 먹어 봐야 한다고 해서, 개밥을 꼭 좋아해야 한다는 뜻은 아니다. 물론 개의 식감을 갖고 개 밥 먹기를 좋아하는 사람이라면 금상첨화지만, 개밥을 좋아하지 않더라도 개밥을 잘 만드는 사람도 있을 수 있다.

통계적으로 유의미한 데이터를 가지고 있지 않지만, 게임 업체는 대개 게임을 좋아하는 개발자들이 많이 포진하고 있기 때문에, 게임 개발자라면 게임을 좋아해야 한다는 명제가 당위성을 갖고 있는 듯하다. 하지만 이 명제가 반드시 옳다면, 게임을 그다지 좋아하지 않지만, 개발에 천부적인 재능을 가진 개발자는 게임 업계에 이바지할 여지가 매우 좁을 듯하다. 게임 업계의 사람은 아니지만, 8번에 속하면서 프로그래밍의 결과물만 좋아하는 개발자를 본 적이 있다. 이 경우가 가장 난감한 게 아닐까 싶다.

물론 같이 일하는 개발자가 내가 만드는 제품을 좋아하면 아름답겠지만, 사람 마음이 딱 내 마음과 100퍼센트 싱크되지 않는다. 그냥 다름을 인정하고 동료로서 같이 성장할 수 있는 실력을 갖추었다면, 성과를 내는 방향으로 같이 나아가는 게 중요하지 않을까, 한다.

%d bloggers like this: