본문 바로가기

회고

싸피 6기 수료 후기

반응형

감동적인 꽃다발

싸피 감성 좋다.

속 쓰린 수료식

아쉬웠던 점이 많이 남는 수료식이었다.
같이 고생하며 공부했던 동기들이지만 나는 집에서 손을 흔들고 있고,
그 사람들은 화면 속에서 상을 받았다.

분했다.

그래도 꾸역꾸역, 내가 1년간 가장 중요하게 생각했던 프로젝트 싸피가 끝났으니 회고를 써보려 한다.


나의 2학기 프로젝트 결과는 자율(오픈소스) 프로젝트 우수상이 전부.
상을 받은 사람들은 세 번의 프로젝트 모두 수상을 한 사람들이다.
팀원으로 처음 참여한 공통프로젝트는 차치하더라도,
내가 팀장을 한 두 번의 프로젝트는 두 번 다 수상이 목표가 아니었다.
특화프로젝트는 수상하지 못했고,
자율(오픈소스) 프로젝트는 감사하게도 전혀 생각치 않았지만 우수상이라는 결과로 이어졌다.
특화프로젝트 PokeLand는 수상하지 않아도 자체적으로 설정한 목표를 달성해서 너무 기쁘게 마무리했다.

https://github.com/onys-programmer/pokeland

애자일 프로세스를 경험하고 싶은 팀원들을 모아 시작했고 실제 사용자들이 좋아할 만한 서비스를 개발한 결과 150명의 사용자가 우리 프로젝트를 사용하고 응원과 피드백을 해주는 가슴 벅차는 경험을 했다.
하지만 이 프로젝트도 시작에는 나의 엄청난 시기, 질투, 부러움, 좌절감이 있었다. 싸피 출신 개발자가 만든 "내 트리를 꾸며줘" 프로젝트 특강을 보면서 '나는 왜 저런 프로젝트를 만들지 못하는가?' 하며 그 사람과 나를 비교했다. 좌절감과 열등감에 휩싸였었다. 결국 며칠 뒤에 그것을 좋은 방향으로 승화하여 좋은 경험과 성과로 만들어내긴 했다. '그래, 나도 그런 프로젝트를 만들어보자!' 라며 싸피 소통 게시판에 "내 트리를 꾸며줘 같은 프로젝트를 경험하고 싶은" 팀원들을 모집해서 프로젝트를 시작하게 된 것이다. 그렇게 배운 것은 이것이다.

공동의 팀 목표가 있는 것이 매우 중요하다.


유저 피드백이라는 공동의 목표 덕에 MVP를 빠르게 배포하고 많은 유저의 응원을 얻을 수 있었다.
실서비스를 고려하여 개발하다보니 완성도를 챙기느라 볼륨은 작아서 수상하지 못했던 것 같다.
포켓몬이라는 저작권 우려가 있는 요소도 수상 실패에 큰 영향이 있었을 것이다.



마지막 프로젝트 Druid6는 실제로 사용하고 꾸준히 유지 보수하며 오픈소스 컨트리뷰트를 받을 프로젝트를 만드는 것이 목표였다. 하지만 싸피의 프로젝트 기간이 끝남과 동시에 개발 동력을 잃어버리고 포트폴리오에 박제되고 말았다. 포켓랜드처럼 실사용자 리뷰를 받지 못했고(내부 동력), 이 프로젝트를 개발해야 하는 외부동력(근무, 수입 등)이 없어진 것이 큰 이유인 것 같다. 다만 6명 모두 프론트엔드 개발에 착수(내가 가르쳤다)한 덕분에 프로젝트의 완성도를 인정받을 수 있었고, 우수 프로젝트에 선정되어 본선 발표회에 진출하는 영광을 누렸다.

https://github.com/onys-programmer/druid6


그 이후 전국 8팀을 선발하는 결선 발표회에 진출하기 위해 밤을 새워 노력하며 발표 퀄리티를 높였지만, 발표하는 그 때에 갑자기 렌더링 문제가 발생했다. 준비했던 발표가 어그러졌다. 안정성이 없는 프로젝트라는 이미지를 모두에게 남겨주며 근소한 차로 결선 발표회에 진출하지 못했다. 이는 지금까지도 필자에게 뼈아픈 기억으로 남아있다. 그리고 아직도 문제 원인을 정확히 알지 못한다. 발표 이후부터는 정상 작동했기 때문이다.

수상을 못한 이유는 위와 같고, 자체 목표를 달성하지 못한 이유는 우리가 자체 목표를 리마인드하지 않았기 때문이라고 본다.

