diff --git a/.vitepress/config.ts b/.vitepress/config.ts index d59f517..75e5916 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -70,8 +70,8 @@ export default defineConfig({ link: '/dev/intro/getting-started' }, { - text: 'Contributing Guide', - link: 'https://github.com/skkuding/next/blob/main/CONTRIBUTING.md' + text: '개발 프로세스', + link: '/dev/intro/process' }, { text: 'API 문서 (Bruno)', diff --git a/dev/intro/process.md b/dev/intro/process.md new file mode 100644 index 0000000..b1929a8 --- /dev/null +++ b/dev/intro/process.md @@ -0,0 +1,62 @@ +# Project Process + +코드당은 학생들이 주체적으로 진행하는 프로젝트예요. +그래서 일반적인 회사의 프로젝트와는 다른 특징들을 고려한 특화된 프로세스가 필요해요. +예를 들어 풀타임 근무가 아닌 점, 흥미를 잃지 않도록 동기 부여가 충분히 이뤄져야 한다는 점, 팀원 수명이 비교적 짧은 점(1~2년) 등이 있어요. + +이러한 점을 고려하여, 스꾸딩은 널리 사용되는 애자일 방법론을 일부 수정하여 프로세스를 적용했어요. +애자일 방법론이 익숙하지 않다면 다음 글을 읽어보세요: [애자일은 일을 재빠르게 하는 것이 아니다.](https://brunch.co.kr/@svillustrated/24) + +## Sprint + +스프린트란 팀의 일을 마감하는 기간으로, 빠른 반영과 지속적인 개선을 위해 짧은 주기로 반복해요. +코드당 프로젝트는 스프린트를 2주 단위로 설정하여 아래 순서로 진행해요. + +1. **Task 생성** +2. **코드 작성 및 Commit** +3. **Pull Request 생성 및 리뷰** +4. **스테이지 환경 테스트 후 배포** +5. **모니터링 및 유지보수** + +유의해야할 점은 코드가 배포되었다고 해서 끝나는 것이 아니라, 사용자가 사용하는 동안 지속적으로 모니터링하고 유지보수해야 한다는 점이에요. +앞서 말한 특징 중 팀원 수명이 짧다는 점을 고려하면, 유지보수가 원활하게 되도록 코드를 작성할 때 코드에 담기지 않은 배경 상황을 주석으로 남기거나, 짧은 코드보다 읽기 쉬운 코드를 작성하는 등의 노력이 필요해요. + +## 1. Task 생성 + +Task는 프로젝트의 목표를 달성하기 위한 최소 단위의 작업이에요. +하지만 프로젝트의 시작은 task를 생성하는 것이 아니라, 큰 문제를 해결하기 위한 목표를 설정하는 것이에요. +작업 단위는 아래와 같이 이루어져요. + +- **Task**: 개발자가 수행할 수 있는 최소 단위의 작업 +- **Epic**: 여러 스프린트를 거쳐 완료되는, 여러 Task로 이뤄진 큰 작업 +- **OKR**: 프로젝트의 목표를 달성하기 위한 분기별(학기 / 방학) 팀 목표 + +따라서 프로젝트는 학기나 방학이 시작할 때 팀원들이 함께 OKR을 설정하고, 이를 달성하기 위한 epic을 설정해요. +그리고 각 epic은 task로 세분화되어 팀원들이 작업을 수행하게 돼요. +Epic과 task 목록은 Notion에서 확인할 수 있어요. ([Epic 목록](https://www.notion.so/skkuding/3ee40137db5f40adab8fa69daf7e5f2b), [Task 목록](https://www.notion.so/skkuding/b363c0bd41d541969b15fa282f7594d4)) + +### Epic 및 Task 생성 규칙 {#task-rule} + +- Epic과 task 생성 시 마감일과 우선순위는 기획 팀과 개발 팀이 함께 논의해야 해요. +- Task 생성 시 담당 팀과 태그를 반드시 설정해주세요. 담당자가 정해졌다면 담당자도 설정해주세요. +- Hotfix(급한 수정)이 아니라면, task는 모두 epic에 속해야 해요. +- 일반적으로 우선 순위는 [흔한 버그 > 외부 요청(교수님 등) > 사소한 버그 > 기능 개발] 순으로 설정해요. +- Epic과 task에 대한 논의는 Notion 내 댓글로 이뤄져야 해요. 모두에게 context를 공유하기 위함이에요. +- 논의 중 특정 팀원이 필요한 경우, `@`으로 멘션해주세요. Teams 사용은 자제해주세요. + + + +## 2. 코드 작성 및 Commit + + + + +## 3. Pull Request 생성 및 리뷰 + + + +## 4. 스테이지 환경 테스트 후 배포 + + + +## 5. 모니터링 및 유지보수