프로젝트 제목을 보면 알 수 있듯이, 교육을 시작하고나서 첫 프로젝트를 진행했다.
0️⃣ 온보딩(Onboarding)이란,
'배에 올라타다, 그룹이라는 배에 새로 올라탄 사람들이 팀의 한 부분으로 잘 어우러지도록 돕는 과정'이라고 한다. 나는 호주에서 커피를 만들었는데, 첫 카페에서 나를 뉴비(newbie)라고 부르면서 나보다 오래 일했던 친구들이 a-z까지 하나씩 알려주던 기간이 있었다. 생각해보니 이 기간이 온보딩 기간이었구나 싶다.
교육에 앞서, 김민태 선배님(후배라고 부르는것을 좋아하신다고 한다. 강의중에는 못 불러볼 것 같아 블로그에 조심스레 적어본다😁)과 1:1 커피챗을 통해 궁금한 점을 여쭈었는데, 그 때 답변해주셨던 인사이트의 연속점이었던 프로젝트라고 말하고 싶다.
- 생각을 글로, 말로 잘 정제하는 것은 어렵다. 꾸준히 연습해야 한다.
- 개발자의 시각으로 생각하는 사고방식을 길러야 한다.
1️⃣ 왜 온보딩 프로젝트를 할까
우선, 개발을 하자!고 하면 그 이전에 개발자가 접해야 할 문서들이 존재한다. 요구사항 정의서, 프로젝트 정의서, 기능 정의서 등 생산자의 입장에서 사용자를 위한 서비스를 고민한 결과물로서 작성된다. 이 과정 중에서 우리는 최대한 기능을 작게 자르고 이슈를 쪼개 각자에게 분배도 해보며 협업을 경험한다. 또한 글을 정리하고 정제해가면서 소프트웨어 공학이나 개발관련 용어를 찾아보며 자연스럽게 익숙해진다. 마지막으로, Git과 GitHub을 사용하여 기록하고 관리하며, 팀원 모두가 함께 일하는 것에 익숙해진다.
2️⃣ 아이디어 모으기
우리들이 실제 겪었던 문제 중 하나를 해결해 볼 수 있는 서비스를 만들어보자
나의경험 🔽
더보기
나는 호주에서 5년 가까이 머물렀다. 생활하면서 가장 힘들었던 건 음식도 언어도 아닌, 집 구하기였다. 전세의 개념이 없고 렌트와 자가만 있는데, 렌트하기에는 너무 비싸니 거진 모든 유학생들은 쉐어를 한다. 그런데 나는 이 쉐어 하우스를 구하는 도중 집주인의 말바꾸기로 사기당한 적이 있다. 분명 인스펙션(미리 집 구경)를 통해 알아보고 예약금을 넣었는데, 입주하고 보니 매주 내야 하는 금액을 더 올려서 부르는게 아니겠는가. 이미 거금을 들여 이사까지 모두 마쳤는데.. 방을 구하는 나는 을이었다.
- 만약, 해외 유학생들이 믿고 예약할 수 있는 호스트(집주인)을 연결해주는 서비스가 있다면 어떨까. 연계 대학교에서 인증받은 호스트를 추천받는다면, 안심하고 한국에서 미리 예약을 할 수 있지 않을까.
3️⃣ 3일간의 협업 과정
회의시간 너무 차분하고 조용한데 의견수렴 너무 잘 되고, 매일 발전되는 결과물을 보면서 뿌듯하고 재밌었다. 2조 잘했다! 🙌
- 어떠한 프로덕트를 만드는데 있어, 사용자가 원하는 요구사항을 개발을 할 수 있는 단계까지 인터뷰하고 기능 단위를 쪼갠다.
- 정의서는 개발을 하기위한 문서로, 개발자 관점에서 개발을 하기위해 정제하는 문서이다.
- 요구사항 정의서: 제품이 제공해야 되는 기능 요구 정의서
- 요구사항 정의서에 기술된 기능은, 최소 기능 요구사항이며, 추상적일 수 있으며, 기능의 구체화는 제품 구현 단계에서 이루어짐
- 프로젝트 정의서: 요구사항 정의서 기반으로 프로젝트 설계
- 기능 정의서: 사용자 스토리 기반으로 세부 기능 정의
어려웠던 점 & 그 안에서 배운 것들 🔥
- 처음 적어본 정의서
- 세 가지 정의서 내용의 통일성을 위해 기능단위로 어떻게 묶고 분류할지, 순서를 어떻게 정해야 할지 생소했다. 맞춰보려고 반복적으로 읽다보니까 조금씩 익숙해지는 것 같았다.
- 문서 작성 시 역할 분담과 이슈생성
- 기능단위가 아닌 문서의 범위를 나눠서 이슈를 만드는 것은 어려웠다. 각자 하나씩 따로 적는 것으로 역할을 분담했고, 마지막에 팀원 한명이 스크린을 공유하며 다같이 읽어보고 회의하고 수정했다.
- 팀으로 문서 작성할 때 효율적인 작성이란? 파트를 나눌까, 각자 작성해보고 합칠까?
- 누가 해도 똑같은 산출물이 나오는 부분은, 담당자를 나누자
- 정하는 사람이 달라질 때 마다 산출물이 달라진다면, 같이 머리를 굴려보자
- 기능정의서를 어디까지 적어야 하는가
- 궁금했던 점: "그럼 기능은 얼마나 작게 쪼개야 하는가?" 여러번 고민하고 작업하다보면 느낌이 온다.
- 기능이 너무 많은것 같다? -> 고민 🤔 -> 그렇다면 제일 중요한 핵심기능(MVP)부터 만들어보자 -> 그 부분만 기능정의서를 만듭시다 (합의) -> 개발자: "그럼 언제까지 필요해요?" -> "2달"(제약사항) -> 개발자: "오케, 그럼 2달 동안 만들 수 있는 것"
4️⃣ 온보딩 프로젝트를 마치며 💬
- 개발을 시작하기 전 정의되어야 하는 문서들을 직접 작성하면서, 고민하고 서로의 의견을 나눴던 시간이었다.
- 잘 기록하는 것은 너무 어렵다. 이번 프로젝트를 통해 글로 표현을 더 잘 해보고 싶다고 생각했다.
- Git/GitHub을 협업에 잘 써보고 싶다. 사실 이번 온보딩 프로젝트에서 효율적으로 잘 사용하지는 못한 것 같다. 하지만 그것 나름대로 다음을 기약해 볼 수 있는 경험이었다. (Git/GitHub를 배운 후 프로젝트가 진행된다면 더 잘 사용해볼 수 있지 않을까 기대해본다.)
- 단순히 글로만 배웠던 내용들을 실제 경험을 통해 이해의 깊이를 다질 수 있었다. 개발할 수 있는 단계로 오기 까지 어떤 과정을 거치는지, 각 문서는 어떻게 구성되는지, 어느 부분을 어느 관점에서 바라봐야 하는지 알게 되어 의미있었고 유익했다.
- 마치고 보니 더욱 좋은 경험이었다. 다음 진행될 프로젝트도 기대된다.