애자일 (Agile) 2

박정연 Diana·2023년 8월 28일

소프트웨어공학

목록 보기
5/10

0. Software Development Life Cycle (SDLC)

책 한 권이 나오기 위해서는 집필 → 디자인 → 인쇄 → 마케팅의 과정이 필요하다.
소프트웨어 또한 개발 과정이 존재한다.

각 과정 (=단계, =task)을 정의한 framework가 SDLC이다.

여기서 반드시 SDLC와 Approach를 구분할 수 있어야 한다.

  • SDLC: 구체적인 방법과 방법론 (개발 과정의 단계와 순서를 명확히 구분)

  • Approach: SDLC를 유사한 개념적 특징에 따라 그룹지은 것

Agile은 SW Development Approach 중의 하나이다.


1. Agile이 될 조건 (Agile Manifesto)

모든 법은 헌법이 수호하는 가치를 위반해서는 안 된다.
마찬가지로, Agile 또한 Agile이기 위해 헌법과 같은 4 Value와 12 Principle이 존재한다.

4 Value

  • Individuals and interactions over Process and tools
    프로세스나 도구보다 개인과 상호 작용

  • Working software over Comprehensive document
    포괄적인 문서보다 작동 소프트웨어

  • Customer collaboration over Contract negotiation
    계약 협상보다 고객과의 협력

  • Responding to change over Following a plan
    계획 고수보다 변화에 대응

4 value 모두, 뛰어넘어야 하는 대상을 명시하고 있음
비교 대상은 기존의 개발 방법론에서 거쳤던 과정임

Agile은 다른 SW Development Approach의 한계를 극복하기 위해 탄생하였다.


2. 기존 Approach (접근법)

Agile의 핵심 가치들이 모두 기존 개발 접근법의 한계를 극복하기 위해 탄생하였다.
그러므로 기존의 접근법을 알아야 한다.

핵심 접근법 4가지

  • Predictive (SDLC: Waterfall): 분석, 디자인, 빌드, 테스트, deliver로 이어지는 전형적인 방식

  • Iterative (SDLC: Spiral): 요구사항과 일치할 때까지 분석과 디자인 반복 이후 빌드와 테스트 반복

  • Incremental: 분석, 디자인, 빌드, 테스트, deliver을 조금씩 추가

  • Agile: Timetimebox의 단위로 제품을 만들고, 동시에 피드백 받음

  • Iterative와 Incremental의 차이는 Delivery에 있음
  • Agile과 Iterative, Incremental의 차이는 Goal에 있음

Agile의 목표는 고객 가치 제공이며, 이를 가능케하는 가장 큰 특징은 Timeboxing이라는 개념이다.


3. Scrum을 통해 이해하는 Agile 핵심 개념

  1. Scrum의 구성 단계: Product Backlog, Spring Backlog 등
  2. Scrum에서 정의하는 2가지 Role: Product Owner, Scrum Master
  3. Project 진행 상황을 파악하는 Tool: Burn Down chart 등
  • Product Backlog: 제품에 대한 요구사항 목록

  • Sprint: 반복적인 개발 주기

  • Sprint Backlog: 개발 주기에 맞게 수행할 작업의 목록 및 목표

  • Shippable Product: Sprint 후 개발된 실행 가능한 결과물

  • Product Owner: Backlog 정의 후 우선순위를 세우는 역할

  • Scrum Master: 전통적인 프로젝트 관리자와 유사하나, Servant Leadership이 요구됨

  • BurnDown Chart: 남은 일 (Y축) - 시간 (X축) 그래프를 통해 진행 사항 확인
    이런 Tool은 Project Owner가 프로젝트 예상 진행 상황과 실제 진행 상황을 바교함으로써 프로젝트 기간을 연장할 것인지, 추가 Resource를 투입할 것인지, 아니면 마무리 할 것인지를 결정하는데 근거 자료가 되므로 중요함

일정한 주기 (Srcim에서는 Sprint)로 Shippable Product를 만들고, 고객의 요구를 더하고 수정하는 과정을 반복한다.


4. Agile의 3가지 Top Techniques

Scrum을 통해 Agile의 기본 과정을 이해했다면, 그 세부 내용을 구성하는 Iteration (=Sprint) 및 반복의 과정에서 어떤 technique가 쓰이는지 이해해야 한다.

  • Daily Standup: 매일 아침 15분 정도 아래와 같은 형식으로 진행 상황을 공유한다.
	어제 ~을 했고, 오늘 ~을 할 것이며, 현재 ~ 어려움이 있습니다.
  • Restrospective: 고객이 없는 상황에서 Iteration이 끝난 후, 팀에서 어떤 것이 문제였고, 무엇을 고칠 수 있는지 이야기 한다.

  • Iteration Review: 고객이 함께 있는 상황에서 Iteration의 결과물로 나온 Shippable Product에 대한 피드백, 평가를 받는다.

Agile 접근법의 성공을 위해서는 세부적인 Technique를 전체 Process에서 실행해야 한다.


참고 📖

0개의 댓글