이상하게 개인 프로젝트는 항상 실패로 끝났다.
팀 프로젝트 완성 경험은 여럿 있는데도 말이다.
핵심 기능 하나조차 구현하지 못했기 때문에 미완성이 아닌 실패라고 명명한다.
최근에는 인턴 경험도 쌓였으니 이번에는 프로젝트에 성공할 것 같았다.
북마크와 플레이리스트 기능이 있는 음악 스트리밍 앱을 구현하기로 했다.
그렇게 일주일이 지나고... 뭔가 열심히 하긴 했는데, 결과가 처참했다.
시간은 시간대로 썼는데, 정작 돌아가는 기능은 하나도 없었다 (!)
남은 건 스타일이 들어간 화면과 네비게이션 뿐이었다.
생각해보니 매번 개인 프로젝트를 할 때마다 같은 현상이 반복됐다.
대체 뭐가 문제인걸까?
정작 목표로 했던 프로젝트의 완성까지는 아직 갈 길이 멀다는 생각에 기운이 쭉 빠졌다.
플로우차트 마지막에 '빙빙 돌아가다가 기운이 빠져서 블로그 글 쓰기로 새어버리기'도 추가할 걸..
'이건 뭐지?' '이건 또 뭐지?' 하면서 새로운 기술을 배우는 일이 즐겁다.
그런데, 공부만 검색만 하다가 프로젝트를 완성하지 못한 적이 많다.
돌이켜 보면 그간 욕심만 앞서서 잘 모르는 기술 위에 잘 모르는 기술을 덧붙여 사용하곤 했다. 그러다보니 잘 모르는 에러 앞에서 쉽게 무너지곤 했다.
시작은 내가 충분히 아는 선에서 작게, 조금씩 살을 덧붙여야 실패 확률이 낮아지는데 말이다.
프로젝트의 목적은 완성이다. 공부는 과정에서 발생하는 부수적인 효과다.
지난 실패한 프로젝트들을 돌이켜보면, 목표는 있었으나 우선순위가 없는 경우가 많다.
시간과 체력이 한정적이라서 원하는 모든 일을 다 할 수는 없다.
프로젝트의 완성을 위해 최소한으로 구현해야 하는 기능을 정의하고, 그 기능을 구현하는데 집중해야 한다.
(이 팁은 회사 선배의 조언으로 알게 됐다. 다시 한번 감사함을 떠올리며)
그동안의 성공 경험에 비춰보면, 마감 기한이 확실한 팀 프로젝트는 어떻게든 완성하는 경향이 있다.
구현할 능력이나 시간이 부족해서 요구사항의 일부를 수정하거나 포기하는 한이 있더라도 말이다.
반면 개인 프로젝트에선 주어진 시간이 무한대라는 착각 속에 허우적대다가 실패하곤 했다.
일을 시간에 맞출 것이 아니라, 시간에 일을 맞춰야 한다.
우선순위와 마감 기한이 확실해도, 그것을 구현할 능력이 내게 있는지는 또 다른 문제다.
그동안 나는 '기한을 늘리고 공부를 더 하기'를 선택해왔다.
안좋은 방법인 것 같다.
만약 실력이 부족하다고 느껴진다면, 아래의 세 선택지 중 하나를 선택해보는 건 어떨까?
기한 안에 해결할 수 없다면 주제를 바꾸는 게 낫다.
요즘 제가 갖는 고민이랑 똑같네요 ㅠ