‘Done is better than perfect’
- Lean In: Women, Work, and the Will to Lead by Sheryl Sandberg (‘뛰어들라: 여성, 일, 그리고 이끌려는 의지’, 셰릴 샌드버그)
남자친구인 J는 나와 마찬가지로 개발자이다. 그러다 보니 우리는 개발 관련 이야기를 많이 한다. 뭔가 막히는 부분이 있을 때도 자주 의견을 주고받는다.
그날은 내가 어떤 문제에 봉착한 상황이었다. J의 말로는 구조를 어떻게 짜야 하나 고민했다고 한다. 내가 기억하는 건 J에게 전화를 걸어 하소연했다는 것뿐이지만. 그때 J가 해 준 말이 바로 ‘Done is better than perfect’였다.
“완성도를 생각하느라 계속 일이 밀리는 것보다 조금 부족하더라도 어떻게든 시간 안에 마무리를 짓는 게 중요하다고 봐.”
‘그렇구나. 맞는 말이야. 시간 안에 끝내야 같이 일하는 사람에게 피해를 주지 않을 테니까. 일단은 해내는 데 집중하자.’
그래. 맞는 말인데. 그래야 한다는 걸 머리로는 아는데. 막상 그렇게 만들어 놓은 결과물을 보면 속이 답답해지는 것이다. 마음에 들지 않아! 이게 아니야! 이것보다 좀 더 잘할 수 있을 텐데! 분명 더 나은 방법이 있을 텐데! 아, 나는 왜 이것밖에 해내지 못했을까! 방망이 깎던 노인이라도 된 것처럼
‘물건이란 제대로 만들어야지. 암, 그렇고말고!’
문제는 난 장인이 아니라 막 걸음마를 뗀 초보 개발자라는 점. 이상은 방망이 깎던 노인인데 현실은 햇병아리였다. 왜 항상 낮은 곳에서 너무도 높은 곳을 꿈꾸는 걸까.
‘내가 바라보는 높은 곳은 정말 높은 곳이 맞을까? 햇병아리인 내가 보고 들은 것만으로 그걸 판단할 수 있는 건가? 하지만 그곳이 높은 곳이 아니라 한들 내가 도달하지 못하는 건 똑같지 않나. 결국 내가 부족하다는 점은 변하지 않아.’
‘Done is better than perfect’를 실천할수록 점점 좌절감에 빠져들었다. 나는 주어진 시간 내에 이것밖에 못 하는 사람이야. 더 잘하고 싶은데 계속 쓰레기를 만들어 내고 있어.
‘이럴 거면 개발하기 싫어.’
내가 짠 코드와 나를 계속 동일시한다. 그러면 안 된다고 어디서 읽었는데. 코드와 나를 분리해야 한다고. 그렇지만 쓰레기 같은 코드를 만들면 내가 쓰레기라는 기분이 드는 것은 막을 수 없다.
고치면 되지 않느냐고. 처음부터 잘하는 사람은 없으니 고쳐나가면 되지 않느냐 말한다면 맞는 말이다. 맞는 말이고 그렇게 하면 된다. 단지 고치고 앉아있을 만큼 일정이 여유롭지 않을 뿐이니. 고치는 작업을 ‘리팩토링’이라고 한다. 이 작업은 개발이 한참 진행된 뒤에 리팩토링만을 위한 일정을 새로 잡아서 진행하는 경우가 많다. 그만큼 공수가 많이 드는 일이다. 그러니 코드를 처음부터 잘 짤수록 좋은 것이다. 뒤로 가면서 할 일이 줄어드니까.
글쎄, 이런 고민은 경력이 쌓이면 나아질 문제일지도 모르지만. 내가 아직 경력이 짧아서 문제라 느끼는지도 모르지만. 스파게티처럼 꼬여버린 코드를 풀지도 못하고, 일은 일대로 진행해야 하는 상황이 괴롭다. 내가 클린 코드를 제대로 공부한다면 이 문제를 해결할 수 있을지도. 하지만 여전히 나는 이상과 현실의 괴리에 몸부림치고 있다.