1) 애자일 역할
-
- 제품책임자
-
개발 범위에 대한 책임자, 요구사항에 대한 협상을 할 수 있는 위치
-
- 개발팀
-
그저 개발
-
- 스크럼 마스터
-
여러 개발팀의 스크럼 코치, 회의/기록과 같은 부수적인 절차를 조절함
2) 애자일 프로세스
이 사진에는 없지만,
스프린트 이전에 스프린트 제로를 만드는 것을 추천함.
2-1. 스프린트 제로
- 개발환경 셋팅
- 무엇을 만들까?
- 와이어프레임 같은걸로 표현하기.
- 릴리즈 계획 미팅
- 전체적인 프로젝트에 필요한 기능 계획 (Product backlog)
- 그 기능들을 Sprint마다 할당하기 (Sprint backlog)
- 역할분담
- 팀 구성
- 팀원별 스토리 배정
- 초기 백로그 세팅
2-2. 스프린트
- 여태까지의 팀 역량 확인
- 남은 자본, 일정 확인
- 현재까지 완성된 제품
=> 이전 스프린트에 뭘 덧붙일지 계획하는 작업
2-3. 스프린트 배분
ex) 7주 프로젝트라면,
-
스프린트 제로 한번
-
스프린트 3번
-
여기서 리팩토링도 할 필요가 있음!
=> 작지만 심플하면서도 완성도가 높은 코드를 만들자!
-
2-4. 백로그
-
제품 백로그
- 추정의 결과
- 지속적으로 수정해야함.
- 엑셀( 혹은 Rmind 1.7.1로 변환 )로 정리하는것을 추천함
- 양식
- 우선순위 : Very high, high, Medium
- 아이템, 설명
- 추정시간
- 역할군
- 양식
-
스프린트 백로그
-
제품책임자가 선정해준 양식(제품 백로그)을 통해서
팀 자체적으로 만드는 업무들
-
매일 갱신
-
번다운 차트로도 표현가능
-
3) 애자일 구성원
Self-organized team에서 전부 다 개발자라면…
-> 요구사항은 어떻게?
-> 페르소나 역할을 해줄 사람도 있어야하지만, 제품 책임자 역할을 해줄 사람도 있음
만약 개발자만 있다면, 이런 역할을 주기적으로 교체해줘야함!
3-1. 제품책임자
- 이 업무를 왜 해야함??
- 우리가 뭘 해야함??
이런 요구사항을 가이드해주는 역할
-
Requirement
- 요구사항 정리 –> 우선순위 배정
- 제품에 대한 비전 –> 기능 구상
- 비즈니스에 대한 이해 –> 프로젝트의 가치 확립
- (Option) 고객과 같은 깐깐함.
-
해야할 것
- 릴리즈 계획
- 제품 백로그
- 예산관리
-
핵심 포인트
Biz to Source code
On-site customer (고객역할도 해줘야하므로…)
3-2. 스크럼 마스터
- 한개 이상의 팀을 관리
- 애자일스럽게 일을 하는지 확인하기.
- 개발 프로세스나 산출물을 소개하고 제시해주는 역할.
3-3. 개발팀
- 다기능 통합팀
- 모두 프로그래머만 있는게 아니라, QA역할 & ui 디자이너 등등이 같은팀에 있음.
- 팀원들 개개인의 역할은 다음 스프린트에서 수정함.
결론 : 개발자는 그저 개발만!!
4) 애자일 방법론 : 스크럼
4-1. 특징
- 짧은 시간 내에 최상의 가치를 제공하는데 초점을 둠.
- 2주~4주마다(Sprint) 실제로 작동하는 소프트웨어를 시연하고 피드백함
- 자기 조직화
- 팀 자체적으로 아키텍쳐, 공용 라이브러리같은 것들을 전부 고민함.
- 그 팀 안에서 모든것들을 해결해나갈 수 있는 것.
4-2. 스크럼 세부 과정
-
일일 (스크럼) 회의
- 15분정도 진행
- 진도 확인 : 어제뭐했어?, 뭐할거야?, 일하는 데 방해되는거없어?
- (주의사항) : 실제 프로젝트에 관한 의논은 일일스크럼 회의 다음에 하는게 좋다!
- Scrum Tool을 통해서 기록하는게 효율적이다!
- 15분정도 진행
-
스프린트 검토 회의
- 소프트웨어 시연
- 고객, 제품 책임자와 반드시 피드백받아야함.
-
스프린트 회고 미팅
- 스프린트 검토 회의에서 나온 피드백들을 리뷰하기.
- 우리 팀끼리 제품에 대해서 자아비판하기.
5) 애자일을 적용하는 팁
5-1. 표준
반복적으로 프로젝트를 진행한다면, 표준을 만들어라!
ex) 소스코드에 대한 표준, 코딩문화, 문서 템플릿
5-2. DB 모델
- 개념모델
- 논리모델
- 물리모델
5-3. 비기능 요구사항도 중시하기!
- 재미
- 사이트의 아름다움
- 사용자를 고려한 공학적인 설계
5-4. 핵심
요구사항에 최적화된 스토리와 소스코드를 만들기!
- 중간산출물을 만드는 것은 별로 효율적이지 않다.
- 스프린트 리뷰를 할 때는 기능도 중요하지만, 소스코드를 점검해보는 것도 중요하다!
6) DevOps (작성중)
최근 DevOps 회사에서 애자일 방법론들을 많이 사용하고 있다고함.
- CI (지속적인 통합)
- 애자일 팀들이 개발하는 코드를 지속적으로 합침.
- CI Tool이 필요함.
- 소스코드 모으기.
- 의존성 컴파일
- 데이터 로드
- 필요한 툴
- Git : 버전관리 시스템
- Jenkins : 빌드, CI
-
CI와 CD의 차이
-> CD는 빌드, 테스트, 배포, Acceptance test를 자동으로 해주고
실제 서버에 반영하는 작업까지 자동으로 해줌.
현실적으로
- Trello로 일정관리
- git과 jenkins를 연동하기
- junit을 통해서 테스트하기
- slack과 jenkins를 연동하여 slack으로 테스트 결과를 받기