chester_tatterstory.gif

태터&컴퍼니의 사장님인 노정석 님께서 이번 태터툴즈 1.0.x 부터 라이센스로 GPL 을 따르겠다
결정을 하셨습니다. 그간 암울하기 짝이 없던 한국의 오픈소스 운동에 한줄기 희망을 본 듯한 느낌입니다.

막상 오픈소스 프로젝트를 진행하고 있는 입장에서는 대단히 환영할 만한 일이지만,
몇가지 우려스러운 부분이 생각납니다. 아, 태터&컴퍼니의 이번 결정은 저 개인적으로나 GR보드로나
혹은 한국의 오픈소스로 보나 무조건 100% 환영합니다. 그간 태터툴즈 1.0 의 탐나던
소스코드들에 접근할 수 있게 되었으니 기쁜 마음이야 어디 가겠습니까.

제가 우려스러운 부분은 크게 개발 프로세스의 투명성, 그리고 다른 수익모델, 마지막으로
태터툴즈 아류작 출현 부분입니다. 사실 GR보드도 겪고 있는 문제죠. (아류작의 경우는 나중에 한번
언급할 기회가 있을 것 같습니다.) 그 중에서도 개발 프로세스 부분에 대해서 한번 생각해 봅시다.

많은 사람들이 오픈소스 프로젝트로 진행중인 프로그램은 개발과정 역시 무조건 열려 있다고 착각합니다.
그렇지만 절대 그렇지 않습니다. 우선 저만 해도 소스코드 커밋 권한을 가지는 분들은 보다 엄격하게
프로그래밍과 관련해서 MSN 등으로 면접을 거칩니다. 꽤 많은 분들이 "GR보드의 문제점을 알고 있다."
며 접근해서는 "내가 다 고칠 수 있다. 나를 믿어라" 고 합니다. 글쎄요. 간단한 문자열 뒤집기라든지
값에 의한 호출, 레퍼런스에 의한 호출 정도도 헷갈리시는 분들에게 소스코드를 만지도록 허락하고픈 생각은
눈꼽만큼도 없습니다. (진짜 실화들 입니다. 이것 역시 후에 한번 얘기할 기회가 있을 겁니다.)

어쨌든 아무나 커밋권한을 행사할 수는 없습니다.
태터툴즈의 경우 태터&프렌즈라는 커밋터그룹이 생길 것으로 보여지는데 개인적으로는 말리고 싶습니다.
사람간의 커뮤니케이션은 생각보다 복잡합니다.
게다가 프로그래머들이 누굽니까? 이 세상에서 가장 옹골지게 고집 센 사람들입니다.
윈도우의 상태막대를 조롱하는 UNIX 프로그래머가 꼭 책에서만 이야기되는 내용이라고 생각하지 마시길 바랍니다.
저의 경우는 Ajax 로 만들어진 워드프로세스가 MS의 Word 를 망하게 할거라는 헛소리를 요즘 자주 듣습니다.

커밋터 '그룹' 이 정말로 생기게 될 경우 태터툴즈 개발이 우왕좌왕 해질 위험이 높아집니다.
그렇게 되지 않으려면 프로젝트의 중심에서 무게감 있게 중심을 잘 잡아줄 PL(혹은 PM) 이 필요한데
그걸 누가 할지도 걱정되지요.
tattertools_com.gif

의사소통이 많아지는 것은 오픈소스 프로젝트에서 필수적으로 발생하는 '좋은 신호' 입니다.
프로젝트가 균형있게 발전되기 위해서는 반드시 필요하기도 하지요.
그렇지만 그 많아지는 의사소통 만큼 실제 개발과정은 점점 느려집니다.
우리나라의 수많은 프로젝트가 지금 이 시간에도 실패를 거듭하고 있습니다.
왜 우수한 사람들이 모여서 우수한 프로그램을 만드는 우수한 프로젝트가 높은 실패율을 자랑할까요?
피플웨어나 XP 등으로도 아직 완전한 해결을 못 본 매우 어려운 질문입니다.
근데 그걸 태터&컴퍼니가 지금 자처해서 맞이하려 하고 있습니다.
쓸데 없는 복잡성을 늘리겠다고 말이죠.

