페이지 트리

소개

지난 10년동안 Agile 방법론의 채택은 증대되었다. 많은 조직들은 Agile과 함께 성장하였고 팀의 계획, 배포, 진행을 추적하는데 도움이되는 확장된 방법론을 사용하고 있다. 많은 확장된 방법론들이 이용가능하지만, Scaled Agile Framework(SAFe)는 대규모 조직에서 가장 널리 채택된 방법론이다. Atlassian은 수년간 Agile 방법론을 채택하면서 대기업을 지원해왔으며 JIRA Software와 Portfolio for JIRA를 사용하여 Agile을 확장하기 위한 강력한 방법을 제공한다. 이 문서는 JIRA Software와 Portfolio for JIRA가 어떻게 SAFe 방법론을 지원하고 조직의 모든 요구사항을 어떻게 지원하는지에 대해 설명한다. 


Agile 확장의 필요성

Agile 방법론들(Scrum, Kanban, XP 등)은 개별 팀 계획 및 배포 활동에 초점을 둔다. 각 방법론은 점진적으로 가치있는 제품의 배포를 지속적으로 확인하고 돕는 특정 역할, 활동, 보고서를 가진다. 개별 팀의 경우 이러한 접근은 성공하지만, 최근 이러한 방법은 여러 팀을 거쳐 확장되고 높은 수준의 업무를 계획하는데 어려움을 준다. 

Agile 팀은 성숙하고 성장함에따라 다음 방법에 대해 어려움을 겪고 있다. 


  • 컨셉으로부터 배포까지 여러 다른 팀의 다양한 기능을 병합하기 위한 대규모 이니셔티브의 추적
  • 객관적인 의사 결정을 만들기 위한 팀의 배포 업무에 비즈니스 가치를 계획하고 조정
  • 고품질 릴리즈 배포를 위해 조직에서 팀과 전문가와 함께 다양한 스킬 셋의 이점을 가지는 것
  • 여러 팀들 간의 스프린트 목표를 조정하는 것
  • 릴리즈 계획에 시스템 아키텍처와 인프라 필요를 빌드
  • 여러팀의 진행상황을 추적하고 팀들간의 문제를 식별하고, 조직에따른 솔루션 방향을 드라이브하는 데이터 사용


초기에는 Agile 리더들이 이러한 문제를 해결하기 위한 반복가능한 방법을 생성하는 것이 어려웠다. 2011년에 Scaled Agile Inc.는 크고 작은 조직에 성공적인 패턴을 제공하는 이러한 문제를 해결하는데 도움이 되는 Scaled Agile Framework for the Enterprise 1.0를 발표했다. SAFe는 지금 4.5가 출시되었고 고객의 피드팩과 실제 사용 패턴에 따라 업데이트 되고 있다. 이는 Agile 확장 방법으로 널리 채용되고 있다. 


Team level agility

조직 레벨에서 Agile을 확장하는 것은 개별 팀과 동일하게 전체 조직에 많은 동일한 혜택을 제공한다. 이러한 이점은 Time to market 단축, 개발 프로세스 간소화, 조직 전반의 투명성 향상을 포함한다. 애자일 확장에 두 가지 가장 큰 문제점은 종종 스펙트럼의 반대편에서 발생한다. 이러한 문제는 기본 Waterfall 컨셉에서 발생한다.


  1. Encourage organizational rigidity
    조직의 엄격성을 장려하는 것.
  2. Don't embrace the culture of agility throughout the development process
    개발 프로세스 전역에서 agility 문화를 포용하지 못하게 하는것


애자일을 확장하기 위해 이러한 고전점을 벗어나고 건전한 기반을 조성하는 프렉티스를 살펴보자.

Team agile 101

우리는 애자일 채용은 프로세스가 아닌 문화의 변화로 본다.

많은 팀들은 종종 스탠드업을 하고 있기 때문에 애자일을 하고 있다고 생각한다. 불행히도 애자일은 워터풀 개발 + 스탠드업이 아니다. 스탠드업이 애자일의 중요하지만 조직이 가져가야할 많은 변화 중 하나에 불과하다. 애자일은 고객의 새로운 기능에 우선순위를 정하고 추정하고 배포하고 고객으로부터 정기적으로 피드백을 얻어 통합하는 반복적인 방법론이다. 우리는 프로세스가 아닌 문화의 변경을 애자일 도입으로 본다. 애자일은 무엇보다도 문화적 변화이며, 프로세스와 도구에 영향을 준다. 팀은 조직을 더 신뢰해야하고 고객, 개발 현실, 제품에 관하여 더 배우는 프로세스 변경을 만드는 용기를 가져야한다.

