내가 토이프로젝트를 실패한 이유

1편 배우고 싶은 기술 선정
2편 서비스 설계
3편 내가 토이프로젝트를 실패한 이유


실패한 프로젝트만 수두룩

토이프로젝트를 통한 학습은 이미 유명한 이야기 입니다. 특히 신입이나 주니어 개발자에게 토이 프로젝트는 자신의 실력을 증명하는 수단으로 사용되기도 합니다. 토이프로젝트에 대해 고민하고 시도한 사람은 많지만 꽤 많은 개발자들이 완성까지 이르지 못하고 실패합니다. 저 역시 그 중 하나였고 이 글을 통해 왜 실패했는지 회고하고 앞으로 어떻게 할지 이야기해보겠습니다.

무엇을 이루고 싶은가

첫 번째 실패 이유는 애매한 목표입니다. 토이프로젝트의 목표은 다양하지만 크게 3가지 정도를 꼽아보았습니다.

  1. 특정 프레임워크, 기술을 연마하기
  2. 다양한 기술을 종합하여 서비스를 만들기

과거 블로그 글을 보시면 저의 경우 1번과 2번의 중간 어딘가를 목표으로 설정하고 토이 프로젝트를 만들었습니다. 스칼라로 웹서비스를 만들면서 그 때 자주 쓰이는 유명한 라이브러리 학습을 계획했는데요. 이런 모호한 목표 설정으로 인해 결국 두 가지 모두 달성하지 못했습니다. 1번부터 짚어보면, 우리가 배우려는 모든 기술은 반드시 등장하게 된 배경이 있습니다. 사용자들이 직면한 문제가 있었고 그 문제를 해결하기 위해 만들어졌기 때문에 그 맥락을 파악하는 것이 우선입니다. 하지만 저의 경우 너무 많은 기술들을 학습 목표로 설정하다보니 배경에 대한 이해없이 라이브러리나 프레임워크를 사용하였습니다. 물론 사용해본 경험만으로도 의미는 있지만 깊이 있는 이해가 없기 때문에 누군가 그것을 사용한 이유를 물어도 대답할 수 없습니다. 또한 과한 욕심으로 너무 많은 기술을 학습하려 했기 때문에 2번 목표도 달성하기 어려워집니다. 서비스를 끝까지 완성하기 위해서는 내가 아는 기술이 적어도 8할이 되어야 한다고 생각합니다. 서비스는 사용자의 문제를 해결하는 것이 최우선인데 아무리 토이프로젝트라 할지라도 학습하고 싶은 욕심에 모르는 기술을 너무 많이 집어넣으면 생산성이 떨어져 일이 진척되지 않고 흥미를 잃어 프로젝트를 포기하게 됩니다.

제한 시간 안에 완성하기

그렇다면 좋은 목표는 어떻게 세워야 할까요? 이에 관해서 다양한 글들이 있지만 저는 그 중에 SMART 목표가 괜찮은 시작이라고 생각합니다. SMART는 다음 단어들의 첫 글자를 땄습니다.

  • Specific(구체적)
  • Measurable(측정 가능한)
  • Achievable(달성 가능한)
  • Realistic(현실적)
  • Time-bound(기한이 있는)

개인적으로 저는 이 중 가장 중요한 기준으로 달성 가능 여부, 기한을 꼽습니다. 토이프로젝트는 개인 시간에 하는 활동이기 때문에 많은 시간을 내기 어렵습니다. 그래서 시작할 때 굳이 그 기한이나 달성 가능한 크기인지 가늠하지 않고 프로젝트를 설계하는 경우가 많습니다. 하지만 반드시 시작할 때 종료 조건을 설정해야만 그 끝을 볼 수 있습니다. 미술 연습을 할 때 제한 시간 내에 그림을 완성하는 연습을 강조 합니다. 그림을 그리다 보면 특정 디테일에 꽂혀서 제한 시간 내에 끝내지 못하는 경우가 많기 때문입니다. 디테일도 중요하지만 시간에 맞춰 끝내는 연습을 통해 버릴 부분과 가져갈 부분을 구별할 수 있는 능력을 키우는게 중요하기 때문입니다. 미술과 개발은 전혀 다른 분야이지만 같은 맥락에서 토이프로젝트도 마찬가지라고 생각합니다. 현재 내 능력에 맞춰 적절한 기간을 산정하고 그 기간 안에 끝내는 연습을 해야만 더 중요한 것을 구별할 안목을 기를 수 있습니다.

환경 설정

토이프로젝트를 시작할 때는 의욕이 넘쳐서 열심히 개발하다가 점점 흐지부지로 끝나는 경우가 많습니다. 왜 그런걸까요? 단순히 의지의 문제일까요? 저는 그 원인이 주변 환경에 있다고 생각합니다. 지루하고 힘든 노력을 해야 할 때, 꽤 많은 사람들이 강한 동기부여가 필요하다고 생각합니다. 그래서 동기에 대한 분석을 하고 내적 동기, 외적 동기를 분류하고 정리한 글도 많습니다. 물론 저는 동기 부여가 중요하지만 나를 둘러싼 환경을 조성해야만 끝까지 갈 수 있다고 생각합니다. 우리는 공부를 잘하는 사람의 의지를 높게 평가하지만 그 사람이 어떻게 자신의 환경을 만들었는지 간과합니다. (물론 의지도 높았겠지요.) 핸드폰을 가까운 곳에 두지 않거나 집에서 벗어나 독서실이나 까페를 이용하는 등 더 집중이 잘되고 딴 짓할 여지를 줄이는 환경을 만들어야 합니다. 나이키의 “Just do it”이나 아디다스의 “Impossible is nothing”은 그 순간의 의지는 끌어올릴 수 있겠습니다. 하지만 꾸준함을 만들기 위해서는 규칙적인 생활과 환경을 구축해야 합니다.

관련된 책으로 아주 작은 습관의 힘을 추천합니다. 좋은 습관을 만들고 나쁜 습관을 줄이는 구체적인 방법을 제시해주어 좋습니다.

또, 다시, 도전

정리하면 토이프로젝트를 성공하기 위해서는 명확한 목표 세우기와 집중할 수 있는 환경 조성하기 2가지가 필요하다고 생각합니다. 목표를 세울 때는 SMART 목표를 참고하면 좋고 저는 그 중 달성 가능 크기, 기한을 잘 정하는 것이 중요하다고 생각합니다. 집중할 수 있는 환경을 위해 특히 핸드폰은 먼 곳으로 치워놓고 정신이 맑아지는 장소나 시간을 마련해야 합니다. 초등학교에서 수학 공부를 할 때 수학책과 수학 익힘책 2권으로 공부합니다. 저는 이런 개념 + 연습 구성을 좋아합니다. 토이프로젝트는 내가 배운 개념을 연습하기 가장 좋은 방법 중 하나입니다. 큰 욕심을 부리지 않고 작은 단위의 토이프로젝트를 여러 번 만들다 보면 시간이 지나 훨씬 큰 프로젝트에서 그 연습이 빛을 발할 것입니다.

comments powered by Disqus