본문 바로가기

Business Data

[업무지식] 애자일(Agile), 스크럼(Scrum) 이해하기 - 2편

반응형

안녕하세요 서후아빠입니다. ^_^

지난 세션에서 애자일 방법론에 대해서 알아보았습니다. 이번 세션에는 애자일 방법론의 전체 프로세스에 대해서 세부적으로 알아보도록 하겠습니다. 


2023.04.28 - [Business Data] - [업무지식] 애자일(Agile), 스크럼(Scrum) 이해하기 - 1편

 

[업무지식] 애자일(Agile), 스크럼(Scrum) 이해하기 - 1편

안녕하세요 서후아빠입니다. ^_^ 이번 세션은 애자일 방법론과 대표적인 스크럼에 대해서 업무적으로 필요한 최소한의 개념에 대해서 간단히 정리해 보았습니다. 애자일 방법론 기원 구분 설명

sh-t.tistory.com

1단계 : 요구사항 분석

요구사항 분석은 고객과 프로젝트 팀이 같은 장소에서 함께 참여 추천

  - 결과물에 대한 신속한 피드백으로 불필요한 작업 예방

시스템 개발 경우 : 고객사로 출퇴근하면서 같은 장소에서 고객과 함께 제품 백로그 작성 가능

신메뉴 개발, 신규 지점 활성화, 신사업 진출 경우 

  - 고객과 같은 장소에서 근무 어려움

  - 핵심 고객과 요구사항 분석 위한 추가 조치 필요

[핵심 고객과 요구사항 분석 위한 추가 조치]

구분 설명
페르소나
(Persona)
어떤 제품 혹은 서비스를 사용할만한 목표 인구집단 안에 있는 다양한 사용자 유형을 대표하는 가상 인물
프로젝트 목표 고객을 보다 심층적으로 이해하기 위한 방법으로 활용
  - 프로젝트 스폰서, Client와 명확한 커뮤티케이션 하는데 도움 
  - 제품이나 서비스 사용자가 누구인지 이해관계자들이 공통적으로 떠올릴 수 있도록 도움
  - 프로젝트 팀원들이 친근감 가지고 좀 더 사용자 입장에서 결과물 도출하도록 도움
프로젝트와 과련된 구체적인 페르소나 도출 필요
  - 실제로 존재할 개연성이 있는 페르소나 설정 
    ※ 인구통계학적 특징 : 성별, 나이, 가족관계, 직업, 소득수준, 취미 등
    ※ 가상인물 유형화를 위한 특징 : 성격, 사고방식, 가치관 등 
  - 페르소나가 느끼는 불편함과 Needs 파악
페르소나 만들기 위한 질문 : 기존 고객 인터뷰, 설문조사, 고객사 영업/마케팅 등 활용하여 데이터 수집
  - 개인적인 배경 : 나이, 가족, 교육수준
  - 직업 : 직장, 역할, 스킬, 일과 등
  - SNS
  - 제품 관련 : 선호하는 접촉 방법(메일, 전화), 인터넷 활용 여부
고객 여정 지도
(User Journey Map)
특정 페르소나가 어떤 경로로 어떤 심리적 변화를 겪으며 제품이나 서비스에 관련된 경험을 하는지 한눈에 알 수 있도록 작성하는 시각화 자료
고객 여정 지도 항목 예시 
  - 고객의 행동 
  - 고객이 하는 말 
  - 고객의 감정/생각
  - 고객이 느끼는 고통
  - 고객이 얻고자 하는 기대요소
  - 단계별 시사점
  - 전체 시사점
사용자 스토리 작성 고객 시사점(단계별 시사점, 전체 시사점) 내용을 이용하여 사용자 스토리 작성
  - 고객 입장에서 필요로 하는 기능 및 특성, 가치를 정리하는데 초점 두고 포스티 잇 활용하여 작성
  - 프로젝트 팀이 요구사항을 구체적으로 이해하는데 도움
  - 사용자 스토리의 완료 조건에 대해서도 함께 작성 : 갈등 해결에 도움
