애자일 ( Agile )
。 빠르게 개발하고, 자주 피드백 받으면서 지속적으로 개선하는 소프트웨어 개발 방법론
▶ 빠르게 만들고 계속 개선하는 방식으로서 요구사항이 자주 변경되는 문제에 대응 가능
。스크럼, 칸반 등이 존재
JIRA :
。애자일 스크럼 개발환경에서 사용되는 프로젝트 관리, 이슈 트래킹 등을 수행하는 도구
。애자일 프로젝트에서는 모두 동일한 규칙과 프로세스를 준수
▶ Tester, Developer 관계없이 전부 동일한 프로세스를 따르게됨
- 기존
Waterfall 개발 방식의 문제
。긴 개발 기간동안 요구사항분석 -> 설계 -> 개발 -> 테스트 -> 배포 단계로 차례대로 끝내는 방식
▶ 프로젝트 도중 요구사항이 자주 변경되는 문제에 제대로 대응하지 못하는 단점이 존재.
ex ) Waterfall : 6개월 동안 전부 개발 후 마지막에 공개
。애자일은 고객의 요구사항에 유연하게 대응이 가능
▶ 짧은 개발 기간을 반복하여 기능을 빠르게 개발 및 고객 / 팀원에게 보여주고 피드백을 자주 받으면서 바로 수정
ex ) Agile : 1주차 : 로그인 / 2주차 : 글쓰기 / 3주차 : 댓글 / 4주차 : 좋아요
애자일 선언문
。공정과 도구보다는, 개인과 상호작용
。포괄적인 문서보다는 작동하는 소프트웨어
。계약 협상보다 고객과의 협력
。계획을 따르기보다 변화에 대응
스크럼 ( Scrum )
。 작은 단위로 기능 개발을 수행하여 정해진 Sprint 기간 동안 목표를 개발하는 애자일 방식
▶ 짧은 개발 주기를 반복하면서 개발을 수행하며, Sprint는 보통 2주가 적합
。Sprint를 통해 일정 예측이 용이
。Sprint가 끝난 이후 결과물 도출 시 고객에게 피드백을 받은 후 다음 Sprint에서 개선
Scrum 특징
。장점 : 목표 집중 쉬움 / 일정 예측 가능 / 팀 협업 강화 / 피드백 반복 가능
。단점 : 회의가 많을 수 있는 단점이 존재.
▶ 주로 신규 서비스 개발 / 기능 개발 중심인 경우 사용하는 방식
Scrum의 핵심 요소
。Sprint, Daily Scrum
데일리 스크럼 ( Daily Scrum )
。매일 아침 모든 팀 구성원이 각자 당일 업무와 협업요청사항을 공유하는 회의
▶ 개인별로 오늘 작업 일정 및 내일 작업 일정을 공유
。보통 15분 내외를 권고
。일 단위로 개별진행상황 및 문제점을 공유하고 목표를 향해 진행하는 방향을 조정
▶ 서로 진행상황이 잘 파악되고, 공유되도록 데일리 스크럼 일지를 작성
。주제를 정하는 회의가 아니므로, 짧게 진행
▶ 더 큰 문제가 발생 시 해당 문제점을 주제로 새로운 회의를 계획 및 진행
스프린트 ( Sprint )
。스크럼에서 사용되는 짧은 기간동안 목표 기능을 개발하는 반복 주기
▶ 게임 퀘스트와 같은 개념
。보통 1주 / 2주 / 4주 단위로 수행
▶ 2주 단위를 가장 많이 사용
Sprint가 중요한 이유?
Waterfall 방식 :
6개월 개발 → 마지막 공개
▶ 중간 피드백이 없고, 프로젝트 방향이 수정되는 경우 수정비용이 큰 단점이 존재.
Sprint 방식 :
2주 개발 → 피드백 / 2주 개발 → 피드백 / 2주 개발 → 피드백 /...
▶ 중간 피드백이 짧게 반복해서 존재하며, 프로젝트 방향이 수정되더라도 위험 감소
칸반 ( Kanban )
。작업 흐름 자체를 시각적으로 관리하며 개발을 진행하는 애자일 방식
▶ 칸반 보드를 사용하여 Task를 조정
。전체 프로젝트 작업 상황을 시각적으로 확인할 수 있는 특징이 존재
。스크럼의 Sprint와 같은 고정 기간이 없음.
。주로 고객 대응 / 서버 운영 / 데브옵스 / 유지보수에서 사용하는 방식
WIP Limit ( Work In Progress )
。현재 진행 중인 작업 갯수를 제한하는 개념
▶ 너무 많은 작업을 동시 진행하는 것을 방지
유저 스토리 ( User Stroy )
。애자일 / 스크럼에서 사용하는 요구사항 작성 방식
▶ 사용자 입장에서 기능이 왜 필요한지 짧게 설명한 것
ex ) 사용자로서 블로그 서비스를 사용하기 위해 로그인 기능을 원한다
[USER STORY]
사용자로서 게시글을 작성하고 싶다.
[ACCEPTANCE CRITERIA]
- 제목 입력 가능
- 내용 입력 가능
- 저장 버튼 존재
User Story 구성요소
。사용자 / 기능 / 목적으로 구성