
Intro
- 드디어..! 마지막 프로젝트가 시작되었다. 현재 2일째로 이제 막 개발을 시작했다. 그 여정을 잠시 정리해보고자한다.
- 프로젝트를 하면서 가장 중요한것은 역시 문서화이다!! 문서화가 잘 되어있다면 소통에 사용하는 Cost를 줄이고 개발에 역량을 집중할 수가 있기 때문이다. 그래서 이번에는 프로젝트의 모든것을 기록해보고자 했다.그 시작이 바로 프로젝트 S.A였다.
각종 규칙 정하기
- 팀 규칙은 크게 정할것은 없었다. 자리비울때 팀원에게 알려주고 비우기, 회의시간에 회의록 작성하기, 회의시간 오전10시/오후7시 두번에 걸쳐 오늘 할일과 오늘 한 일을 나누기 등이있었다.
- 브렌치 전략과 커밋메세지 PR, 이슈 컨벤션등을 정하였다. 이번에 도입한것은 PR과 이슈 템플릿을 적용하여 모든 팀원이 같은 양식으로 PR과 이슈를 작성하도록 만들었다. 그리고 개발기간동안에는 develop에서 대부분의 작업이 이뤄지기에 develop을 기본브렌치로 만들어놓았다.
- 그 외에 기타 주석, 코드컨벤션, 파일 및 xml 네이밍 컨벤션을 정하였다.
- 정해놓은것은 좋았지만 실제로 이것이 우리 프로젝트에서 이뤄지도록 지속적으로 신경쓰고 관리해야할 사람이 필요한데 그게 바로 팀장인 나와 또한분의 팀장님이다..!
프로젝트 주제선정
- 주제는 어쩌다보니 여행에관한 이야기가나왔고, 가계부가 나왔고, 그래서 여행가계부인데 커뮤니티도 있어서 가계부 자랑도하고 여행정보도 얻고, 네이버 블로그 검색과 스크랩이 가능하여 내 정보에서 스크랩을 모아서 볼 수 있는 여행에 꼭 필요한 친구 TripMate라는 앱을 만들기로 결정했다.
- 주제를 정하기전 개인적인 걱정은 너무 단순한 구현에서 끝나면 어떻할까라는 고민이있었는데 그렇게되진않을것같아서 다행이다 ㅎㅎ
프로젝트 소개 및 주요기능(기능명세서)작성
- 주제를 선정한 이후 기능명세를 작성하는 시간을 가졌다. 기능명세는 작성하면 할 수록 추가할게 참 많다는 생각이 들었다. 우리가 당연하게 사용하는 많은 기능들(로그인, 게시판 글 조회 및 작성 등..)은 너무 익숙해서 당연히 제공되어야한다고 생각을하지만 실제 구현하기위해서는 다양한 부가기능이 붙는데 이것을 다 캐치하여 기능명세서에 적어나가는게 주요 과제였다.
- 기능명세서를 적으며 느낀것은 기능명세를 잘 적어놓으니 UI/UX를 생각할때 막힘이 없었다는것이었다. 그리고 어느정도의 화면이 필요하고 어떤부분에서 예외처리를 해야할지, 무엇을 기술검토해야할지등이 명확해졌다. 기능명세를 쓰면서 이미 머리속으로 개발에대한 전체적인 그림이 그려졌다.
프로젝트 일정
- 전체적인 프로젝트 일정은 내가 설정하였다. 현재 우리일정은 6주라는 시간안에 위 기능을 충족하는 앱을 만들어야하기에 시간이 빡빡하다.. 6주안에 앱 하나를 PlayStore에 출시해야하는것이다. 그래서 Task관리가 너무너무 중요하다.
- 일단 기능명세를 근거로 해당기능을 개발하는 기간을 산정해봤는데 이게 전부 내가 만드는게 아니라 우리 팀 5명(나를 포함해서)이 나눠서 개발을 진행해야하므로 기간산정에 사람들의 실력까지 고려해야하는 작업이었다.
- 하면서 느낀것은 이전에 개발은 코드를 짜면서 바로 시작하는것이라 생각했는데 개발을 하면할수록 문서작성단계에서 개발의 윤곽이 잡힌다는것을 체감하는 시간이었다.
Outro
- 예전에 어떤 블로그글과 유튜브에서 글을 잘 쓰는 개발자에게 면접에서 좋게본다는것을 본적이있다. 개발자라는 직업을 가만히보면 키보드로 가장 많은 글을 쓰는 직종이 아닐까싶다.
- 내가 쓴 글과 코드는 다른사람들에게 충분히 납득될만한 논리와 가독성으로 비춰질까를 되돌아보는 시간이다. 그런의미에서 회고의 시간을 잘 지키자..!