INVEST 원칙으로 작성된 스토리 정리
  - Independent : 스토리간 상호 독립적 (2개 스토리에 공통 작업 있다면 일정/투입인력 등을 이중으로 추정)
  - Negotiable : 해당 스프린터 단계에서 세부 작성하므로 간략히 작성 
  - Valuable : 고객에게 가치 있는 항목을 고객이 이해하기 쉬운 언어로 작성 
  - Estimable : 소요일정 및 투입 인력 추정 가능해야 함
  - Small : 2주 단위의 적절한 사용자 스토리 크기로 분할 권장
  - Testable : 객관적이고 정량적인 표현으로 작성 (ex : 빠른 시간 내 > 2분 내)
제품 백로그에 저장
페르소나 예시 : 82년생 김지영

사용자 스토리 예시 
 - 누가(나는~로서), 어떤 비즈니스 가치를 위해(~목적을 달성하기 위해), 어떤 기능을 원하는가(~이 구현되기 바란다)
 - "즐겨찾기 기능" 보다는 "나는 웹브라우저 사용자로서 쉽고 빠르게 URL을 찾을 수 있도록 즐겨찾기 기능 구현되기 바란다."

에픽(Epic) : 스토리가 너무 추상적이거나 넓은 범위, 다시 여러 개의 사용자 스토리로 분리해야 하는 것

2단계 : 프로젝트 전체 계획 수립 (Release 계획 수립)

구분 설명
사용자 스토리
점수 추정
고객요구사항의 크기 및 복잡도 감안하여 정량화, 점수는 프로젝트 팀원 간 공감대 형성
  - Step 1. 1점에 해당하는 평균적인 투입 공수 추정
  - Step 2. 1점을 부여할 사용자 스토리 선정 
  - Step 3. 피보나치 수열로 점수 부여
플래닝 포커(Planning Poker)를 통한 점수 부여하는 방법
  - 스토리를 보고 팀원들이 동시에 피나보치 수열이 적힌 카드 제출
  - 가장 낮거나 높은 번호 제출한 팀원에게 이유 들어본 후, 카드 제출 재시도 반복
  - 만장일치 원칙이나, 3회 이상 만장일치 되지 않으면 과반수가 동의한 값 (or 중간 값) 선택
  - 40 이상은 분할 검토 : 스토리 분할하여 작성, 기존 스토리 폐기, 플래닝 게임으로 점수 부여
우선순위 선정 구현여부 판단, 선후관계/의존성/고객가치/업무유사성 고려해서 우선순위 도출
4단계 분류법 : 필수, 중요, 선택, 보류
가치 점수 : 4단계 분류법만으로 우선순위 선정 어려운 경우, 스토리의 상대적 가치를 정량적 추정
  - 가치가 낮은 것 1, 나머지는 상대 비교로 결정
  - 제품 책임자와 고객이 중심 되어 프로젝트 팀원과 협의하여 결정
전체 일정 추정 전체 사용자 스토리 점수와 우선순위를 바탕으로 필요한 스프린트 횟수 판단 및 스토리 할당
  - 플래닝 보드(Planning Board, 릴리즈 상황판) 시각화하여 프로젝트 공간에 비치하여 관리하는 것을 권장
  - 처음 스프린트 2~3개는 평균적인 프로젝트 업무추진 속도보다 낮은 것으로 배정
    (ex : 스프린트별 25점이라면 처음 2~3개는 20점 정도의 스프린트 배치)
예시

[가정]
  - 스프린트 기간 : 2주
  - 2주간 투입 가능한 인력 : 50 Man/Day
  - 평균적인 투입 공수(스토리 1점 수행) : 2 Man/Day
[기초 산정 자료]
  - 스프린트 추진 속도 : 50 / 2 = 25
  - 총 스프린트 수 : 100 / 25 = 4
  - 전체 일정 : 4 x 2주 = 8주
[최종 산정 결과 : 리스크 고려하여 버퍼 10~20% 이내 설정]
  - 총 스프린트 수 : 5
  - 전체 일정 : 10주
[플래닝 보드]
도출된 계획이 한번으로 종료되는 것 아니므로 너무 정확하게 추정는 것은 비효율적
  - "스프린터 수행 > 실제 한일 측정 > 계획 수정” 과정을 지속적으로 반복

평균적인 투입 공수 : 평균적인 역량을 가진 인력이 스토리를 구현할 때 소요되는 작업 일수 (ex : 1점을 2 Man/Day로 가정)

