때는 우아한테크코스 프리코스가 끝나갈 무렵 ... 나는 이런 생각이 들었다.
"와 코드리뷰 정말 좋다. 나도 이런걸 하는 회사에 가고싶어!"
"클린코드 공부해보니까 재밌다. 나도 이런걸 적용해서 팀원들과 프로젝트 하고 싶은데?"
라는 생각들이 겹치면서 그럼 이런 결론이 났다.
그럼 내가 사이드프로젝트를 한번 기획해보자!
처음에는 이런걸 내가 열어도 사람들이 많이올까? 라는 걱정이 있었고 선뜻 용기가 안났다.
하지만 우아한테크코스 프리코스에서 스터디를 리드해보다보니 자신감이 생겼고, 프로젝트를 잘 기획하면 사람들이 많이 지원하지 않을까해서 그 고민을 한날 바로 모집글을 작성했다.
우선 기존 사이드프로젝트는 내가 생각하기에 문제점이 많았다. 보통은 이미 기획된 아이디어에 참여해서 개발만하다가 끝난다.
나는 이를 해결하기위해 이전에 경험해봤던 테오의 스프린트의 장점을 살려서 내가 프로젝트를 기획하고자 마음먹었다.
이미 테오의 스프린트 13기까지 거치면서 사람들의 대부분 긍정적인 반응들이 있었고, 내가 참여했던 8기와 10기도 그랬다.
그리고 이전에 터져버렸던 프로젝트에서, 진행이 잘 되지 않았을때 테오의 스프린트 기법중 하나를 살려서 프로젝트를 진행했는데 막히던게 술술 진행되면서 분위기도 편해짐을 느꼈다.
그래서 이미 재미에 대한 검증은 끝났다고 생각했고, 그럼 위에서 발생하는 문제점들을 해결할 필요가 있었다.
이미 테오의 스프린트8기와 10기를 경험해보면서 스프린트를 찍먹(?) 해본적이 있고 테오의 스프린트에서 부족한점, 이전에 프로젝트를 스프린트로 진행했는데 해당 프로젝트를 진행하면서도 문제점들을 정의해뒀었는데 이런점을 많이 보완해서 기획했다.
모집 당시 노션글
여기에서 제일 중요하게 생각했던점은 편안한 팀분위기와,체계적인 개발, 결정권자를 위임하는거라고 생각했다.
그렇게 생각했던 이유는 아무래도 100퍼센트 온라인으로 진행하기 때문에 오프라인보다는 이야기를 하기 꺼려할수도 있고, 편안한 팀분위기가 뒷받쳐주지 않으면 좋은아이디어가 나오지 않을거라고 생각했다.
그래서 테오의 스프린트에서 기본룰을 가져왔고, 추가적인 룰을 작성해서 피그잼에 공지했다.
이건 테오의 스프린트 10기에서 프로젝트를 개발하면서 느꼈다.
초반에 프로토타입을 개발해서 1차배포하고 팀원들끼리 마음이 맞아서 2차적으로 추가 개발했다.
초반 프로토타입을 만들기 위해서 개발할때는 시안이 급해서 막 개발했었는데, 이후에 추가개발할때는 체계적인 개발을 할 필요가 있었다. (ex : 깃 컨벤션, eslint, Prettier, 코드리뷰)
하지만 이런부분에 대한 얘기가 없었고 2차배포할때까지도 1차배포와 마찬가지로 막 개발해서 배포했다.
FE가 나 포함 2명 있었는데, 다른 FE팀원이 개발한 코드는 내가 아에 모르는 불상사가 발생했고 심지어는 중복 컴포넌트를 개발하는 문제도 있었다.
그래서 이런점들을 해결하기위해 나는 좋은 개발문화를 정착해야겠다고 마음먹었다.
직전에 스프린트에서 프로젝트가 터졌던 이유는 권한이 애매해서라고 생각했다.
권한이 애매했기에 직전에 프로젝트를 기획하신 개발자분과 PM분의 마찰이 있었고 결국 프로젝트가 터져버리는 불상사가 발생했다고 생각한다.
또한 테오의 스프린트 10기때 같이 하셨던 PM분이 아무래도 얻어가는게 조금 적다고 말해주셨는데, 그 이유가 이미 기획된 스프린트에 참여했기때문에 그렇다고 말하셨다.
이런 부분을 보완하기 위해서 나는 테오의 스프린트 템플릿(테오에게 허락을 구했다.)을 공유만 드리고 프로젝트 리딩은 모두 PM분들께 양도를 하고 나는 옆에서 서포팅만 한다고 했다.
그래도 여전히 사람들이 많이 지원할까? 라는 고민이 있었는데 그런 고민이 무색하게 구인한지 이틀만에 모든 직군이 구인됐고 심지어 내가 미쳐 닫지 못한 구인글들에서 연락이와서 총 20명넘게 지원해주셨다.
연락해주셔서 감사드립니다 여러분
하지만 아직 개발도 성숙하지못한 아기개발자고 스프린트를 경험은 해봤지만 어떤 이유로 스프린트를 진행했고 어떻게 진행하는지는 잘 몰랐기에 테오의 스프린트 1기때부터 10기때까지 글을 다 읽어보고, 구글 스프린트 팀 프로젝트 관련글을 닥치는대로 다 읽었던것 같다.
추가로 테오에게도 여쭤봤는데 답변주셔서 도움을 많이 받았다.(감사합니다 테오 ㅜㅜ)
총 FE3, BE3, 디자이너3, PM2로 11명이서 진행됐고 회의는 피그잼과 게더타운을 이용해서 진행했다.
첫째날에 팀 캔버스를 하는것과 스프린트가 끝날때마다 회고를 하는거는 고정적으로 할 생각이었기에, 내가 초반 팀 캔버스 MC를 맡았다.
그리고 시작전에 팀원들에게 하나의 숙제를 내줬는데 그건 최소 하나씩의 아이디어를 준비해오는것이었다.
첫째날은 서로를 알아가는 팀 캔버스와 각자 준비해온 아이디어를 발표하면서 우리가 앞으로 어떤 아이디어를 기획하고 개발할지를 정해보는 시간이었다.
그리고 앞으로 아이디어를 펼치고 진행할때 타이머로 시간을 정해서 할거라고 공지했다.
왜 이렇게 했냐면 시간을 정해두지 않으면 회의가 루즈해질거라고 생각했고, 시간을 둠으로써 본인의 생각을 밀도있게 설명할 수 있을거라 생각했다.
우선 아이디어에 대한 소개를 먼저 진행하고 결정을 내렸다.
그래서 제일 많은 투표를 받은 민세의 아이디어인 J를 위한 Todo였다.
그리고 이제 첫날의 하이라이트인 팀 캔버스를 진행했다.
이미 사람들이 많이 쓰고있는 템플릿을 사용했고, 위에서 내린 결론중 모두의 Needs를 만족하기 위해서 템플릿에 What we want in Project라는 항목을 추가했다.
다행히 팀원분들이 모두 인싸(?)에 분위기가 좋아서 진행하기도 편했다.
첫째날은 간단한 숙제를 내주면서 마무리됐다.
그렇게 첫째날 진행후 PM분들과 회의 진행 방향성에 대해서 대화를 해봤고, 둘째날부터는 PM분들이 자체적으로 준비해온 기획 프로세스로 진행하기로 협의 됐다.
급작스럽게 아이디어를 내준 민세가 회사일때문에 참여 여부가 불가능하다고 밝히면서 아이디어 진행에 대한 혼란이 왔다.
아쉽지만 다음에 좋은 프로젝트 같이해요 민세!
아이디어 기획자가 나가기도 했고 서로 Needs를 다시 짚어가면서 아이디어를 새로 결정하는 시간을 가졌다.
그래서 둘째날에 진행하려고 했던 프로세스는 잠시 미뤄두고 새로운 아이디어를 추가적으로 받고, 기존에 아이디어를 좀 더 얘기해봤다.
그래서 최종적으로는 내가 기획한 생일 축하해용이라는 서비스고 동창회라는 키워드에도 사람들이 공감을 해서 두 서비스를 종합해서 개발해보자 라고 결정이 났다.
그래서 첫째날같은 둘쨰날?을 진행하고 첫째날에 했던 숙제를 바뀐 아이디어에 맞춰서 다시 진행했다.
내가 제시했던 생일 축하해용이라는 서비스에 대한 레퍼런스로 산타파이브를 준비해왔는데 해당 서비스는 그래픽이 우선될거라고 디자이너분들이 느끼셨고 이런 부분에 대한 우려를 주셨다.
그런 부분에 공감을 했다 하지만 나는 축하해준다라는 키워드만 동일하지 페이지를 풀어내는 방식은 다를거로 우려하는 부분과는 다르게 서비스가 만들어질거라고 했다.
그리고 실제로 그런식으로 스케치가 넷째날에 진행됐다.
서로 얘기를 많이 나눠봤지만 아직도 조금은 어색하고 피그잼 사용법이 어색한 팀원도 있기에 관련해서 PM분들께 충분한 근거와 함께 조금 더 개선해야될것 같다고 피드백 드렸는데, 이해해주시고 반영해주시면서 나와 같이 반응을 좀 더 적극적으로 진행했다.
다들 반응 잘해주셔서 감사해요
그래서 PM 두분 은하
태리
가 준비해오신 W4H1기법과 JTBD를 이용해서 우리의 서비스에 대해서 추가적으로 이야기 나눴다.
대화를 나누면서 내가 제시한 "사람들의 추억을 데이터로 저장한다"에 팀원들이 꽂혔는데 뭔가 뿌듯했다.
위의 W4H1을 통해서 우리의 생각에 대한 발산을 했고, 그래서 딱 하나의 문장으로 결정하는 JTBD도 진행했다.
이를 통해서 우리가 서비스를 어떻게 생각하는지 서로 알게됐다. 그래서 어떤식으로 서비스를 만들어야할지 갈피가 잡혔고 원래는 여기까지 진행하고 셋쨰날을 마무리지으며 진행했던 과정들을 통해서 스케치를 다음날까지 준비하려 했다.
하지만 내가 생각하기에 발산은 충분했지만 수렴이 어느정도돼야 스케치를 진행하는데 문제가 적을거라 생각해 수렴의 시간을 가지고 회의를 마무리하자고 건의했다.
다행히 내 의견에 공감하는분들이 계셔서 추가적으로 PM분들 은하
태리
이 준비하고 생각해오신 MOSCOW기법을 미리 떙겨서 진행했다.
이를 통해서 우선 디벨롭해야될것들과, 우리 서비스에서 놓치면 안될것들을 생각해볼 수 있었고 디자이너인 히니가 도움이 많이 됐다고 했다.
그리고 마지막은 넷째날에 우리가 얘기나눴던걸 토대로 스케치를 해오는 숙제로 마무리 됐다.
이날 회의가 끝나고 PM분들께 프로젝트 진행방식에서 내가 참견이 많았는지 여쭤봤다.
사실 셋째날에 MOSCOW는 반응은 좋았긴 했지만 원래 PM분들의 계획에는 없었기에 이 부분을 확실히 짚고 넘어가고자 이야기 꺼냈다.
하지만 PM분들은 오히려 고맙다고 했다.
원래 이런 의도로 물어본건 아니었지만(?), 그래도 앞으로 이런부분은 확실히 PM분들께 양도하는게 맞는것 같아서 셋째날을 기점으로 프로덕트에 매니징 권한은 100퍼센트 양도했고 스프린트 회의 진행에 대한 회의에는 빠졌다.
왜 그렇게 진행했냐면 확실히 양도해야 PM분들이 자유롭게 의사를 결정할 수 있고, 자유롭게 결정할 수 있어야 밀도있게 매니징을 할 수 있다고 생각했다.
그리고 회의에 대한 기록과 관리는 이미 PM분들이 다 하고 있었다.
넷째날은 준비해온 스케치를 발표하는 시간을 가졌고 다른 개발자분들이 부담을 느끼셨다.
왜냐하면 나도 스케치는 어릴떄부터 소질이 없었고, 다른 개발자분들도 아마 비슷한 심정이었을거였다.
하지만 이전에 스프린트를 진행해보면서 디자이너분들이 준비해온 스케치가 자연스럽게 결정되는걸 보면서(퀄리티 차이가 압살이다) 그런 걱정은 내려둬도 된다고 했다.
그리고 백엔드인 제이가 회사 업무때문에 계속 참여가 힘들다고 말하셔서 안타깝게 나가게됐다.
아무래도 프로젝트 진행에서 매일 회의를 가지고 그외에 준비해야될것들도 있어서 많이 빡빡한거같다고 느끼고 있었다.
안타깝지만 제이 다음에 같이 프로젝트 할 수 있는 기회가 있으면 좋겠어요!
역시나 스케치는 디자이너분들이 피그마로 준비해온 결과물들이 압살이었다.(우측 하단이 디자이너분들이 준비해온 스케치)
그래서 프로덕트에 대해서 수렴하고 발산할땐 디자이너분들의 스케치로 진행했고 전체적인 틀도 마찬가지였다.
그리고 이때 UI/UX에 대한 권한은 디자이너분들이 결정하자고 건의했고 디자이너분들의 스케치를 경험하고 난 직후라 자연스럽게 모두가 동의헸다.
위의 발표들을 마치고 디자이너분들이 디자인에 대해서 결정을 더 잘할수 있도록 꼭 있어야되는 기능들에 대해서 이야기 나눴다.
중요 키워드 : 익명성, 랭킹, 데이터 기록에 대한 표시, 이쁜 UI
발산은 많이 됐다. 확실히 정해진 의사결정권자 덕분에 우리는 결정을 잘할 수 있도록 기능들에 대한 정의를 진행했다.
그리고 진행하면서 꼭 있어야하는 기능들을 추가하고, 누락된 페이지는 추가해서 우리 서비스의 모든 페이지들이 정의됐다.
이제 개발이 조만간 시작됨을 느꼈고, 넷쨰날 진행하기전에 PM분들께 개발에 대한 리더들이 있어야될것 같다고 건의했다.
이유는 앞서 UI/UX결정권자, 프로젝트 결정권자를 정한것과 같다.
그래서 BE의 결정권자는 도모, 프론트엔드 결정권자는 모승(나) 로 결정됐고 회의를 마치고 도모와 어떤식으로 개발할지에 대해서 이야기를 나눴다.
우선 나는 프로젝트 기획초기에 느꼈던 체계적인 개발, 좋은 개발문화에 관한 이야기를 꺼냈다.
앞서 수료한 우아한테크코스 프리코스에서 했던 경험과 그동안 팀프로젝트 했던 경험을 근거로 얘기했다.
이 부분에 대해서 도모도 이전 프로젝트를 근거로 크게 공감했다.
그래서 아래 키워드를 중점으로 개발하겠다고 결정했다.
중요 키워드 : 배포,CI/CD,테스트코드,리뷰 문화,깃컨벤션,깃플로우,이유가 있는 스택결정
그리고 마지막으로 도모가 이런걸 열어줘서 너무 고맙다고 했다.
사실 이걸 만든 구글과 테오에게 감사하는게 맞는게 아닌가?라는 생각도 들었지만 이때 참 뿌듯함을 느꼈다.
어쩌면 제일 중요한 우리 팀명과 서비스명을 건의하고 투표하는 시간을 가졌다.
이는 PM태리
가 슬랙에 투표를 붙였다.
서비스명은 나(모승)이 건의한 레코딧, 팀명은 태리
가 건의한 10명+어벤져스를 뜻하는 텐져스로 결정됐다.
이번 프로젝트가 스프린트로 진행되고, 프로젝트에 할애할 시간이 상대적으로 많다보니 현직자분들이 계속 참여하시기 힘들것 같다고 하셨고 그래서 추가적인 인원을 모집했다.
예상외로 정말 많은분들이 지원해주셨고, 워터와 라이언이 우리 텐져스에 합류하게 됐다.
정말 반가워요 워터, 라이언! 재밌고 의미있는 서비스를 같이 만들어봐요.
이제 기본적인 기획은 끝났고 진짜 개발이 시작되려했다.
하지만 애자일하게 스프린트를 진행하는 방식과는 다르게 진행되려했다.
1 . 한주 스프린트의 목표가 프로토타입을 위한 최소한의 기능들의 조합이 됐어야 했는데 우리는 기능하나에 대한 완벽한 기획과 디자인이후 개발을 진행하려했다.
2. 그러다보니 개발자가 일을진짜 시작하는건 기획과 디자인이 나온 이후다.
3. 1,2번을 종합해보면 애자일이 아니라 워터폴 방식이다.
그래서 내가 PM분들에게 건의후 팀원들과 모두 회의를 가지면서 우리의 진행방식과 우리 프로젝트에 참여하게된 계기를 리마인드하면서 방식을 리워크했다.
그래서 나(모승)는 이전 테오의 스프린트에서 진행했던 BDD와 SDD를 진행하면서 Task들을 만들고 이를 통해서 바로 개발에 시작하는 의견이 나왔고, 태리(PM)는 스프린트에는 원래 플래닝기간이 있기때문에 이를 통해서 우리가 원래 못했던 서비스에 대한 검증(우피나 인터뷰 설문조사등)을 갖고 팀워크를 가지자고 했다.
그래서 스프린트 플래닝 기간을 갖자고 결정이났고, 우리가 실제 의미있는 서비스를 개발하기 직전에 알아보기 위해 우피와 설문조사 인터뷰를 통해서 수요조사를 진행했다.
188명이나 설문조사에 참여해주셨습니다...
그리고 이에 병렬적으로 프로젝트를 잘 만들기위한 팀워크를 다지고 서로 코딩하는법 우리 프로젝트에서 써볼 수 있는것들 (프론트입장에서 디자인 패턴, 상태관리 등등)을 공부해보는 시간을 가졌다.
PM분들의 리드하에 플래닝기간을 2주동안 설정했고 첫주에 위에서 했던 우피나 설문조사를 진행하면서 수요조사가 끝났고 아직 통계를 다 낸건 아니지만 지금까지 통계를 봐도 충분해서 플래닝기간이 끝나면 바로 프로토타입 개발이 시작된다.
그리고 매주 회고도 진행하고 있다. 방법은 PM
이 준비해온 배달의민족 KPT 방법으로 진행하고 있다.
하면서 Jira로 업무 태스크를 나누고, 디자이너는 와이어프레임 제작, 프론트엔드는 선행 지식 습득, PM은 수요조사, 백엔드는 어떤 서비스던 로그인은 필요하기떄문에 해당작업을 미리 하고 있다.
추가로 전체적인 팀워크를 위해 이벤트도 진행하고 있다.
아래는 PM분들인 은하
태리
가 준비해온 이벤트에 대한 슬랙내용이다.
개인적으로도 팀원들을 내가 잘 알아야 팀적으로도 더 잘 될수 있다고 생각해서 텐져스 팀원들과 1대1로 커피챗을 진행하고있다.(원래 프로수다꾼이라서 얘기하는것도 좋아하고 팀원들과 친해지고 있어서 정말 좋다)
그리고 첫 배포끝나면 회식도 하기로했다!(제일중요)
사실 따지고보면 첫째주에 같이 기획한 결과물 이후에 진척도가 없다고도 볼 수 있다.
하지만 우리는 왜 이런서비스를 만들어야하는지 동기, 팀워크는 어떤 사이드 프로젝트보다도 뛰어나다고 생각한다.
아래는 내 개발자 이력서 짧은 소개글이다.
팀원 전체가 뛰어서 목표지점으로 달려간다면 개개인은 일찍 도착할 수 있습니다.
하지만 팀원 전체가 목표지점으로 걸어간다면, 가면서 소통 가능하고 목표지점이 바뀜에 유동적으로 대처하면서 모두가 목표지점에 도착할 수 있다고 생각합니다.
진짜 따지고 보면 내가 처음 기획한 의도와도 달라졌고 현재 진척도가 없긴 하지만 위처럼 팀원전체가 우리의 목표로 잘 걸어가고 있다고 생각하고, 결국 목표지점에 도착할거라 생각한다.
글이 너무길어져서 스프린트 플래닝기간까지 릴리즈하고 진짜 개발이 시작하고 스프린트가 진행됐을때 추가로 글을 작성해서 릴리즈해야겠다고 맘먹어서 여기까지 작성하려고 한다.
프로젝트를 진행해 보면서 느낀 점을 개선하며 리드 해나간 게 인상적이네요. 저는 프로젝트 하면서 처음에는 열정적이었다가 시간이 지나면서 다른 일정과 겹치고 딜레이가 생기면서 뒷심이 떨어졌던 거 같아요. 저같은 팀원을 모승이 잘 이끌어주리라 생각합니다. 결과물이 기대됩니다 후후~
멋진 회고네요! 스스로 이러한 프로젝트를 기획하고 팀 빌딩을 하고 진행해보는 실행력을 칭찬합니다!! 어떤 결과가 만들어질지도 궁금하네요! 화이팅입니다 :)