Blog

[Spring][258] 02 소통을 통한 기획 및 설계, 협업 준비 과정의 중요성

Author
Summary
TEAM 258
Category
Project
Tags
Project
Favorite
Memory Date
2023/10/05
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
날짜
작성자
진행상황
진행 전
태그구분
6 more properties
기획 및 DB 설계
팀장으로써 몇번 프로젝트를 진행하면서 느낀 것들이 많았었다. 그 중 공통적으로 발생했던 문제는 ”소통”의 어려움“첫 단추를 잘 끼웠더라면..” 이라는 후회들이었다.
이번 프로젝트는 적극적으로, 또한 부드러운 소통을 유도하는 것이 나의 핵심 역할이라고 생각했다.
그리고 프로젝트의 완성도와 우리가 원하는 목표를 진행하기 위해서는 첫 기획 단계에서 많은 커뮤니케이션이 필요하다 생각했다. 나는 초반에 특별한 회의시간을 별도로 정하지 않았다. 이 말은 회의 시간이 없다는 뜻이 아니라 초기 기획이 진행되는 몇일은 24시간 회의 시간으로 지정한 것이다.
조금 팀원들에게 힘들 수도 있는 부분이지만, 이렇게 진행하는 것이 서로간의 오해를 줄일 수 있고, 잘못된 내용이 전달되는 것을 막을 수 있다고 생각했다.
단 몇일만이라도 마이크를 모두 열고 팀원들의 참여를 부탁했으며 나 또한 모든 상황에 대해서 열린 마음으로 듣고, 판단하고, 결정해주는데 힘써보았다.
기획 단계
Gitmind를 통해 팀의 관심사와 다양한 정보들을 수집하고, 긴 토론으로 “설문” 이라는 주제의 서비스를 전체적인 프로젝트 주제로 선정했다.
나는 우선 회의에서 말로만 진행되는 회의는 정신없이 진행되기 때문에, Gitmind를 통해서 사용자의 이용 흐름인 User Flow Chart를 그려나가기 시작했다. 사용자의 흐름에 따라 만들고자하는 서비스에서 개발자인 우리가 만들어야 하는 기능을 목록화 시켜야 하기 때문이다. 유저 플로우 차트를 통해 구현해야 할 기능이 어느정도 정리되었다.
이에 따라 팀원들과 함께 MVP(최소기능프로덕트)를 만들기 위한 DB 설계(ERD)기초적인 화면 구상(Wireframe)을 진행 → 그리고 실질적으로 우리 백엔드 팀원들이 개발해야 할 API 명세서를 작성하게 되었다.
개발 진입 단계
팀장으로써 전반적인 문서화를 담당하고 있기 때문에, git 관리자까지 하면 나중에 내 업무에 과부화가 걸릴 것으로 예상되었다.
이전 프로젝트에서는 문서화+프로젝트버전관리까지 모두 도맡으면서 개인 스케쥴 관리에 어려움을 겪었었다.
이번 프로젝트에서는 git과 github에 대해 충분한 이해도를 갖춘 팀원을 찾아냈고 전반적인 형상관리담당자로 선정하게 되었다.
우선 github 원격 저장소를 생성하여 팀원들을 초대해달라고 부탁했다.
나는 commit 및 pr 관련 팀 컨벤션을 맞추고 싶었고, Commit 컨벤션과 Github의 Pull-Request Template를 설정 및 팀원들에게 사용법을 안내하였다.
형상관리담당자와 추가적인 issue사용하기, github의 project를 활용한 칸반보드식 업무 분담에 대해서 토의하고 환경 구축을 도왔다.
팀의 역할 분배
팀장으로써 역할과 업무를 분담 시키는것, 가장 어려운 주제이다.
한쪽으로 업무가 몰려도 안되면서, 다른 팀원들 또한 하는것이 없도록 방치해서도 안된다. 우리는 공부하는 입장이기 때문에, 그리고 한명만 그 내용을 이해해선 안된다. 모두가 함께 성장하는 것을 목표로 하고 있다.
다양한 상황들을 고려했다. 우선 나는 계속하여 팀원들과의 대화를 이끌어 냈으며 팀원들의 개인적인 이야기, 간단한 회고들을 들어보면서 실제로는 인적 자원 리소스를 파악하는 과정을 진행했다.
특히 중요하게 생각한 것은 나에게 부족 할 수 있는 기술적 역량이 가장 뛰어난 사람을 탐색하는 것이다. 나는 팀장이지만 프로젝트를 관리하는 PM의 역할을 하며 팀원들을 도울 수 있지만, 객관적으로 팀원들보다 실제 개발적인 부분에서 약할 수 있다. 따라서 전공 지식 배경이 있으며, 프로젝트의 열정이 있는 테크 리더를 부 팀장처럼 선정했다.
테크 리더의 주요 업무는 사전 스터디와 실습, 그리고 팀원들에게 정보의 공유이다.
이를 통해서 다른 팀원들도 그 기술에 대해서 정돈된 내용을 학습 할 수 있고, 팀원 모두 동일한 학습 커브를 느끼고, 배워 나갈 수 있도록 제안했다.
첫 업무 분배
API 명세서를 따라서 팀의 역할에 따라 업무를 분담했다.
비교적 빠른 도입으로 다른 기능에 영향을 주는 Spring Security와 관련된 로그인, 회원 관련 기능은 테크 리더에게 업무를 분담했다.
다른 팀원들에게 프로젝트의 핵심 기능들의 CRUD를 분담시켰다.
초기 문서화 작업 등의 정리가 진행중으로 팀장인 나는 문서화를 집중 할 수 있는 시간을 확보하기 위해서 사이드 기능들의 CRUD을 분담하면서 문서화, 부족한 기획 부분들을 채워나갔다.
User Flow Chart 작성
유저플로우(이미지) :
Wire Frame 작성
프로젝트 프론트 엔드 기초 디자인
DB 설계
ERD(Entity Relationship Diagram) 작성
기초 DB 설계
API 명세서 작성
기능별 기초 CRUD API 명세서 작성
프로젝트 기초 구조 생성
원격 저장소(github remote repository) 생성 및 github관련 컨벤션 토의
작업 분배 전 main 브랜치의 기초 구조 생성
Code With Me(페어링) 을 통한 동시 작업
Github - Project 를 통한 스케쥴 관리
프로젝트 MVP 기능별 분업 시작
MVP 기능별 작업구간 분배
김인용
회원관리기능 - 관리자모드 - 회원 조회 및 삭제
송유헌
회원관리기능 - 회원 가입 및 로그인, 탈퇴
조영익
응답지 - CRUD
정강용
설문지 - CRUD