피나보치 수열 : "1, 2, 3, 5, 8, 13, ...", 규모가 커질수록 예측이 어려우며 불확실성이 크다는 의미

3단계 : 스프린트(Sprint) 수행

구분 설명
스프린트 계획 수립 프로젝트 팀원과 정보 공유
  - 스프린트 기간 내 수행할 목표(백로그 상 우선순위 높은 스토리)
  - 스프린트 기간 내 완료 조건(스토리의 기능 및 특성)
스프린트 백로그 작성 
  - 스토리에 대해 구현할 상세 업무, 팀원이 수행할 모든 작업
  - 담당자와 예상 작업시간 검토하여 기록
담당자 할당 
  - 팀원이 원하는 작업 선택을 권장(자발적 동기, 업무 불균형 시 프로젝트 매니저가 업무 조정)
  - 공동책임(개인업무=팀업무)
  - 팀원과 상호 협력 중요
할당된 업무량 검토
  - 스프린트 기간 내 완료가능한지 파악 (풀타임, 파트타임 구분)
스프린트 계획 상황판 같은 결과물로 정리
  - 결과물 리뷰/공유하여 기간 내 완료할 것을 약속
데일리 스크럼 모든 팀원들이 일정한 시간/장소(권장 : 오전, 상황판 앞)에서 간략히 작업현황에 대해 공유하는 회의
  - 수행, 미수행, 장애, 이슈 등
  - 미수행은 작업완료까지 남은 시간 추정 및 시각화 업데이트
업무 공유와 협력 촉진하는 것이 목적
  - 수행할 작업 구분에 대한 논의하여 세분화 
  - 구분된 각 수행작업 단계들의 의미하는 바 공유하고 이해
  - 수행활동(작업 중, 리뷰 중 등)에 대하여 동일하게 인식
프로젝트 매니저 역할 : 이슈와 장애요인 해결 지원만 수행
스크럼 회의 후, 상황판이나 진척률 차트 등 업데이트
운영상 유의사항  
  - 스탠드업 미팅이나 상태회의와 같이 업무 보고 회의 아님 : 동등한 시간동안 모두 발언하도록 진행
  - 20분 이내 : 이슈는 간단히, 이슈 회의는 별도 진행
  - 즐거운 분위기 유지 : (어제한 일, 오늘할 일, 이슈) + (개인적인 이야기, 유머)
  - 별도 보고서 지양 : 상황판(릴리즈 상황판, 스프린트 상황판, 칸반 등)에 상태 표시
스프린트 리뷰 모든 팀원이 결과물을 고객에게 보여주고 피드백을 얻는 활동
  - 프로젝트 방향 조정
  - 팀원의 성취감 획득, 피드백을 통한 정보 획득
역할
  - 스크럼 마스터 : 리뷰 회의 진행과 퍼실리테이션 책임
  - 팀원 : 고객/이해관계자에게 결과물 발표
진행 순서 
  - 리뷰 전 회의 준비 : 참여자 대상으로 회의 공지(시간, 장소), 고객 관점에서 발표 준비
  - 리뷰 실시
     1) 프로젝트 팀 : 전체 진행상황, 현 스프린트의 목표, 결과물, 현 스프린트 기간 중 고충과 이슈
     2) 고객 : 결과물 보며 질의, 보안, 아이디어 제시
  - 리뷰 회의 정리 : 고객 제시한 사항을 개선사항으로 기록, 우선순위 따라 제품 백로그에 반영
진행 방식 : 보고서 방식이 아닌 데모로 진행, 4시간 이내
스프린트 회고 프로세스를 개선하여 동일한 문제를 반복하지 않기 위해 오답 노트를 만드는 활동
진행 순서
  - 사전 준비 : 참여자 대상으로 공지(시간, 장소, 진행방법)
     ※ 경직되지 않는 분위기 조성 : 카폐/야외, 고객/서폰서는 참석 제외 권장
  - 데이터 모으기 : 효율적 활동, 비효율적 활동, 놓친 부분
  - 통찰 이끌어 내기 : 다음 스프린터에서 해야할 행동, 하지 말아야 할 행동, 새롭게 할 행동
  - 아이템 결정 : 아이디어 투표로 선정 > 우선순위 설정 > 실행계획 수립
  - 마무리 : 다음 회고에 어떻게 하면 좋을지 개선점 듣고 마무리
