PM

[ TIL 0-3 ] 애자일(Agile) 이란? (사전캠프)

emma-lin 2024. 12. 4. 23:25

[ Agile을 애자일하게 익히기 ]

 

1. 프로젝트에서 프로덕트로 전환

1) ~ 1900 후반 (워터폴 개발 방법론)

- 폭포처럼 각 단계를 거치면서 진행하여 이전 단계로 돌아가는 과정이 없다.

- 직무 별로 완성된 결과물을 다음 단계로 전달하여 변수 포용하기 어려움.

- 변수발생 or  규모 산정이 적절하지 않으면 계획대로 완료되지 못함.

- 문제점 : 계약 이행 실패, 자금 부족, 정신적 스트레스, 변화에 대응하지 못한 결과물 완성, 결함반복 

- 원인 : 다음 단계로 결과물을 전달하는데 집중하여 책임감 부족, 품질보다 완성을 우선, 전달과정에서 정보상실

 

2) 프로덕트 소프트웨어 개발과정 

- 장기적인 관점 / 역할간의 협업 / 연속적인 원팀 업무의 결과물 

- 고객 요구에 맞춰 계속해서 진화

- 요구사항을 충족하는 개발이 아닌 시장에 줄 수 있는 임팩트를 우선해야 함

- 장기적 관점에서 효과와 품질을 우선

- 프로덕트를 만드는 사람도 프로덕트와 함께 성장하길 지향

 

3) PM 프로덕트 매니저의 역할

- 선구적인 소프트 엔지니어들의 애자일 소프트웨어 개발 선언문 작성 (사진첨부)

- 기존 : 사업 부서 주도의 개발 >> 변화 : 개발 부서, 프로덕트 자체가 사업을 주도

- 기업 내 프로덕트 단위 별 전체적인 수명주기(소통,계획,개발,출시)를 관리하는 역할이 필요해짐

- 고객, 이해관계자, 사업 부서, 엔지니어링 부서를 통합적으로 아우르는 역할 

자일 소프트웨어 개발 선언의 4가지 가치와 12가지 원칙 https://agilemanifesto.org/iso/ko/manifesto.html

 

2. Agile 이해하기

 

1) Agile 이란? 

- 대상을 아는 상태 vs 모른다는 것을 아는 상태 vs 더 존재 하는 지 알 수 없는 상태로 구분하고

   이를 학습하며 만들어가기 위해 필요한 사고방식

- 현대는 미지의 영역이 더욱 민첩하고 빠르게 변화하고 있기 때문에 기존의 긴 개발주기는 적합하지 않음

- 작은 단위로 반복점진적 개발하는 애자일 기반 개발 방식이 효과적

 

2) Agile 개념 from 모던 애자일 

- 유저와 만드는 사람들을 위대하게 만들자

- 지속적으로 가치를 담아 유저에게 전달하자

- 심리적 안전감을 갖고 용기있게 개발할 수  있도록 환경 조성하자

- 빠르게 가설을 실험하고, 분석을 통해 학습한것을 바탕으로 지속적으로 개선하자

 

3. 애자일 조직의 특징과 일 하는 방식

1) 작은 규모의 팀 : 팀을 작은 팀으로 나누고 하나의 목표를 달성하기 위해 일 하도록 함

2) 자율경영 Self management : 일 하는 방식과 진척도 팀원 스스로 결정하고 관리 

3) 교차 기능 Cross functional : 한 팀이 목표달성하는데 모든 기술을 갖춘 팀 

4) 린 생산방식 Lean Production : 초과생산, 재고, 운송, 동작, 대기, 결함, 과도한 프로세스 낭비를 줄임

5) 린 스타트업 Lean Startup : 아이디어를 빠르게 실현시킨 후 지속적인 개선을 통해 성공가능성을 높임

6) 칸반 Kanban : 큰 보드에 업무 흐름을 표시하고 각 업무의 흐름이 원할하도록 유지하는 방법