Team ceremonies

첫째, 개별팀이 스프린트 계획, 스프린트 리뷰, 스프린트 회고, 스탠드업 미팅의 스크럼 활동을 하고 있는지  보아라. 둘째, 학습과 성장없이 고립된 프로세스를 따르면 팀이 Agile을 하는데 도움이 되지 않는다. 팀의 성장 여부를 확인하는 방법은 다음과 같다.


  • 스크럼마스터에게 마지막 회고가 다음 스프린트 플랜 미팅에 어떠한 영향을 주었는지 묻는다
  • 제품 소유자에게 마지막 스프린트 리뷰가 제품에 관해 무엇을 배우게 해주었는지 묻는다. 
  • 팀에게 스프린트 리뷰와 회고가 팀의 백로그에 어떤 영향을 주었는지 물어본다. 
  • 몇몇 엔지니어에게 팀이 목표를 달성하는데 스탠드 업 미팅이 어떠한 도움이 되었는지 물어본다. 


각 활동를 하는 것으로 충분하지 않다. 팀은 각 활동의 가치를 볼 필요가 있으며, 각 활동은 팀의 접근 방식과 방향에 정기적으로 영향을 미쳐야 한다. 

Team metrics

팀의 애자일 건강을 평가하는 다음 스탭은 개발 프로세스의 가치를 알 수 있게 해주는 매트릭을 보는 것이다. 팀은 JIRA Software의 몇몇 리포트를 사용하여 개발 사이드를 정량화할 수 있다. 

Sprint Report

  • 팀은 예측할 수 있나요?
  • 팀은 지난 몇 차례의 스프린트 무결성을 존중 했나요? 얼마나 많은 예상밖의 범위 변경이 있었나요?
  • 팀은 자연스러운 번다운을 하나요? 혹은 스프린트가 끝날 때 모든 것이 0으로 충돌하나요?

Velocity Chart

Control Chart

  • 개발의 마지막 3개월 동안 각 스토리 포인트 값의 사이클 시간이 일관되나요?
    예를 들어 5의 스토리포인트 값이 일괄된 사이클 시간을 가졌나요?
  • 장기간에 해결되지 않은 스토리가 있나요?

Cumulative flow diagram

Organizational Culture

애자일에서 프로세스와 매트릭이 중요하지만, 개별팀의 문화가 조직을 지배하는 경향이 있다. 문화는 

SAFe overview

SAFe는 엔터프라이즈 규모에서 Lean-Agile 소프트웨어와 시스템 개발을 구현을 위해 입증된 성공 패턴의 지식 기반이다. 

SAFe는 엔터프라이즈 규모에서 Lean과 Agile을 활용하기 위해 조직에게 행위, 역할, 측정, 관계를 제공한다. 


우리는 기본적인 SAFe의 사상과 개념을 리뷰할 것이다. 

SAFe에 대한 간단한 개용을 보려면 다음 비디오를 시청해라.


비디오는 이 문서의 개념과 용어를 이해하는데 도움이 되는 기초를 설명한다. 

이 문서는 http://www.scaledagileframework.com/ 에 있는 SAFe 4.0 다이어그램과 밀접한 관련이 있다. 

  • Portfolio level - SAFe의 최상위 레벨로 엔터프라이즈의 요구사항에 만족되는 시스템과 솔루션을 제공한다. 이는 전략 목적 가치 스트림; 거대하고 복잡한 솔루션을 위한 선택적 레벨, 배포를 위해 요구되는 다중 그룹
  • Program level - 개발로 향하는 치명적으로 적용되는 팀 리소스
  • Team level - 백로그로부터 정의, 빌드, 그리고 테스트 스토리에 공통 반복 케이던스로 일하는 팀