물론 외부 개발자들과 함께 개발해서 더 좋은 블로그 툴을 만들겠다는 생각에 딴지를 거는 것은 아닙니다.
저 역시 오픈소스 프로젝트를 하고 있으니 사실 딴지 걸 입장도 아니구요.
그렇지만 블로그 툴을 만드는 데 필요 이상으로 많은 인력을 확충하려는 시도는 생각해 볼 문제입니다.
아, 물론 블로그가 혼자서 뚝딱 만들어도 충분한 단순한 도구라고 말하려는 것은 아닙니다.
씩씩 거리며 키보드를 괴롭히시기 전에 조금만 더 인내를 가지고 봐 주세요.

전통적이고 다소 식상한 문제 하나 내 드리겠습니다.
맞출 생각이 없으시다구요?
괜찮습니다. 답이 금방 나오니 맞출 생각이 없으셔도 맞추실 수 있을 겁니다.

A라는 프로그램을 만드는 데 개발자 5명이서 2달을 소비해가며 만들고 있었습니다.
골프연습하다 돌아온 사장님은 창백한 얼굴로 비듬 떨어지는 머리를 벅벅 긁어가며 슬래시닷 기고문을 보면서
낄낄 거리는 저 개발자들만을 믿고 있을 수는 없었습니다. 실제 그들이 요 며칠 전부터 계속
밤샘작업에 시달려 만성두통에 고생하고 있는지 따위는 알 바가 없습니다만.

어쨌든 앞으로 다시 2달을 더 소비해야만 A라는 프로그램을 완성할 수 있겠다며 식은땀 흘리는 프로젝트
매니져를 보면서 사장님이 한마디 하십니다. "그럼 인원을 2배 늘려서 1달안에 완성짓게."
그러고는 다시 골프연습을 하러 나갑니다. 에잉 프로젝트 매니져라는 사람이 저렇게 멍청해서야 쯧쯧!

자 그럼 사장님 말처럼 정말로 프로젝트 기간이 1달로 줄어들었을까요?
어땠을 것 같습니까?
물론 1달로 줄어들지 못했습니다. 프로젝트는 예상 기간 2개월을 넘겨서 4개월이 되도록 지지부진해졌습니다.
왜 그럴까요? (이런 이야기는 실화를 바탕으로 합니다. 그런 경험이 없다고 무시하지 마시길!)

문제는 투입되는 사람들간의 커뮤니케이션 조절 시간입니다.
프로그래머들은 대게 저마다 고수하는 코딩 스타일이 있습니다.
저는 주로 BSD 스타일을 좋아합니다만 간혹 GNU 스타일을 만날 때도 있습니다.
K&R 스타일은 C에서는 거의 표준에 가깝지만 요즘은 이마저도 조금씩 개성이라는 요소가 가미되면서
소스코드 스타일의 통일이 점점 힘들어지고 있습니다.

일단 이런 코딩 스타일부터 조절해야 하고, 각자가 선호하는 스타일도 다시 조정해야 합니다.
물론 모듈별로 작업하게 되면 자기 혼자만 잘 하면 됩니다만 어찌되었든 공동작업이므로
모듈별로 나눈다고 해도 통일성은 필수적으로 필요하게 됩니다.
문제는 이것 뿐만이 아니라는 거죠.

특정 기능들을 구현하는 방식에도 논란이 생길 수 있습니다.
커밋터들이 모여서 어떤 기능을 만들자고 합의합니다. 그리고 물론 각자가 맡을 부분의 작업을
시작합니다. 처음에는 그럭 저럭 괜찮습니다. 그러다 어느 순간부터 문제가 생깁니다.
"저기, 왜 getXMLPreview() 함수의 실패한 리턴 값이 -1 이죠?" 따위의 문제가 생기지 말라는 법 없습니다.
이와 같은 일을 해결하는 가장 좋은 방법은 표준 매뉴얼을 만드는 겁니다.
철저하고 세세하게 이런 저런 시시콜콜한 것들까지 '표준적인' 방법을 정하면 됩니다.
물론 그렇게 하면 평균적인 소스코드 품질을 뽑아낼 수 있습니다.
그렇지만, 프로그래머는 그 때부터 조립생산라인의 프로그래머 A씨로 전락해버리는 겁니다.
(맥도날드 불고기 버거가 왜 항상 똑같은 맛을 내는지 생각해 보세요!)

