YOGO 앱 프로젝트 회고
해당 글은 처음으로 진행한 YOGO 앱 프로젝트에 대한 회고입니다. 결론부터 말하자면 앱은 끝내고 플레이 스토어에 올릴거지만 처음과 너무 다른 실패한 프로젝트입니다. 해당 프로젝트를 11개월 동안 진행하면서 실패한 이유들과 개선 사항들에 대해 작성하려 합니다. 멘토도 없고 아무것도 없는 상태에서 프로젝트를 시작하시는 분들에게 도움이 되셨으면 좋겠습니다.
목차
프로젝트 결과물
먼저 프로젝트에 대한 결과물이 처음 목표와 어떻게 달라졌는지 말씀드리려 합니다.
- 기존 목표 : 나만의 맛집을 관리하고 나와 음식 성향이 비슷한 사람들이 저장한 맛집 추천 어플
- 결과물 : 나만의 맛집을 저장하고 관리하는 어플
기존 목표와 결과물을 한 줄로 표현했을 때 가장 크게 달라진 부분은 성향이 비슷한 사람들의 맛집을 추천하는 기능을 완성하지 못하고 끝났습니다. 처음 어플 기획 시 가장 중요한 부분이고 다른 어플과의 차별점으로 밀고 가려는 기능이였지만 결국 완성을 못하고 프로젝트를 마무리하게 되었습니다.
물론 기능 빠진 것을 제외하고 지금 완성된 결과에도 자잘한 버그와 수정할 부분이 있습니다.
결과물이 기존 목표와 달라진 이유에는 많은 이유가 있겠지만 3가지가 가장 큰 이유라고 생각합니다. 제가 생각하는 이유는 기획과 설계의 부재, 툴에 대한 이해도 부족, 개발에만 집중 이렇게 3가지 입니다. 이 3가지에 대해 하나씩 집중적으로 이야기 하겠습니다.
기획과 설계의 부재
우리 팀은 11개월동안 프로젝트를 진행하면서 제대로된 기획서나 기능명세서, 설계서가 없이 프로젝트를 진행했습니다.
- 기획서가 없으니 해당 페이지를 왜 이렇게 기획했는지 의도가 무엇인지 불분명하고 남들에게 확실하게 설명할 수 있는 자료가 없었습니다.
- 기능명세서가 없으니 해당 버튼이 왜 필요한지 무슨 기능을 하는지 어떻게 동작하는지에 대한 자료가 없고 그때그때 해당 기능이 왜 필요하였는지 생각해야 했습니다.
- 설계서가 없으니 처음 설계한 의도와 다르게 페이지의 구성은 바뀌고 코드는 중구난방으로 여기저기 꼬여있어 간단한 수정도 어려운 상태가 되었습니다.
이외에도 더 많은 준비와 자료가 있어야 하겠지만 가장 기본적인 3가지가 없으니 간단한 개발이여도 팀끼리 모여서 회의하고 정하고 또 바뀌고 또 회의하고 수정하고가 반복되었습니다. 프로젝트가 길을 잃고 나아가니 기획을 뒤엎고 이미 개발된 부분도 다시 처음부터 개발하고 당연하게 기간은 늘어났습니다. 팀원 모두 길을 잃었다는 것을 알지만 이미 많이 진행했고 바꿀 수 없는 상태라 생각하여 진전없는 프로젝트를 계속 진행했습니다.
그렇다면 왜 이렇게 진행이 되었는가를 생각해보면 처음 개발자 3명이서 시작하여 개발에만 초점을 맞추고 시작을 한게 가장 크지 않을까 생각됩니다. 3명 모두 개발자이고 프로젝트를 처음 시작하다 보니 기획은 2주만에 끝내고 바로 개발에 들어간 스노우볼이 점점 커져 돌이킬 수 없게 되었습니다. 중간에 디자이너와 앱 개발자가 들어오면서 다시 기획과 경쟁 어플 분석 등을 하기는 했지만 부족했고 결국 똑같아 졌습니다. 이 부분은 개발에만 집중 파트에서 왜 바뀌지 못하고 계속 갔는지에 대해 더 이야기하겠습니다.
팀원에게 가장 아쉬운 부분을 선택하라면 아마 모두 기획과 설계의 부재를 선택하지 않을까 싶습니다. 왜 기업이나 다른 사이드 프로젝트를 진행하는 팀에서 기회과 설계에 가장 많은 시간을 투자하는지 알게 되었고 다시 한번 가장 중요한 부분이라는 것을 알게 되었습니다.
툴에 대한 이해도 부족
우리 팀은 협업과 문서 정리, 형상관리를 위해 Notion, JIRA, Slack, Github 등을 사용했습니다. 하지만 초반에만 정한데로 사용하고 점점 이를 활용하지 않고 개발에만 집중하여 진행하였습니다.
Notion으로 회의록을 정리하고 기록을 남기려 했지만 초반 3개월 동안만 사용하고 이후부터는 사용하지 않았습니다. 그러다보니 이전에 회의했던 기록이 안남아있어 수정한 기능이나 디자인을 왜 수정했는지 이유를 모르고기억에 의존하여 진행해야 했습니다. 그리고 회의록 뿐만 아니라 문서 정리를 하기로 했지만 정리도 하지 않고 작성했던 문서들을 확인하지 않아 정한 것들이 필요가 없게 되었습니다.
JIRA를 이용해 일정을 관리하고 현재 하고 있는 작업들을 추적하려 했습니다. 하지만 JIRA를 다들 사용해본 경험이 많이 없어 에픽을 어떻게 분류하고 관리해야 될지 몰라 점점 흐지부지 되어 아무도 사용하지 않았습니다. 그러다 보니 일정 관리는 안되고 현재 페이지마다 필요하고 개발해야 되는 기능들이 어떤게 남아 있는지 추적하지 못했습니다.
Github를 이용해 코드에 대한 형상관리를 하고 코드 리뷰를 진행하려 했습니다. 초반에는 개발자나 구현 부분에 대해 branch를 나누어 개발을 하고 pull request를 보내 merge를 하는 방식으로 잘 사용했다고 생각합니다. 하지만 branch를 하나로 합치고 일정에 쫒기다 보니 코드리뷰는 거의 하지도 않았고 git message 또한 관리가 안되어 어떠한 것을 개발했는지 바로 보이지 않게 되었습니다. 그냥 코드 저장소로만 사용했습니다.
Slack은 커뮤니케이션을 위해 사용한 툴이지만 진짜 거의 하나도 활용을 못해서 쓸 말도 없습니다...
이처럼 초창기에 의욕만 앞서 이것저것 적용하고 활용해보려 했지만 그렇지 못했습니다. 위에 적은 이유들도 있지만 마지막 이유가 가장 크게 작용하여 무너졌다고 생각합니다.
개발에만 집중
제목이 애매하여 "개발에만 집중"이라고 적었습니다. 제목을 이렇게 작성한 이유는 귀찮은 작업들은 멀리하고 우선 개발에만 집중하여 앱을 완성시키려 했기 때문입니다. Notion이든 JIRA든 어떠한 툴이든 설계서, 기획서 등은 귀찮은 작업이고 계속해서 생각하고 노력을 해야 합니다. 하지만 앱을 완성시키는 것에만 몰두하여 다른 귀찮은 작업은 멀리했습니다.
귀찮은 작업을 멀리한 것도 있지만 커뮤니케이션 부족 또한 생겼습니다. 자기 일에만 집중하고 남이 하고 있는 작업에 대해 생각하지 않고 자기 일만 끝나면 된다는 생각이 강했던 것 같습니다. 이렇게 개발을 진행하다 보니 자기 일이 아니면 신경쓰지 않고 문제가 발생해도 자기가 개발한 쪽의 문제는 아니라고 생각했습니다. 문제가 발생할 때 커뮤니케이션이 제대로 이루어지지 않고 문제를 제대로 해결하지 않다보니 불만만 쌓여가고 신뢰는 무너졌습니다.
또한 프론트와 백엔드를 나누어 개발했지만 이런 방식을 처음 해보고 안드로이드 개발이 처음이다 보니 계속해서 둘 간의 문제가 발생했습니다. 앞서 말씀드린 것 처럼 문제가 발생했을 때 자신이 개발한 부분은 아니라고 생각하였습니다. 그리고 하나의 branch를 이용하여 개발했기 때문에 같은 부분을 수정했을 때 merge를 잘못하거나 프론트와 백엔드간 연결에서 문제가 발생하는 일이 많았습니다. 클린 아키텍쳐를 설계하여 개발을 시작했지만 당연히 이것 또한 지켜지지 않았기 때문에 코드가 꼬이는 일이 많았습니다.
모든 조직에서 커뮤니케이션이 가장 중요하다고 항상 말하고 모든 사람들이 말하지만 우리 팀은 이를 지키지 않았습니다. 자신의 잘못이 아닐거라고 생각하며 다른 개발자를 의심하며 문제에 대해 충분한 커뮤니케이션을 하지 않고 덮기에만 급한 자기만 생각한 프로젝트가 아닐까 생각됩니다.
마무리
3가지 외에 생각나는 문제점
- 자료조사 부족(개발이든 기획이든...)
- CI/CD 부재
- 테스트 코드 작성 부재
- 보안 관련 문제
- 개발 후 단위 테스트 부족
개선 사항
- 기획 및 설계에 충분한 시간 부여
- 기획서, 설계서, 기능 명세서 등의 문서 작성
- 이해할 수 있는 범위에서의 프로젝트 일정 계획
- 원할한 커뮤니케이션을 위한 충분한 회의 및 회의 방식 변경
- 회의 방식에 대해 생각 필요
개선 사항은 훨씬 많지만 일단 이정도만 개선해도 엄청난 개선이고 한 번에 많은 것을 개선하려 하다 또 모두 놓칠 수 있기 때문에 이정도만 개선 사항으로 적고 다음 프로젝트에 적용하려 합니다.
부록 - 앱 구글플레이 등록 시 주의사항
- com.example 패키지명 불가
- example이 아닌 다른 패키지명을 사용해야 합니다.
- 앱 아이콘, 배너, 설명 이미지는 구글플레이에서 등록
- 앱을 올릴 때 이미지들을 등록하는 칸이 있습니다.
- 무조건 aab 파일만 등록 가능
- apk는 이제 불가하고 구글에서 제공하는 aab 파일만 등록이 가능합니다.
'회고' 카테고리의 다른 글
AWS Cloud Practitioner 자격증 합격 후기 (0) | 2023.06.07 |
---|---|
사이드 프로젝트 Wollu 회고 (0) | 2023.04.03 |