활동들과 리소스를 정렬하기 위해 SAFe는 두 핵심 구조를 정의하고 사용한다. 

  • Agile Release Train ("ART") - 5~12 팀의 그룹(50 ~125명)으로 표현된다. 프로그램 레벨에서 계획, Committing, 비즈니스 값을 배포. ART는 중요 비즈니스 가치를 배포하기위해 충분하다. 
  • Program Increment ("PI") - ART 내에서 계획, 배포, 리뷰를 동기화하는 타임박스

SAFe는 WSJF를 추천한다. 

  • Cost of Delay(CoD) = Business Value(BV) + Risk Reduction(RR) + Time Criticality(TC) / Opportunity Enablement(OE)
  • Job Size는 백로그에서 jobs/epics의 여분에 대행하는 상대적인 Job Size이다. 
  • 매트릭을 위한 값들은 Fibonacci 스케일을 사용하여 설정한다. 

Portfolio level

Program portfolio management - strategy, investment, governance, program management를 위한 책임. 

  • Epic owner - 비전과 전략 테마에 의한 조정되는 에픽의 식별과 생성을 위한 책임이 있다.
  • Enterprise architect - 엔터프라이즈 와이드 아키텍처 시스템, 플랫폼, 인프라스트럭쳐 의존 업무를 위한 책임이 있다.

Value stream level

  • Value stream engineer
  • Solution management
  • Solution architect/engineer
  • Customer

Program level

  • Release train engineer
  • System architect/engineer
  • Project management
  • Business owner

Team level

  • Product owner
  • Scrum master
  • Scrum team

Portfolio and value stream level

  • Create strategic themes
  • Define value streams
  • Define portfolio backlog

Program level

  • Form and launch ARTs
  • PI planning
  • ART sync
  • Solution demo

Team level

  • Iteration planning
  • Iteration execution
  • System demo
  • Iteration retrospective

Scaling from concept through delivery

Tool requirements to support SAFe

확장 방법론은 팀이 요구하는 프로세스와 관행을 채택함에 따라 많은 조직의 도구를 한계까지 확장함. 

SAFe와 같은 확장 방법론과 함께 성공하는 도구는 모든 레벨에서 유연한 구성 및 사용법을 제공한다. 우리는 SAFe를 지원하는 도구에서 다음 요소가 중요함

  • Support for SAFe ceremonies and activities
    다중 포트폴리오와 프로그램 칸반 보드, 오브젝티브 평가  수행, 모든 플래님, 실행, 데모 활동을 용의하게 지원하는 능력
  • Flexible requirement hierarchy
    네스티드 요구사항의 다중 레벨을 허락하는 능력
  • Traceability of requirements
    핵심 비즈니스 목적과 테마를 위한 모든 요구사항을 추적하는 능력
  • Enable communication
    매크로에서 커뮤니케이션을 위한 능력과 도구내에서 마이크로 레벨
  • Support collaboration
    변경과 업데이트의 트래킹 내에 크로스 팀과 크로스 ART 협업할 수 있는 능력
  • Tracking and reporting
    프로그레스 리포트 능력과 포트폴리오, 프로그램, 팀레벨 고전; 흥미로운 파티를 위한 실시간 가시화 제공


Atlassian and SAFe

Atlassian JIRA Software, Portfolio for JIRA, Confluence, HipChat은 SAFe 솔루션을 지원하기 위해 요구되는 기본 제품이다.

  • JIRA Software 
  • Portfolio for JIRA
  • Confluence
  • HipChat


Solution overview

SAFe 방법론을 해석하고 채택하는 방법에는 여러가지가 있으며, 각 조직은 자신에게 중요한 요소와 제공된 입증된 패턴을 활용하는 방법을 선택해야한다.

아래에 설명된 솔루션은 Atlassian 제품을 사용하여 SAFe를 지원하는 한가지 방법을 보여준다.

Scaling agile Atlassian solution -organization

Scaling agile Atlassian solution - hierarchy


Portfolio level 

Portfolio 레벨에서 메인 목표는 모든 중요한 이니셔티브 intake, evaluate, prioritize, track하는 것이다. 여기에 Portfolio 레벨에서 수행되어야하는 주요 활동이 있다.

Portfolio Epic Owners

Activities

Portfolio Epic Owners는 요청을 퍼널(funnel)에 제출한다.

추가적으로 Program Epic Owners는 포트폴리오 레벨 에픽과 관련된 요청을 생성할 수 있다.

