2009년 8월, 프로그래머로 살던 나는 어디로 갔을까라는 포스트를 올린 적이 있다.
그리고 5개월이 지난 지금, 나는 온전히 프로그래머로 살고 있다. 프로그래밍을 해야한다고 생각하지도 않고, 좀 더 나은 프로그래머가 되고자 하는 생각도 없다. 그저 프로그래밍 할 뿐이다.
영어공부 한답시고 RSS를 탐독하지도 않고, 책을 읽을 때 소리내어 읽지도 않는다. 당장 내게 필요한 정보만 얼른 취한다. 만약 해당 분야에 개념이 부족하여.. 필요한 정보만 쏙 빼먹는 얌체권법이 통하지 않는다고 생각되면, 급한 마음을 다스리고 개념 탑재 모드로 바꾼다. 당장 구현하고 싶은 기능이 눈앞에 있지만 별 수 있나. 개념이 없는걸. 잠깐 모든 걸 잊고 욕심도 버리고 자아도 버리고 여유있게 테스트 코드 만들면서 공부한다.
더 좋은 방법론을 찾아 헤매이던 시절을 접고, 바야흐로 trial-and-error의 시대로 돌아간 것.
trial-and-error에 안착하는데 가장 큰 도움을 준 것은 Illuminated mind의 조나단이다. 바로 이 포스트. 그는 이 포스트에서 소중한 통찰을 간단한 문장으로 전달했다.
Sucking is absolutely necessary. There’s no way around it. In order to get better at anything, at some point or another you’re going to have to suck. That’s just the way it is.
So, here’s the secret to sucking at anything. Start.
시작해버리는 것.
그런데 잘못 해석할 여지가 있다. 나 이거 이거 시작해요~ 라고 선언하는 것은 여기서 말하는 시작과는 구분되어야 한다. 큰일날까봐, 개판될까봐, 마음속에서 꾸물대며 시작하지 못하던 것을 시작하라는 얘기다. 그런데 대부분의 사람들은 큰일날까봐, 개판될까봐 시작하지 않는다는 것을 스스로 자각하지 못한다. 당연히 필요한 준비들을 하고있다고 생각하는 경우가 많을 것이다. 그러므로 어차피 안될(?) 사람은 이 글을 읽든 말든 시작하지 않는다.
저 글을 읽고 시작한 프로젝트가 하나 있다. 여태까지 써보지 않은 새 플랫폼 (안드로이드)에서의 프로젝트였는데, 무언지 모를 기운에 말려 시작을 1년 넘게 미루고 있었다. 여튼 시작해버렸더니 정말 수많은 suck이 시작됐다. 그런데.. Start => Suck => Better 패턴이 한 프로젝트에 결코 한 번 나오지 않는다는 것을 깨달았다. 즉,
프로젝트 시작
뻘짓
내공 향상
뻘짓
내공 향상
프로젝트 끝.
이런 게 아니라는 거다.
프로젝트 중간중간 셀 수 없이 많은 Start가 필요하다. 한 트랜잭션이 짧다. 개판이 될지도 모르는 위험을 무릅쓰고 계속 Start를 해야하는 거다. 이렇게 Start => Suck => Better가 계속되다보면 어느 시점에서는 꽤 좋은 품질에 도달해있다는 것을 깨닫게 될 것이다. 그러면 더욱더 Start가 어려워진다. 왜냐하면 개판이 됐을 때 잃는 것들이 훨씬 더 많아져버렸기 때문이다.
여기서 하나 짚고 넘어가야할 것이 있다. 대체 왜 시작하기가 어려운 걸까. 왜 개판되는 것을 왜 싫어하는 걸까. 스스로 시작해서 개판이 됐으면 자기 행동에 책임을 져야한다. 그런데 책임지기는 싫다. 혹자는 책임질 용의는 있으나, 스스로 책임질 능력이 없다고 생각한다. 그래서 괴테님은 파우스트에서 이렇게 말했다.
As soon as you trust yourself, you will know how to live.
내 생각에, 당신이 당신 자신을 신뢰하지 못하면, 당신 존재의 일부분을 신뢰하는 그 누군가가 당신의 영혼을 사용하기 시작한다. 사는 게 사는 것이 아니다. 하지만 본인은 깨닫지 못한다.
다시 Start 얘기로 돌아와서. 내 생각에, 시작하고나서 중요한 핵심 기능들을 다 완성하는데는 전체 프로젝트진행 시간의 20%도 걸리지 않는다. 그래서 나는 프로토타이핑을 아주 좋아한다. 20%의 노력만 쏟아도 고객들은 80%라고 보기 때문이다. 그런데 매번 고객 상대한다고 해서 본인마저도 핵심 기능이 정말 80%라고 착각하면 큰일난다. 왜냐하면 완성도를 높이는 부분은 핵심 기능이 아닌데, 이런 중요한 부분에 20%의 시간만 할당하고 20%의 관심만 주입할테니 (게다가 바람둥이 기질이 없는 사람은 관심을 분할하는 방법을 알지 못한다) 완성되는 결과물의 품질 또한 개판이 되기 때문이다.
그런데 왜 다들 핵심 기능에 목매달고 있는 것일까? 아직 80%에 대한 부분(UX도 80%에 포함될 것이다)이 normalize되지 않아서? 모르겠다. 내가 알 바 아니지. 남들이 우르르 start -> suck 하기 시작하면 긴장감이 극에 달하겠지만, 그들이 wait, wait, wait, bomb! 해준다면 나로써는 감사할 따름.
이제 다 끝났다고 생각했을 때, 다시 suck을 시작해야 한다는 사실을 잊지 말자.
위 곡은, 조금전에 연주한 피아노 소나티네 20분 투어. 틀린 부분만 빼면 -_- 썩 들어줄만 하다는 아내의 증언.
Comments
4 thoughts shared
맞습니다. 항상 공감되는 글 남겨주시네요.
요새 자꾸 20% 를 남들이 80% 로 봐준다고 80% 로 여기는 버릇이 들고 있던 참이였습니다. 자중하겠습니다.
프로젝트는 항상 시작의 연속이라는 것 역시 절대적으로 공감되네요. 좋은 포스팅 감사합니다 :]
Continue Reading
Discover more thoughts and insights
JMSN 로그인 안되던 문제
어제 (목요일) 오전부터 제가 만든 msnmlib 에서 MSN 네트워크로의 로그인이 막혔었습니다. 이로인해 제가 씨뿌린 제품들은 다 맛이 갔을것입니다. 대표적으로 JMSN 로그인이 안되었을텐데요. 이게 갑자기
어제 친구와 술먹다가 웃은 이야기
이름은 밝히지 않겠지만, i9nature@ 라는 엠에센 주소를 사용하고, 전 나우누리 아이디 '느린손'에 간간히 purmae 라는 아이디를 사용하고 송파구 잠실 장미아파트 15동에 거주하는 사람과 술을 먹고
이상심리학 시리즈
요새 보는 이상심리학 시리즈물 | 성격장애 | 핵심 인지 | 과잉발달 | 미발달 | | -------- | --------- | -------- | ------ | | 의존성 | 나는 무력하다 | 도움 추구,