부스트캠프의 그룹프로젝트 1주차를 마쳤다.
배운 것
프로젝트를 관리하는법
지금까지 나는 여러 프로젝트를 했지만, 뭔가 체계적으로 한다기보다는 오늘은 요걸 해보자! 라고 즉흥적으로 정해서 하기 일수였다. 그래서 프로젝트가 생각보다 일찍 끝나거나, 혹은 매우 늘어지기도 했다.
이번 주차에는 그렇지 않기위해서 스크럼 방식을 통해 프로젝트를 관리하는 방법을 학습할 수 있었다.
정말 좋은 방법이고, 앞으로 반드시 이런 방식으로 프로젝트를 관리해야겠다는 다짐을 했다.
스크럼
스크럼은 복잡한 제품을 개발하고, 배포하고, 유지하기위한 프레임워크다.
이걸 여기서 아무리 설명해봤자 감이 오지 않을 것이다.
백로그
백로그란 완료되지 않은 작업 항목들의 리스트나 목록이다.
일종의 팀의 todo list 같은 것이다.
백로그는 제품백로그(전체 백로그)와 스프린트 백로그(스프린트, 한 주의 백로그) 두가지로 관리된다.
에픽, 스토리, 테스크
에픽
우리가 개발할 하나의 제품에는 여러가지 큰 기능들이 있다. 에픽은 그것들을 말한다.
티스토리로 따지면 글을 쓸 수 있어야하고 ,글을 볼 수 있어야하고, 구독을 하는 등 큰 기능들이다.
스토리
스토리는 하나의 에픽에서 필요한 세부 기능들이다.
who, why, what이 들어가야한다.
글을 쓰는 기능이라면 글꼴을 설정하는 기능, 글자 크기를 바꾸는 기능, 임시저장을 하고 불러오는 기능, 미리보기를 할 수 있는 기능 등이다.
예를들어
우리 서비스 사용자는 새로운 할 일을 등록하기위해 목록에 todo를 추가한다.
와 같이 작성한다.
이게 곧 데모 시나리오가 된다.
태스크
태스크는 스토리를 개발자 입장에서 잘게 쪼갠 것이다. 즉, 실제 구현시에 필요한 작은 구현들을 모아둔 것이다.
예를들어 글자 폰트를 바꿀 select 창을 구현, 임시저장을 회원별 db에 저장 등이 있을 것이다.
찾다보니 에픽보다 더 큰 개념인 Theme도 있다는 것을 알게됐다.
이렇게 쪼갠 태스크는 이제 얼마나 걸릴지 어느정도 예상을 할 수 있게된다.
이를 통해 이제, 그 일이 얼마나 걸릴 지, 할 수 있는 일인지 판단이 가능해진다.
할 수 없다고 판단된다면...
스펙을 버리거나... 배포를 미루면된다.
태스크는 담당자와 인수조건(태스크가 끝나는 조건)을 표기한다.
이렇게 제품 백로그를 작성하면, 매주 특정 요일마다 스프린트 백로그를 작성하며 그 주에 어떤 것을 할 지 결정할 수 있게된다.
데일리 스크럼
데일리 스크럼은 확인이 아니라, 정말 공유를 위한 것이다.
빠르게, 자신의 상태는 어떻고, 무엇을 했고, 오늘은 무엇을 할 것인지를 공유하기에 빠른 시간안에 마무리해야한다.
이를 통해 서로의 상태를 공유하고, 제대로 일이 진행되지 않는다면 그사람을 도울 수 있게 된다.
회의가 필요한 경우에는 따로 회의를 잡아서 하면 된다.
아쉬운점, 개선해야할점
태스크 : 백로그의 산정시간, 담당자, 인수 조건의 부재
아무래도 WebRTC, socket등 새로운 기술들을 많이 도입하다보니 시간을 산정하기도 어렵고, 태스크를 나누는 것도 어렵기도 했다. 하지만 이제는 web RTC를 어느정도 구현해 놓은 상태로 태스크도 쪼갤 수 있고, 산정시간도 어느정도 고려해볼만 하다.
무엇보다 한주가 지나면서 우리 팀의 작업 속도를 어느정도 체감할 수 있었기에 조금 더 명확하게 태스크를 쪼개고 관리할 수 있을 것 같다.
또한, 멘토분께 기능이 너무 많아서 시간안에 구현하기 힘들 수 있다는 피드백을 받아서 좀 더 백로그를 명확하게 해야할때가 아닌가 싶다.
문서화
자꾸 문서화 하는걸 까먹는다.... 기억은 휘발되기에 결정된 사항들, 고민했던 것들은 기록해두는게 좋다.
의식적으로 계속해서 문서화시키는 버릇을 들여야겠다.