Tools used도입(intake)과 흐름(flow) 관리를 위해 JIRA Software Kanban Board
Configuration
  • 하나의 이니셔티브 이슈 타입 내의 하나의 포트폴리오 레벨 JIRA 프로젝트
  • 포트폴리오 레벨 프로젝트 기반의 포트폴리오 레벨 JIRA 소프트웨어 Kanban Board
  • Feature 이슈 타입을 가진 하나의 프로그램 레벨 JIRA Software project
  • Program 레벨 프로젝트 기반 프로그램 레벨 JIRA Software kanban board

Epic Owners

ActivitiesEpic Owners는 Value 문장들과 경량 비즈니스 케이스를 제출
Tools used문서 기반의 템플릿을 위한 Confluence
Configuration비즈니스 케이스, Value 문장들, Value 스트림 템플릿

Solution Management Team (Evaluation)

Activities

Solution Management Team은 이니셔티브에 대한 전략적인 테마, 비전, 승인, 거절을 가지고 에픽의 정렬을 평가한다.

그리고 최종적으로 WSJF 측정을 사용한 실행을 위해 우선순위를 정한다.

Tools usedJIRA Software는 WSJF 계산을 위해 계산된 필드를 커스텀한다.
Configuration
  • BV, RR, TC, CoD, Job Size, WSJF와 같은 측정을 입력하기 위해 JIRA Software custom fields 구성한다.
  • 다른 커스텀 필드의 입력 기반으로 점수를 계산하기 위해 JIRA Software 기타 계산된 필드에 따라 WSJF를 구성한다

Solution  Management Team (Execution)

Activities

우선순위를 정하고 실행에 옮기며, Solution Management Team은 수용가능성을 정의하고 기능을 분해한다.

다음 활동을 포함한다.

  • 이니셔티브와 기능의 hierarchy를 생성
  • Features를 이니셔티브로 Breakdown
  • Features에 PI cross-project release(CPR) 매핑
  • JIRA Software 내에서 정보 싱크
Tools usedFeature Breakdown을 위해 Portfolio for JIRA
Configuration
  • 포트폴리오와 프로그램 프로젝트 내의 하나의 포트폴리오 레벨 계획
  • 포트폴리오를 허용하려면 PI(Program Increment) 당 교차 제품 릴리스가 필요하다 그리고 PI에 이슈를 할당하기 위해 프로그램 팀을 허용한다.
  • NOTE : 프로그램 레벨에서 일정 및 팀 수용력 기능이 프로그램 수준에서 활용될 것이다.

Assumptions

Program level

프로그램 수준에서 주요 목표는 작업의 우선순위를 정하고 자원 및 시간을 사용하여 처적의 처리향을 위해 필요한 기술과 역량을 기반으로 팀 간 작업 할당, 활동 조정, 종속성 관리 및 what-if 분석 수행한다.

다음은 프로그램 수준에서 수행되는 주요 활동입니다.

Program and Portfolio Management Team

ActivitiesProgram and Portfolio Management Team은 프로그램 보드를 사용하여 수요와 지속적인 가치 흐름을 관리한다.
Tools used
  • Feature breakdown을 위한 Portfolio for JIRA
  • JIRA Software
Configuration
  • 프로그램 레벨 에픽을 위해 JIRA Software project space를 생성
  • 에픽의 흐름을 가시적으로 추적하고 관리하기 위해 JIRA Software kanban board와 동등한 생성

Product Managers


ActivitiesProduct Managers는 PI 계획을 위해 승인된 이니셔티브와 에픽을 각각 보유한다.
Tools usedPI 계획과 Story Breakdown을 위한 Portfolio for JIRA
Configuration

다음을 기반으로 프로그램 레벨 계획 생성

  • 모든 팀 boards
  • PI 특정 CPR에 대한 수정 버전에 매핑된 모든 에픽 항목의 필터
  • PI 특정 CPR에 대한 수정 버전에 매핑된 모든 이니셔티브 항목의 필터
  • 관련 팀 구성원, 기본 속도, 팀 구성원 당 예상 수용력을 가진 공유 또는 개인용 스크럼 팀을 만ㄷ르고 각각의 스크럼 보드에 매핑함
  • 특정 PI를 위해 1 CPR를 생성하고
  • 전략 테마와 할당 생성
  • PI에서 어떤 일 없이 이니셔티브 배제