7) 스크럼 Scrum 

- 프로덕트 개발 협업 프레임 워크

- 스프린트 (짧은 개발 주기)를 반복할 떄 진행하는 이벤트 4 : 계획, 데일리 스크럼, 스프린트 리뷰, 회고

- 스크럼 팀의 3가지 역할 : 프로덕트 오너, 개발자들, 스크럼 마스터

- 스크럼 팀이 지향하는 정신적 가치 5 : 약속, 집중, 열린마음, 존중, 용기

- 스프린트 과정에서 프로덕트 백로그, 스프린트 백로그, 개발 증가분을 만들게 된다.

 

 

 

[ Agile 지향 조직에 스크럼 한 스푼 더하기 ]

 

1. 실전에서 가장 많이 활용되는 애자일 실천 방안

- 스크럼은 개발팀이 가장 많이 활용하는 팀 단위의 애자일 실천 방안

- 일의 콘텐츠를 구체적으로 다루는 것이 아닌, 기본적인 틀만 제시

- 스크럼의 규칙을 담는 그릇과 같은 역할

- 규모가 큰경우에도 많은 수의 스크럼 팀을 구성하여 규모를 키울 수 있다. 

 

2. 스크럼의 이론적 기반

- 가설을 가지고 계획한 것을 실행, 결과 분석, 다음 가설 계획 수립, 다시 실행의 반복

- 핵심 : 팀은 투명하게 상황을 드러냄, 발견한 사항들과 실행 결과를 점검, 학습한 것에 적응 

 

3. 스크럼 3가지 역할

1) 프로덕트 오너(매니저)

- 프로덕트의 모든 권한을 소유하는 역할

- 프로덕트 가치를 극대화하기 위해 할 일을 생성하고 가치를 지속적으로 업데이트

- 일의 우선순위를 조정 

- 올바르게 판단위해 유저, 주요 이해관계자, 개발자들과 끊임없이 소통하고 공감

- 특히 왜 이런 일을 해야하는 지 대해 팀에 알려줄 수 있어야 한다.

 

2) 스크럼 마스터

- 팀원들이 올바르게 이해하고 수행 할 수있도록 가이드

- 팀원들은 모두가 수평적으로 동등하게 의견제시 할 수있어야햠

- 장애물을 식별하고 막힘 없이 진행 될 수 있도록 해결

- 따로 채용하는 경우는 드물다

- 프로덕트 오너가 겸하기도 하지만 자율적인 자기 경영인 스크럼팀이 무너질 수 있어서 지양

 

3) 개발자들 

- 목표를 달성하는 데 필요한 모든 개발 역량을 가지고 있는 전문가들

- 서로의 역량와 새로운 역량을 학습하는 T자형 인재로의 역할을 할 수 있어야함

 

4. 스크럼 3가지 산출물

- 프로덕트 백로그 : 스크럼팀의 모든 할일 목록

- 스프린트 백로그 : 한 스프린트동안 완료할 것을 목표로한 할일 목록

- 프로덕트 개발 증가분 : 스프린트 기간중에 완료한 일로 인해 발생한 추가영억의 모음 

- 가설을 검증하고 새로운 발견을 할수 있게 개발 증가분을 만들어 내는것이 필요하다

 

 

 

[ Agile 조직에서 PM의 역할과 기술 ]

 

1. 프로덕트 미션, 비전과 목표를 명확하게 제시하기

2. 애자일 사고방식으로 일 하기 기본

3. 프로덕트 목표를 달성하기 위한 개발 계획 수립

4. 스토리 Story - 인수기준 Acceptance Criteria

5. 할 일을 작은 단위로 나누기 Story Splitting

6. 업무 시각화 Work Visualization

7. 할 일 우선순위 조정  Work Prioritization

8. 반복 Iterative / 점직전인 개발 수행 Incremental Development