오늘 최종 프로젝트 직전 마지막 프로젝트로 Next.js를 활용한 간단한 팀 프로젝트를 시작하였습니다.
그런 이유로 프로젝트 시작할 때에 필요한 기획 단계에 대해서 정리해볼까 합니다.
프로젝트 기획
프로젝트 기획 단계에서는 프로젝트의 목표, 범위, 수칙 등을 체계적으로 정의하는 과정으로, 기획이 탄탄해야 프로젝트가 성공적으로 완성될 수 있는 아주 중요한 단계입니다.
그렇다면 저는 어떤 방식으로 프로젝트 기획을 하였을까요?
해당 사항을 정리하며 추가적으로 서칭을 통해 알게 된 내용도 함께 정리해 보겠습니다.
1. 프로젝트의 전체적인 주제를 정합니다.
-
프로젝트의 목적, 방향, 범위를 명확히 정의해야 합니다.
-
어떠한 목표를 달성할 것인지 구체화해야 프로젝트가 성공적으로 진행됩니다.
SMART 원칙에 따라 목표를 설정하면 구체적인 방향성을 정할 수 있습니다.
- Specific (구체적): 명확하고 구체적인 목표 설정
- Measurable (측정 가능): 성과를 측정할 수 있는 목표 설정
- Achievable (달성 가능): 현실적으로 가능한 목표 설정
- Relevant (관련성): 프로젝트의 목표와 연관된 작업 설정
- Time-bound (기한): 명확한 마감 기한 설정
추가로 프로젝트 범위 명세서(Scope Statement) 를 작성하면 좋습니다.
- 프로젝트에서 구현할 기능을 명시하고 제외할 사항도 함께 정의하면 팀원 간 혼선을 줄일 수 있습니다.
제가 진행한 프로젝트의 경우,
- 프로젝트 주제를 선정하고
- 프로젝트 명을 지정한 후
- 프로젝트의 핵심 기능 및 기술 스택의 종류
- 프로젝트의 전체 구조
등을 먼저 설계하였습니다.
2. 요구사항을 구체화합니다.
- 팀원들의 요구사항, 프로젝트의 요구사항을 수집하고 분석하여 계획의 기반을 마련합니다.
- 팀원 간의 역할을 명확히 나누고, 각자의 담당 업무를 정합니다.
- 기능적/비기능적 요구사항을 분류하고 우선순위를 설정합니다.
기능적 요구사항
- 어떤 기능을 제공할지에 대한 구체적인 요구사항
비기능적 요구사항
- 성능, 보안, 유지보수성 등 기능 외적인 요구사항
와이어프레임 제작
- 프로젝트의 구조를 한눈에 볼 수 있도록 와이어프레임을 작성합니다.
- 와이어프레임은 추후 기능 개발 시 구조를 참고하는 중요한 기준이 됩니다.
ERD(Entity Relationship Diagram) 작성
- 사용할 데이터를 정의하고 테이블 간의 관계를 정의합니다.
- 데이터의 구조와 관계를 시각화하면 추후 발생할 수 있는 데이터 오류를 줄일 수 있습니다.
3. 일정 및 작업 계획 수립
- 전체 개발 일정을 명확하게 작성하고, 일정에 따라 작업을 할당합니다.
- 마일스톤(Milestone)을 설정하여 주요 개발 목표를 구체화합니다.
- 각 작업의 진행 상태를 주기적으로 점검할 수 있는 칸반 보드를 작성하면 효율적입니다.
4. 위험 요소 파악 및 대응 전략 수립
- 프로젝트에서 발생할 수 있는 위험 요소를 사전에 파악합니다.
- 예: 일정 지연, 기술적 문제, 팀원 간 의사소통 오류 등
- 위험 요소에 대한 대응 전략을 수립합니다.
- 예: 일정 지연 시 추가 작업 시간 확보, 기술 문제 발생 시 주변 조언 구하기 등
마무리
다음 날에는 프로젝트 개발에 돌입하기 전 초기 세팅을 진행합니다.
초기 세팅도 물론 중요하지만, 프로젝트 기획 단계는 눈에 보이지 않는 약속을 하는 시간이라 생각됩니다.
이러한 약속은 여러 개로 흩어진 의견을 잘 모아 한 방향으로 빠르게 진행하게 하는 역할을 합니다.
기획 단계에서는 모두가 집중하여 참여하고, 확실한 소통을 통해 완성도 높은 기획을 짜는 것이 발전된 프로젝트를 향하는 길이라 생각됩니다.