지난번 동기편에 나온 작업 방식을 기반으로 서비스를 기획했다. 사실 처음에는 개발자 나 혼자, 그리고 디자이너 친구와 둘이서 서비스를 제작하려고 했다. 하지만 동기편을 공유하고 나서 같이 우아한테크코스를 수료한 백엔드 크루 콩하나도 자기도 오케스트라에서 비슷한 작업을 하고 있다고 해서 같이 개발해보자고 했다. 마지막으로 이왕 규모가 커진겸 좀 더 제대로 된 서비스를 구현하면 좋을 것 같다는 생각에 이전 동글 프로젝트의 프론트엔드 크루 쿠마를 섭외해 디자이너 1명, 백엔드 2명, 프론트 1명의 팀이 생겼다.
일단 구체적인 서비스의 목적과 작업 방식을 공유하기 위해 간략한 기획을 작성했다. 사실 처음 기획을 했을때는 페르소나와 유저 시나리오, 유저 스토리가 구체적으로 왜 필요한지 잘 몰랐고, 그냥 겉보기 형식인 줄 알았다. 하지만 내가 그리는 서비스 모습을 구체적으로 그리기 위해서는 꼭 필요한 작업이구나 느낀 것 같다.
일단 아래는 내가 처음 그렸던 교회 출석부 서비스의 기획이다.
### 목적
공동체 구성원들의 출석 체크 및 구성원 정보 관리 서비스
### 페르소나
이름: 봉봉이
나이: 20대
직업: 교회 임원
성격: 책임감이 강하고 정보 정확성을 중요하게 생각함
행동 패턴: 매 주일마다 교회 성도들의 참석 현황을 체크하고 현황을 리더들과 공유한다.
목표: 효율적으로 교회 성도들의 출석 현황을 관리하고, 출결 현황을 리더들에게 공유해 관리 정보를 제공하며, 교회 행사의 대략적인 인원 정보 제공
스킬: 브라우저로 웹 서비스에 접근해 사용하는데 익숙함
사용 환경: 현장에서 출석을 확인해야하기 때문에 주로 모바일 사용, 그렇지만 나중에 PC 환경에서 사용 가능
### 유저 시나리오
1. Who: 교회 출석 관리자 봉봉이
2. What:
- 교회 출석을 효율적으로 관리하고자 한다.
- 교회 성도 정보를 쉽게 관리하고자 한다.
- 교회 출석을 쉽게 공유하고자 한다.
- 교회 과거 출석 기록을 확인하고자 한다.
3. When:
- 매주 주일 교회 예배에서
- 매주 출석 기록을 공유할 때
- 행사 기획 전에 출석률을 확인할 때
4. Where:
- 교회 예배 장소에서
- 혹은 집에서
5. Why:
- 엑셀을 열어서 출석을 체크하는데 칸이 작고 보기 어려움
- 매주 출석 체크를 하고 난 다음 기록을 확인하기가 어려움
- 엑셀에 출석 체크를 해둘 경우 데이터 변경이 쉽게 됨
### 유저 스토리
### 성도 관리
1. 출석 관리자는 | 새신자를 추가하기 위해 | 성도 정보를 입력해 새신자를 추가할 수 있다.
2. 출석 관리자는 | 변경된 성도 정보를 저장하기 위해 | 성도의 정보 중 변경된 정보를 바꾸고 저장할 수 있다.
3. 출석 관리자는 | 교회를 옮긴 성도를 빼기 위해 | 성도를 목록에서 삭제할 수 있다.
### 출석 관리
1. 출석 관리자는 | 매주 일요일 예배에 나오는 성도를 체크하기 위해 | 그 날 나온 성도의 출석을 체크할 수 있다.
2. 출석 관리자는 | 만약 새로운 방문자가 온 것을 기록하기 위해 | 해당 예배때 새신자의 이름과 또래를 기록할 수 있다.
3. 출석 관리자는 | 일주일에 한 번 그 주 예배 출석 현황을 공유하기 위해 | 그 주 예배 목장별로 정리된 출석 현황을 이미지로 공유할 수 있다.
4. 출석 관리자는 | 원하는 날짜의 출석표를 보기 위해 | 과거 출석 기록을 볼 수 있다.
5. 출석 관리자는 | 출석 기록에서 빠진 성도를 다시 체크하기 위해 | 과거 출석 기록에서 해당 인원 출석 정보를 변경할 수 있다.
추가)
6. 출석 관리자는 | 목장별 출석률과 출석 트렌드를 보기 위해 | 과거 출석 기록을 기반으로 통계를 볼 수 있다.
기획은 전문적으로 배운 것이 아니라서 사용하는 용어가 다를 수 도 있다. 너그럽게 봐주길 바란다.
위의 기획은 일단 처음 생각했던 우리 교회 출석부 서비스의 기획이라 다른 그룹에서도 사용되기는 어려웠다.
그래서 콩하나의 오케스트라 출석 작업 방식을 포함할 수 있도록 기획을 수정해 기능 요구사항을 도출했다.
아래는 각 기능들의 요구사항을 정리해둔 것이다.
유저(사용자)
일단 서비스의 기능 중 하나인 유저 관련 요구사항이다.
생각보다 복잡했는데 이유는 콩하나와의 기획을 합치는 과정에서 그룹의 구성원이 직접 본인의 출석체크를 할 수 있게 확장해야했고, 해당 기능을 위해서는 구성원의 개념을 세분화할 필요가 있었다.
일단 구성원이 가장 큰 개념이며, 로그인/회원가입 여부에 따라 사용자, 비사용자로 나누었다. 구성원은 기본적으로 출석체크의 관리 대상이며, 추가 권한에 따라 관리자와 이해관계자 등의 역할을 가질 수 있다.
### 사용자(User)
- 로그인, 회원가입 가능하다.
- 그룹(WorkSpace)을 만들 수 있다.
- (추가사항) 출석부 자동 생성 지정
- 그룹에 초대를 받으면 가입을 할 수 있다.
### 관리자(Administrator)
- 그룹을 만든 사람은 관리자이다.
- 그룹의 사용자 유형을 바꿀 수 있다.
- 구성원/이해관계자/관리자로 변경 가능하다.
- 구성원 추가, 수정, 삭제 가능하다
- 추가: 그룹으로 사용자(관리자, 이해관계자, 구성원)를 초대할 수 있다.
- 추가: 추가할때 여려명 등록할 수 있도록
- 추가/수정: 그룹 내에 이름으로 사용자를 식별할 수 없는 경우 추가/수정이 불가능하다.
- 구성원의 정보 항목을 추가, 삭제, 수정할 수 있다.
### 이해관계자(StakeHolder)
- 구성원 명단, 구성원 정보, 출석 기록 조회 및 공유 가능하다.
### 구성원(Member)
- 정보를 갖고 있다.
- 이름(그룹 내에서 유니크)
- 그 외는 관리자가 추가
- 유형: 사용자, 비사용자
- 유저의 경우 출석 권한을 갖는다.(추후 결정)
- QR 인증
- GPS 위치 기반 인증
- 수동 - 버튼 클릭, 출석 체크 인증
- 멤버 유저의 경우 본인의 출석 기록만 확인할 수 있다.
용어 설명
- 구성원(Member) — 그룹의 구성원, 관리자의 관리 대상, 출석 체크 대상
- 사용자(User) — 서비스를 이용하는 주체, 로그인/회원가입이 된 구성원
- 비사용자(Non-User) — 서비스를 이용하지 않는 주체, 관리자가 생성한 구성원 정보
- 관리자(Administrator) — 사용자로서 출석 관리, 그룹 관리, 구성원 관리 등의 역할을 한다.
- 이해관계자(Stakeholder) — 사용자로서 그룹의 정보 조회 권한을 갖는다.
출석부
출석부 서비스의 핵심인 출석부 요구사항이다.
크게 1. 출석체크 2. 출석 기록 조회로 나눌 수 있다. 그리고 추가로 공유 기능과 통계 기능을 넣을 예정이다.
또한, 출석부의 경우 요일과 같이 특정 주기로 반복될 수 있다. 따라서 이를 설정할 수 있도록 자동 생성 이벤트를 추가할 예정이다.
### 1. 하루 출석부 기록 (모바일 가능)
- 하루 출석부 리스트
### 2. 하루 출석부 (모바일 가능)
- 출석 여부 체크 기능
- 토글 형식 - On, Off 가능
- 버튼 형식 - 클릭만 가능
- ~~직접 입력 - 출석 시간과 함께 직접 출석 입력~~
### 3. 전체 출석 기록 (데스크탑 뷰에서만)
- 날짜를 열로 하고 행이 이름
### 4. 사용자별 출석 기록
- 멤버일 경우에는 본인 출석 기록만 볼 수 있다.
### 출석부 생성
- 관리자가 직접 만들 수 있다.
- 해당 날짜나 특정 날짜의 하루 출석부를 만들 수 있다.
- 달력에서 여러 날짜 선택 가능하다
- 관리자가 자동으로 하루 출석부를 만드는 이벤트를 설정 가능하다.
- 요일과 생성 시간을 선택하면 매주 해당 요일에 하루 출석부를 생성한다.
### 출석부 공유 기능
- 출석 정보 공유 가능
- Png나 PDF로 다운로드 가능
- 나중에 외부 링크로 공유 가능
그룹
그리고 마지막으로는 기능이 많진 않지만 여러 그룹에 참여하거나 그룹을 관리할 수 있기 때문에 그룹이라는 도메인과 요구사항을 만들었다. 아직은 구체적으로 잡혀있지는 않아서 추가될 예정이다.
- 사용자가 생성한 출석 관리 그룹
- 그룹은 이름을 갖는다.
일단 위의 기획으로 MVP를 만들 예정이며 후에 기능이 추가될 것 같다.
조금은 널널하게 그리고 조금은 도전적으로 개발을 해볼까 싶다.