tatter_new_logo.gif

태터툴즈의 GPL 결정은 분명 환영받을 일입니다.
태터&컴퍼니의 결정은 지극히 현실적이며 합리적입니다. 태터툴즈 프로그램 자체의 판매보다는
그를 기반으로 해서 수익을 내는 길을 찾는 게 훨씬 유리합니다. 태터툴즈가 플랫폼이 되어서
다양한 수익원을 만들어나가는 게 궁극적으로는 좋습니다.

그렇지만 커밋터 그룹을 만들어서 공동개발 해 나가겠다는 결정은 다시 한번 생각해 볼 문제입니다.
지금의 태터툴즈를 보면 필요 이상으로 사람들이 모이고 있습니다. (물론 GR보드도 그렇습니다.)
물론 사용자가 정말 많고 인기 있는 프로그램이기 때문에 그렇다는 것은 잘 압니다.
하지만 아까 A 프로그램 개발 프로젝트의 예를 생각해 보지 않더라도 쓸데 없이 프로젝트가 비대해지고
사공이 많아지는 것은 충분히 경계해야 마땅합니다. 오픈소스 프로그램이라고 해서 모두
성공하라는 법 없고 개발자가 많아져서 더 좋아지라는 법 없습니다.

사실 농담조이긴 하지만
한국에서 GPL 프로그램을 개발한다는 건 돌이킬 수 없는 결정입니다.
법원 조차도 실질적으로 보호해주지 않는 라이센스이기 때문에 더더욱 그러하구요.
그럼에도 이번 태터툴즈의 GPL 결정은 충분히 높이 살 만 합니다.
다만 확실한 로드맵 없이, 태터툴즈만의 공통된 개발 노하우 없이 섵불리 개발자들을 모아서
같이 해 나가겠다는 생각은 우려스럽습니다.
지금은 그런 문제보다도 현재 충분히 복잡해져 있는 태터툴즈를 어떤 식으로 관리해 나갈 것인지
고민하는 게 더 맞지 않나 조심스럽게 생각해 봅니다.

기존 소스코드를 두고 새로 다시 짠다는 시도는 꽤 위험했지만 좋은 시도였습니다.
그렇지만 그로 인해 클래식과 정식버젼이라는 두가지 버젼을 만들어 버렸습니다.
기존 사용자들 중 일부는 변환해 실패했고, 자신의 컨텐츠를 허공에 날려버리는 저주를 경험했습니다.
지금은 성급하게 일을 벌려야 하는 시점이 아니라 기존 사용자들을 보듬어서 함께 해야 하는 시간입니다.
작게는 몇 달 부터 길게는 1년 넘게 모아둔 데이터들을 한순간에 날려버린 사용자들이 과연 그들 스스로의
무지 때문에 그런 비극을 맞이한 것일까요?
아니면 새로운 버젼 개발에 집중한 나머지 Q&A 나 매뉴얼 작업에 힘을 쏟을 수 없었던 태터&컴퍼니에 있는 것일까요?

이번 라이센스 검토과정에서 내부적으로 많은 고민이 있었으리라 짐작됩니다.
그리고 공동개발이라는 것도 물론 고민이 없을리 없었겠죠.
그렇지만 이번 결정에 우려스러운 점이 없는 것은 아닙니다.
GPL 로의 결정은 양날검과 같습니다. 자칫 잘못하면 태터툴즈가 포크될수도 있고 커밋터간 의견조율에
실패해서 개발진행에 빨간불이 켜질 수도 있습니다.

뭐, 사실상 이번 결정으로 저 개인적인 판단으로는 태터툴즈가 워드프레스보다 모든 면에서 앞서 나간다는 생각이 듭니다.
블로그툴을 새로 만들까 아직 결정하지 못했는데 이 참에 태터툴즈로 전향할지 심각하게 고민하기 시작했습니다.
저는 태터툴즈가 잘 되길 바랍니다. 저의 소개에도 적혀져 있듯 저는 태터툴즈 개발팀을 존경합니다.
저 같은 허접이가 진행하는 오픈소스 프로젝트보다는 훨씬 뛰어난 성과를 거둘 수 있을 것이라 믿어 의심치 않습니다.

태터툴즈가 지금 보다 더 잘되길 바랍니다. :)