유의사항 
  - 비난 회의되지 않도록 : 업무나 프로세스에 더 집중, 강점 극대화 방향으로 진행
  - 도출된 아이디는 반드시 실천 : SMART 실천법, 담당자 선정하여 추적관리하여 실행력 강화
  - 적절한 변화를 주는 것도 도움 : 장소나 진행 방식 변경, 퍼실리테이션 기법 적극 활용
칸반(Kanban, 간판의 영어식 표현) 
  - 도요타 자동차 생산시스템의 일부, 시각화된 작업지시서
  - 낭비의 배제 : 필요시, 필요한 물건, 필요양만큼, 짧은 리드타임으로 생산 : 재고 적재 방지, 문제 발생 시 쉽게 파악 가능
  - 적용 시 유의사항
    1) 모든 팀원 전체 진행상태 확인 가능토록 대시보딩
    2) 단계별로 "해야할 일"과 개수 제한 : 업무량 최적화 
    3) 병목지점 가능성 높은 단계/업무에 대해 공동으로 파악/관리
  - 칸반도 자체적으로 원칙과 프로세스가 있는 프로젝트 접근법으로 단순 시각화 실천법은 아님

짝 프로그래밍
  - 두명(작업하는 드라이버, 리드하는 네비게이터)의 프로젝트 팀원이 하나의 컴퓨터를 공유하며 작업하는 것, 강요할 필요 없음
  - 장점 : 에러 발생 확률/위험 감소, 팀원간 지식/정보/팁 공유
  - 방법 : 1대 PC에 2명 (초보자+초보자, 초보자+전문가, 전문가+전문가), 자주 교체 권장
  - 활용 : 새로운 기술 학습, 비슷한 팀원끼리 어려운 업무 수행, 팀원을 프로젝트 빠르게 적응 시

전통적인 방법론에서 리뷰
  - 단계와 단계 사이에 진행되며, 다음 단계 진행여부에 초점
  - Stage Gate or Milestone Gate라고도 함

퍼실리테이션(facilitation) : 다양한 생각을 꺼내고 하나의 결정으로 모아가는 과정이 잘 진행되도록 돕는 일, 빅마우스에 의한 독점 예방
  - 좋았던 점/나빴던 점 모으기 : 팀원에게 2개 색상 포스팃(3장씩)에 무기명 작성 > 비슷한 내용끼리 묶어서 벽에 붙여 공유
  - 화남/슬픔/기쁨 모으기 : 팀원에게 3개 색상 포스팃(3장씩)에 무기명 작성 > 벽에 붙여 공유 (분위기 밝게 조성)
  - 팀 만족도 점수 모으기 : 팀원에게 1개 색상 포스팃(1장씩)에 무기명 작성 > 벽에 붙이고 한명씩 결과에 대해 추측 발표
    ※ 사전에 1~5점에 대한 척도를 팀원에게 공유
  - 점 투표 : 팀원에게 점 스티커 주고, 좋았던 점/나빴던 점에 붙여 우선순위화 > 강화/개선 토론 > 토론 결과 공유

SMART 실천법 : Specific(구체적), Measurable(측정 가능), Attainable(달성 가능), Relative(팀 개선과 관련), Timely(스프린트 기간 내)

기타 : 프로젝트 진행상황 파악

구분 설명
사용자 점수 진척률 (권고) 전체 사용자 스토리 점수 대비 현재까지 완료한 스토리 점수를 %로 표현
매주 또는 스프린트 단위 파악
(제품) 백로그 진척률 전체 제품 백로그 대비 현재까지 완료한 제품 백로그 개수를 %로 표현
사용자 스토리 규모가 균일하지 않으면 진척률 의미 왜곡 가능
번업 차트 (Burn Chart) 수행한 사용자 스토리 점수를 누계하여 목표 대비 비교한 추세선으로 표현한 그래프
번다운 차트 (Burn Down Chart) 수행하고 남은 스토리 점수를 누계하여 목표 대비 비교한 추세선으로 표현한 그래프

반응형