24.07.06 ~ 24.08.24
NEXTERS 25기의 8주간의 여정을 회고해본다.
이전 NEXTERS 24기에는 팀원으로서 활동을 했다면, NEXTERS 25기는 운영진이자 PM으로서 활동하게 되었다. 운영진으로서의 회고는 다음 글에서 진행해보려 한다.
운영진과 PM을 병행한 것은 아주 이례적인 일이었다. PM으로 활동하는 것만으로 많은 시간과 에너지를 쏟아내야하는데, 소수 정예로 구성된 운영진의 일까지 병행해야 하니 쉽지 않은 선택이다. 오히려 이는 두마리 토끼를 한번에 잡으려는 것으로 지양해야할 결정이다.
어쩌다 난 PM을 하게 되었을까? 한번 잔잔하게 되돌아보자.
PM을 시작하게 된 이유
시실 운영진을 하기 전부터 다음 기수에는 PM을 하려고 했었다.
생각의 발단은 내가 원하는 기술스택을 써보기 위함이었다. 데이터베이스는 Drizzle ORM과 Neon, 인증은 Lucia, Next.js 혹은 Astro로 한 서버에서 풀스택으로 SaaS 프로덕트를 만들고 싶었다. 그러기 위해선 프론트엔드, 백엔드 기술스택을 정해둬야기에 PM이 되어 팀원을 모아야겠다 생각했다.
PM이 되려면 좋은 아이디어가 있어야 했다. 머릿속으로 이런 저런 고민을 하던 중, 작년 누나를 위해 만든 모바일 청첩장 바탕으로 SaaS 프로덕트로 만들어 볼 수 없을까 생각했고, 그 결과 초대장 플랫폼이 내 머리 속을 사로잡았다. 간단하게 시장 조사를 해봤을 때 그렇다할 만한 플랫폼이 없었다. 이 틈새시장을 내가 먹어야겠다는 욕심까지 생기게 되었다.
그러나, 24기 마지막 회식 자리에서 준열이의 간곡한 러브콜을 이기지 못하고 나는 함께 운영진을 하게 되었다. 기수 활동 때는 운영진 역할에 집중해야기에 이 프로젝트는 개인 사이드 프로젝트로 천천히 해야겠다 생각했다. 다들 알듯이 혼자서 사이드 프로젝트하는 것은 혼자서 집을 짓는 것과 같이 쉽지 않는 일이다. 결국 OAuth, DB 연동 등 프로젝트 세팅까지 하다가 진도를 제대로 내지 못하게 되었다.
그러던 중, 25기 아이디어 모집 기간이 다가왔다. 모집 기간 절반이 흘러가는데 아이디어가 2개만 발제되었다. 최소한 8개 아이디어가 나와야 동아리가 원활하게 굴러가게 되기에 운영진 내부에서 우려의 목소리도 있었다. ‘초대장 플랫폼으로 PM 출마해보는게 어때?’ 이야기가 나오게 되었고 고심 끝에 나는 초대장 플랫폼 아이디어 발제안을 작성하게 되었다. 결국 아이디어는 총 8개가 발제되면서 아이디어 투표 기간 없이 나는 25기 PM으로서 활동을 시작하게 되었다.
팀빌딩
넥스터즈는 다른 IT 동아리와는 다른 독특한 팀빌딩 방식을 따른다. 아이디어 발제자가 팀의 PM이 되어 팀을 구성한다. 첫주차 세션 때 PM이 아이디어와 팀구성에 대해서 발표하면, 활동 회원들은 관심 있는 팀에 1,2,3 지망 순으로 팀에 지원할 수 있고 PM은 지원서 바탕으로 팀을 구성하게 된다.
나는 다지이너의 화려한 발표 장표에 맞서기 위해 귀여운 고양이 짤이 대거 동원된 발표 장표를 만들었다. 당시 구글 슬라이드 내에서 Tenor GIF를 바로 사용할 수 있는 기능이 추가 되어 쉽게 좋을 짤들을 긁어 왔었다. 지금은 노션에서도 사용할 수 있다.
나의 프로젝트는 인기가 있었다. 트랜디한 풀스택 기술스택 덕분인지 프론트엔드 개발자의 러브콜을 많이 받았고, 디자인 시스템에 대한 관심 및 모바일 청첩장에 대한 관심 덕분에 디자이너분들도 많이 찾아와주셨다. 백엔드의 경우, Node는 아무래도 비주류이여서 그런지 반응이 미지근했다. 8팀 중 유일하게 웹 타겟 서비스여서 앱 개발자 지망은 없었다.
처음 맡게 되는 PM이라 ‘어떤 팀이 꾸려지게 될까’하는 설렌 마음도 있었지만 팀빌딩의 선택에 대한 책임을 져야하는 부담감도 공존했다. 많은 기준을 세울 수 있지만 나는 화목한 가족 같은 팀을 꾸려보고 싶었다. 당시 내가 적어 뒀던 것을 나열해 보자.
- 존댓말 보다는 편한말
- 일할 때 같이 빡시게 하고 놀 때 같이 맘 편히 놀기
- 직군 별로 최대한 1명은 시니어 기수, 1명은 신입 기수로 구성
- 세션 중 내가 운영진으로 바쁠 때 대신 팀원을 챙겨줄 사람 필요
- 넥스터즈가 끝나고도 같이 서비스 고도화할 수 있으면 좋겠다
실제 팀빌딩 중에선 이런 저런 아쉬움이 있었다. 현업에서 Node 기반으로 풀스택으로 일을
최종적으로는 나의 팀은 PM 1명(나), 디자인 2명, FE 2명, BE 2명으로 구성되었다.
세션 끝나고 간단한 회식 자리에서 자기소개하고 말을 서로 편하게 놓고, 인비
라는 서비스명도 정하게 되었다. 초대장 플랫폼이니까 invite
를 줄여서 인비
로 가보자. 팀명도 그냥 심플하게 인비
로 가자! 덩달아 우리는 귀여운 마스코트 🐝도 함께 얻게 되었다.
기획 및 일정 관리
최대한 작은 단계를 거쳐서, 서비스를 런칭하고자했다. 팀 문서 및 일정 관리툴은 Linear을 사용했으며, 매주 화요일 강남에서 2시간 가량 오프라인 회의를 진행했다. 넥스터즈의 주차별 일정에 맞춰서 로드맵을 그려보면 아래와 같다.
1주차: 팀빌딩
2주차: 네트워킹
3주차: 기획발표 - 발표 자료
4주차: UT
4주차까지 프로토타입으로 넥스터즈 4주차 UT 세션 초대장을 만드는 것인데, 데이터베이스 연동 없이 정적 페이지로 서빙하여 유저 피드벡을 받아 보기로했다. 초대장의 UI를 잡으면서 이를 바탕으로 초대장을 자유롭게 만들 수 있는 플랫폼을 만들고자 했다.
5주차: 중간발표 - 발표 자료
6주차: 컨퍼런스
7주차: 넥나잇
8주차: 최종발표 - 발표 자료
8주차까지 1차 MVP로 플랫폼을 만드는 것인데, 서비스의 코어 부분을 완성하는 것이다.
SSO, 데이터베이스, 와일드카드 서브도메인, 블럭 기반의 초대장 에디터 등 플랫폼으로서의 면모를 갖추는 시기이다. 지금 돌이켜보면 이 엄청난 스팩들을 어떻게 다 구현했나 싶다.
그리고 먼 미래의 2차 MVP, 수익화가 있다.
모바일 청첩장을 타겟으로 기능을 고도화하여 수익화를 노려보는 것이다.
MVP 개발
MVP까지의 과정은 정말 쉽지 않았다. 모든 면에서 우리는 큰 도전에 직면했다.
기획이 부실했고, 어라인은 맞춰지지 않았다. 우리 팀원 모두 에디터를 디자인하거나 구현해본 경험이 없었지만, 에디터는 무척 복잡하고 고려해야할 것이 많다. 무엇을 만들어야 할지는 알았지만, 어떻게 만들어야 할지에 대한 구체적인 방향을 잡지 못해 작업이 붕 뜬 시간이 꽤 있었다.
결국 리더인 내가 책임을 져야만 했다. 내가 직접 개발에 투입되어 디자인 없이 에디터의 기본 동작을 구현하고 팀원들의 피드백을 받는 형태로 진행했다. 몇 날 며칠을 밤새가며 기능들을 구현했다. 에디터 기반이 갖춰지고나니 팀원들도 방향성을 이해하게 되었고, 각자의 역할에 맞춰 기능을 고도화해나갈 수 있었다.
현업과 프로젝트를 병행하는 것도 큰 허들이었다. 우리 모두 직장을 다니고 있어서 몰입해서 작업을 진행하기 어려웠고, 진도가 더디게 나갔다. 특히 백엔드 팀원들은 Node.js를 처음 다뤄보다 보니 러닝커브 때문에 매끄럽게 작업을 이어가기 어려웠다.
힘들었지만 다행히도 우리의 노력은 헛되지 않았다.
넥스터즈 25기 프로젝트 중 최우수상(2등) 수상 ✨이라는 값진 결과를 얻을 수 있었다. 최종 수상은 아이디어 참신성, 사용성, 심미성, 완성도, 활동 점수 이렇게 5가지 항목으로 평가가 진행되는데, 특히 완성도 부분에서 다들 좋게 평가해준 것 같다.
현재 우리의 서비스는 https://invi.my/ 에서 확인할 수 있다.
이렇게 보면 진짜 우린 온통 일만한 것처럼 보이는데, 중간에 파티룸 잡아서 놀기도 하고 회의 마치고 회식도 하고 그랬다. 이러저런 비하인드가 많지만 내가 써내려갈 수 있는 글은 여기까지인것 같다.
많은 어려움이 있었지만, 끝까지 따라와준 친구들에게 정말 고맙다.
프로젝트 회고
회고의 궁극인 목적은 향후 프로젝트에서 더 나은 성과를 내기 위함이다.
무난하게 KPT(Keep, Problem, Try) 형식의 회고로 마무리를 해보려 한다.
keep
- 명확한 문제 정의와 솔루션 제시
- “환대”라는 핵심 가치를 중심으로 프로젝트의 방향성을 일관되게 유지했다.
- 정기적인 오프라인 모임
- 만약 온라인에서 계속 회의했다면 팀원간의 어라인을 맞추기 더 어려웠을 것이다.
Serverless
로 구성된 시스템 아키택쳐- 초기 개발과 배포가 용이했고, 서버 비용이 들지 않아 유지에 부담이 없었다.
- 체계적인 프로젝트 계획
- Prototype, 1차 MVP 등 단계적 목표 설정으로 우선순위를 명확히 했다.
problem
- 프로덕트 범위가 너무 컸던 “초대장 플랫폼”
- 다양한 타겟의 니즈를 충족시키기 위해 에디터에 높은 자유도를 줘야했고, 팀원들의 역량과 시간을 고려하지 않은 계획이 세워졌다.
- 에디터 기능 구현에, 초대장으로서의 차별점이 부각되지 못했다.
- 에디터 기능 구현의 어려움
- 팀원 모두 에디터 개발 경험이 없어 초기 방향 설정에 실패했다.
- 결국 초대장 내부 디자인 시스템은 개발하지 못했다.
- 의사소통 구조의 미흡
- 팀원들의 의견을 체계적으로 수합하고 반영하는 프로세스가 부족했다.
try
- 특정 유저 풀을 타겟하여 프로젝트 범위을 최소한으로 잡기
- 경험이 있는 소수 정예로 팀을 꾸리기
- 팀빌딩 도구(회고 템플릿, DISC …)을 활용해서 팀워크 다지기
- 온라인, 오프라인 모일 때마다 사진 찍기
맺으면서
PM은 정말 어려운 것 같다. 좋은 PM이 되기 위해 갈길이 정말 멀었음을 느낀다.
그래도 이렇게 Next.js 기반으로 풀스택을 개발해보니, 더 고도화된 SaaS 프로덕트을 만들어 볼 수 있겠다는 자신감을 갖게 되었다.
이번 기수에 참여하길 잘했다.