Product Owner

Activities

Product Owner는 Epic을 스토리로 분해한다. 스토리의 가치를 추정하고 백로그에 우선순위를 준다.

  • 각 우선순위화된 에픽을 위해 스토리 Break Down
  • 스토리 포인트에서 추정 제공
  • 전략적인 테마와 팀을 매핑
  • PI를 위해 CPR에 매핑
Tool usedPI 계획과 Story Breakdown을 위한 Portfolio for JIRA
Configuration

추가적인 구성 없음

  • 존재하는 Portfolio for JIRA 프로그램 레벨 계획 사용

PI Planning Team

Activities

Tools used

Configuration

Release Train Engineer

Activities

Tools used

Configuration

Team level

 Scrum Masters

Activities팀 특정 애자일 보드를 만들기 위해 Scrum Master
Tools used팀을 위한 JIRA Software scrum board
Configuration
  • 팀을 위한 JIRA Software project 생성
  • 프로젝트 공간을 위한 동등한 JIRA Software scrum board 생성
  • 우리의 솔루션에서 3팀을 가진다.
    • Team Wikk scrum board
    • Team WDP scrum board
    • Team cloud scrum board

Product Owner


Activities

Product Owner는 PI 계획 세션의 결과물을 기반으로 팀 백로그를 관리한다. 이 백로그는 새로운 스토리, Defect, 리팩토링, 디자인, 기술 업데이트를 포함한다.

Product Owner에의해 다음 활동들이 수행된다.

  • 사용자 스토리를 작은 결과물로 분해
  • 백로그 아이템 우선순위 지정
  • 수락 기준 재정의와 주간 백로그 정제 회의에서 백로그 크기 수정
Tool usedJIRA Software scrum board per team
Configuration

우리의 솔루션에는 스프린트 작업 계획, 관리 및 제공을 위한 3개의 팀 스크럼 보드가 있다.

  • Team Wikk scrum board
  • Team WDP scrum board
  • Team cloud scrum board


Product Owner, Scrum Master, AND the Agile Team

Activities

Product Owner, Scrum Master, Agile Team은 각 스프린트의 시작에서 iteration planning 미팅을 개최한다. 다음 활동들이 수행된다.

  • Scrum Master와 팀은 스프린트의 이용가능한 수용력 혹은 velocity 히스토리를 설립한다. This will serve as the objective anchor for the team's commitments.
  • Product Owner는 백로그에서 높은 우선순위 아이템을 리뷰할 것이다. 애자일 팀은 솔루션 옵션, 기술 제약사항, 비기능 요구사항, 의존성을 토론한다. 이러한 활동의 결과는 더 정제된 인수 기준과 스토리 포인트를 재정의한다.
  • Agile Team은 스토리들을 선택하고 Sub-task들로 분해한다
Tools usedJIRA Software scrum board per team - backlog
Configuration

다음 구성을 제안한다.

  • 스토리는 스토리포인트를 사용하여 사이즈된다.
  • 업무들은 스토리의 서브태스크로 분해된다.
  • 각 서브태스트는 담당자와 오리지널 추정을 요구한다.
  • 각 서브태스크 워크플로우는 해결책을 기반으로 시간 소비를 요구한다.

Agile Team Iteration Execution


ActivitiesAgile 팀이 iteration을 실행하면, 그들은
Tools usedJIRA Software scrum board - active sprint and report view
Configuration

우리 솔루션에서, 다음 구성을 제안한다.

  • Agile Board 워크플로우는 구성된다.


Scrum Masters, Product Owners, And Agile Team

Activities
Tools usedHipChat
Configuration각 팀과 cross team PI planning을 위한 HipChat room


Scrum Master

Activities

Scrum Master는 interation의 끝에서 스프린트를 닫는다. 다음 활동들이 수행된다.

  • Sprint는 끝난다.
  • 스프린트 회고 노트는 스프린트에 캡처되고 링크된다.
  • 스프린트 리포트는 리뷰되고
  • 팀 velocity 차트는 리뷰된다.
Tools used
  • JIRA Software scrum board
  • Confluence에서 회고 블루프린트
Configuration

요구되는 추가적인 구성 없다.

  • 존재하는 스크럼 보드와 Confluence 구성 사용





  • 레이블 없음