우리는 당시 기능을 구현하기 위해 새로운 플랫폼과 기술을 끊임없이 시도해야 했다. '할 수 있을까?' 하는 불안감이 높아져있는 상태였고, '처음 경험해보는 오픈소스' 라는 두려움도 있었던 것 같다. 필자는 최대한 팀원들이 자신감을 가질 수 있게끔 격려하는 데에만 집중했다. 그리고 '목표고 뭐고 일단 완성도 있는 프로젝트'를 만드는 것에 집중했다. 목표가 바뀐 것이다. 결국 바뀐 목표를 달성하는 데에는 성공했지만 처음 설정했던 목표 '오래도록 쓰이고 유지보수하는 프로젝트'를 만드는 것에는 실패했다. 굉장히 어려운 목표임은 맞다. 하지만 필자가 아쉬운 것은 MVP를 유저에게 선보이지 못하여 어느 부분이 쓰기 좋은지, 어느 부분이 쓰기 안좋은지 피드백을 받지 못한 것이다.

우리 팀은 항상 9 to 6 를 지켜가며 일했다. 그렇게 정한 것은 아니지만, 자연스레 야근하지 않는 분위기가 형성되었다. 필자도 꼭 야근을 해야하나라는 질문에 명확한 해답을 내리지 못한 상태이기 때문에 야근을 요구하지 않았다. 덕분에 워라밸과 행복을 지키며 일할 수 있었다. 팀이 언제 스퍼트를 내야 할지 결정하는 것도 팀장의 역할이다. 우리는 언제 스퍼트를 내야 했을까? 스퍼트 자체를 내야 했을까? 야근을 했다면 우리의 퍼포먼스가 조금은 더 나올 수 있었을 것이다. 하지만 그게 중요한 것이 아니다. 중요한 것은 이번에도 "팀 공동 목표"였다.

팀 목표가 '오래도록 쓰이고 유지보수하는 프로젝트' 제작이었다. 그러려면 무엇이 필요한지 팀장으로서 더 고민했어야 한다. 이것에 필요한 것도 MVP 배포라고 생각한다. MVP 배포를 자율 프로젝트 때는 팀원들에게 강력히 주장하지 못했다. 당장 기능을 구현해내는 것이 더 급했기 때문이다. 필자도 프론트엔드를 가르치는 데에 여념이 없었다. 하지만 MVP 배포 데드라인을 정확히 선포하고 그것에 맞춰 스퍼트를 냈어야 한다고 생각한다. 그랬다면 우수상을 수상해 기뻤던 것보다 우리의 목표를 달성해 기쁜 것이 더 큰 그런 결과를 낼 수 있었을 것이다.


자율 때도 팀 공통 목표를 중요시 여겨 만들긴 했지만 그것을 어떻게 달성할 것인지에 대한 충분한 생각이 부족했다. 따라서 팀 공통 목표에 대한 생각도 희미해졌다. 따라서 정리해본다.

1. 팀 공동 목표는 매일 낭송해도 지나치지 않는다.
2. 팀 공동 목표를 이루기 위해 필요한 것은 구체적으로 무엇인지 충분히 생각해야 한다.

우수 수료생을 뽑는 기준에는 정량적 평가가 들어가있을 수 밖에 없으니 수료식 때 수상하지 못했다고 노하지는 말자. 두 프로젝트 다 수상이 목적이 아니었다. 최선을 다했고, 미숙한 점도 많았다.

싸피 일년으로 많이 성장했다. 회고를 쓰면서 더욱 많이 배웠다. 다만 스스로 회고하고 반성하지 않았다면 그 성장의 차이는 심했을 것이다.

싸피의 2학기는 코드리뷰와 프로젝트 리뷰를 적극적으로 제공하지 않는다. 그냥 '이 팀, 이 팀 잘했다. 상줄게. 다음 프로젝트 또 시작해' 끝이다. 그래서 프로젝트가 끝난 후 본인이 알아서 배워야 한다. 그렇지 않으면 팀의 성장은 더딜 수 밖에 없다.
잘한 팀은 그대로 하니 또 결과가 좋다.

열정있는 사람이 피드백을 만나면 크게 성장한다. 필자는 발표 면에서 개인 피드백을 받았고 그런 성장을 경험했다. 다만 프로젝트를 개발할 때에는 그런 경험을 하지 못한 것이 너무나 아쉽다. 다들 당장의 기능 구현을 해내는데 관심이 쏠려 그 부분을 질문하고 도움 받았다. 전체적인 프로젝트가 어떤지는 신경을 덜 쓰게 되었다. 또, 최종 발표가 끝나고 어느 부분이 부족한지 프로젝트 리뷰가 있었다면 그것을 보완해 더 성장하여 다음번엔 더 좋은 결과를 낼 수 있을 것이다.
싸피 교육생들 거의 모두가 최선을 다하지만 피드백이 없으면 더 할 수 있던 성장을 못하게 된다. 나와 같이 열정적이고 진지하게 프로젝트에 임할 후배들은 적극적으로 프로젝트 전체 피드백을 받고 회고, 반성, 성장하여 소중한 프로젝트를 더욱 멋지게 선보일 수 있기를 바란다.

만약 7기의 실습 코치가 된다면, 잘하는 팀보다 부족한 팀에게 아낌 없는 리뷰를 해주고 싶다. 부족했던 팀이 치고 올라오면 잘하는 팀은 더 열심히 하여 성장할테니.

반응형