[후기:책]코딩호러의 이펙티브 프로그래밍
개발자의 삶은 쉽지 않다. 개발자가 전 세계의 오픈 소스 활동을 이끌고 사회를 바꿔나가고 있다는데, 막상 회사에서 만나는 동료 개발자들은 사교적이지도 않고 모르는 걸 물어봐도 그렇게 친절하지도 않다. 물론 아닌 사람도 있지만. 결국 외국어 능력으로 좋은 강의 자료를 찾고, 끈기로 오픈 소스 코드가 공유되는 깃허브(gitbucket)나 빗버킷(bitbucket) 같은 서비스에서 다른 사람들이 짜 놓은 코드를 보면서 따라 하고 더 나은 방법을 생각하는 수밖에 없다. 이게 개발자들 사이에서 이야기하는 '해커 정신'이다. 어떻게 보면, (너무나 바빠서) 불친절한 개발자들이 "네가 알아서 해."라는 말을 못 해서 알아서 찾아가면서 공부하라고 꾸며놓은 수식어일 수도 있겠지만. 그래서 나는 공개된 장소에 글도 쓰고, 강의도 만든다. 누가 시켜서 하는 일은 아니다. 그저 내가 고생했기 때문에 내 뒤에 걸어오는 사람이 눈 밭에서 조금 덜 뒹굴었으면 하는 마음이다. 그래서 개발에 관심이 있어서 도움을 청하는 사람에게는 선뜻 손을 내미는데, 나 역시도 아직도 개발에 관한 멘토가 없는 아쉬움에서 더 적극적으로 나서는지도 모르겠다.
이 책의 저자는 스택 오버플로우(stackoverflow)라는 개발 자판 '네이버 지식인'의 공동 창립자이고, 이 책은 자신의 블로그(링크)에 쓴 글을 모아서 출간한 책이다. 아마 비개발자 분들에게는 감이 잘 오지 않으실 텐데, 개발자들은 일을 할 때 수많은 에러를 만나는데 특히 개발에 처음 입문했을 때 방문이 닳도록 드나드는 곳이 바로 구글'신'과 함께 스택 오버플로우라는 사이트다. 마치 이 책을 읽으면서 나에게 그간 없었던 프로그래머 멘토를 얻은 거 같은 감사함을 느꼈다. 비록 책 한 권을 통해서지만 많은 것을 배우고 느낄 수 있었다. 글 말미를 대신해 감사의 말을 전한다.
책을 읽으면서 크게 3가지 정도가 마음속에 남았다. 우선 첫 번째는 '당신의 팀은 엘리베이터 테스트를 통과할 수 있는가?'라는 질문이었다. 보통 개발자는 회사에서 '기획자가 만든 계획에 따라, 디자이너의 디자인을 현실로 옮기는 일'을 한다. 나는 그렇게 수동적인 역할로 남는 게 죽기보다 싫어서 회사로 쉽게 돌아가지 못하고 있는데, 그래서인지 개발자는 그냥 주어진 기안 안에 업무만 마감하면 되는 존재가 되어버린다. 팀원들이 그렇게 생각하면 이제 개발자도 서비스에 대해서 어떠한 고민도 하지 않고, 그냥 만들라는 대로 만든다. 그리고 갈아엎으라면 다시 새로 만든다.
이런 회사는 정말 최악이다. 당신이 이제 막 사회생활을 시작한 개발자일수록 나는 더욱더 개발자도 서비스를 기획하고 UI/UX에 참여할 수 있는 회사에서 일하라고 말하고 싶다. 그리고 어떤 소비자를 대상으로 만드는지, 서비스가 출시한 후에 어떻게 소비자에게 알릴 것인지도 알고 있어야 한다. 여기에 관심이 없으면 개발자는 그저 코드 짜는 기계에 불과해진다. 일은 재미가 없어진다. 책에서는 개발자를 포함한 모든 직원이 30초 안에 '자신이 무슨 서비스를 만드는지', '어떤 고객을 주요 타깃으로 잡고 있는지' 등 서비스에 대해서 알고 있어야 된다고 한다. 그래야만 기획과 디자인이 채우지 못하는 여백을 개발이 채울 수 있다. 다시 한 번 말한다. 개발자는 우선 마케터가 되어야 한다.
아직 단 한 번도 개발자를 내 손으로 직접 채용해 본 적 없는 나에게 이 부분 역시 매우 소중한 이야기였다. 저자는 글에서 개발자를 채용하는데, '개발자가 개발을 하나도 못하는 진귀한 상황'을 자주 만난다고 한다. 심지어 석박사 출신의 개발자들도 아주 간단한 알고리즘을 코딩으로 구현하지 못한다. 특히 인상 깊었던 부분은 '몇 년이나 경험했는가, 라는 질문에 담긴 미신'이라는 부분이었는데, 내가 믿는 부분과 굉장히 일치했다. 저자는 "한 분야에서 12개월 정도 일하고 난 다음에는 그 분야에 정통하거나 아니면 영원히 정통할 수 없거나 둘 중 하나"라는 말을 한다. 나 역시도 10년 일하고 2년 정도 다른 일을 하다 돌아온 사람보다는, 2년 경력인 프로그래머를 뽑겠다고 종종 말하곤 한다.
친한 개발자 친구가 한 명이 있다. 학교 다닐 때 학교의 안드로이드 애플리케이션을 직접 개발했다는데, 그 이후에 컴퓨터공학과 교수님들이 찾아와서 안드로이드 개발을 좀 알려달라고 부탁했다고 한다. 개발의 매력은 누군가 말한 것처럼 '당신이 알고 있는 기술이 운이 좋지 않으면 5년, 운이 좋으면 10년' 안에 사라질 것이라는 데 있다. 누구도 이 분야에서 영원한 전문가는 없다. 끊임없이 공부하고 발전하지 않으면 결국 이 시장에서 사라질 수밖에 없다. 나는 절대로 '실력이 아니라 연차로 줄 세워서 연봉을 지급하는 회사'는 가지도 않을 것이고 권하지 않는다. 그런 곳에서 개발자가 할 일이라고는 퇴근하고 상사와 술친구해주면서 자리보전하는 일 밖에는 없다.
세 번째 부분은 굉장히 유쾌했는데, 어디에서도 읽을 수 없을 거 같은 하지만 매우 유익한 내용이었다. 우선 그는 '프로그래머 권리 장전'으로 그 챕터를 시작하는데, '권리장전'이라는 용어가 어색한 분이라면 영국 의회가 '명예혁명' 이후에 왕권을 실질적으로 제한하면서 개인의 권리를 보호하기 위해 제정한 법률이다.
특히 그는 하나 이상의 모니터가 얼마나 개발자의 효율을 높여주는지 말하는데, 단일한 스크린을 쓰는 것보다 무려 50% 이상의 업무 성과가 높아진다고 한다. 나는 공대를 나와서 대기업 연구원으로 남들이 보기에 탄탄대로를 걸어가는 것처럼 보이던 친동생과 코칭을 해서 퇴사시켰다. 동생은 대기업 회사원이 주는 안정감과 연봉, 그리고 반대편에 경력만 쌓아서는 언제든지 버려지면 갈 곳이 없는 연공서열 사이에서 갈등하다가 결국 퇴사하고 나와 같은 방식으로 개발을 공부해서 개발자의 길을 걷고 있다. 나는 쉽지 않은 선택을 한 내 동생이 정말 자랑스럽다. 동생은 프로그래밍 과정을 수료하고 누구나 들으면 이름을 알 법한 큰 스타트업에서 회사에서 처음 신입으로 개발자로 일하기 시작했고, 계속 다니고 있다. 그런데 말도 안 되는 소리를 들었는데, 회사가 글쎄 개발자들한테 미관상의 이유로 모니터를 다 치우고 노트북만 쓰라고 제안을 했다는 것이다. 진짜 그러다 죽는다. 진짜 노발대발하고 있으니 동생이 말려서 참았다. 투자도 계속 받고 계속 승승장구하시던데, 그렇게 실제로 일하는 사람들을 불편하게 만들어가면서 얼마나 크는지 지켜봐야겠다.
그리고 의자도 50만 원 이하를 사용하고 있다면 다 틀렸단다. 우린 다 틀렸다. 근데 정말 좋은 의자는 편안함이 다르다. 구글 같은 IT 회사들이 얼마나 의자에 신경 쓰는지 아는 사람은 알 거다. 그런 회사들은 직원들이 앉으면 너무 편안해서 일어날 수 없는 마력의 의자를 직원들에게 제공한다. 물론 '더 열심히 일해라'는 이야기 겠지만, 직원 입장에서는 허리 건강도 챙기고 업무 효율도 늘어나니 회사와 윈윈(win-win)이다.