설진호 / 커브
Atlassian을 이용한 애자일 ALM 소개
ALM(Application Lifecycle Management)
어플리케이션 A
지속적인 모니터링 및 제어
기획, 요구사항 유지, 운영, 폐기설계, 개발, 배포
• 시장 조사
• 고객 니즈 식별
• 요구사항 정의
산출물
• 기획 및 Vision 문서
• Market 요구사항 문서
• UI 요구사항 문서
……
• 아키텍처, 설계
• 개발, 코드 형상, 테스트
• 빌드, 배포
산출물
• 아키텍처 문서, 설계 문서
• 코드 문서
• 사용자 가이드 문서
……
• 변경 및 문제 관리
• 설계, 개발, 형상, 테스트
• 빌드, 배포
산출물
• 고객 요청, Bug 수정
• Design, Code, User
Document Update
……
ALM은 어플리케이션 제품이 기획되어 개발, 유지 및 운영, 폐기까지 전체 수명주기를 분야별 체계적인 공학 방
법 통해 성공적으로 이뤄질 수 있게 모니터링하고 문제를 제어함으로써 관리함.
ALM 도입의 이점
개발 품질 향상으로 고객으
로부터 발견되는 버그 최소
화를 통한 비용 절감
비즈니스 니즈를 개발에 정
확히 반영하고 요구사항의
부재 문제 최소화
유지보수 및 운영의 문제를
빠르게 처리함으로써 고객
만족도 증대
체계적인 관리 및 도구 구축
을 통한 품질 확보, 생산성
향상, 비용절감 극대화
비즈니스와의 통합 개발 품질 향상 민첩한 고객 대응 체계적인 관리
But, ALM 도입은 어렵다.
범위가 방대하다.
요구사항 부터 릴리즈까지
한번에 방대한 범위가 변경된다.
실용적인가?
정말 우리를 위한 것인가?
우리에게 도움이 되는가?
인력은 충분한가?
수행 인력은 충분한가?
여러 조직과 잘 통합되는가?
지속적인 가이드는?
내재화를 위한 지속적인
가이드는 누가하는가?
다양한 강점을 가지고 있지만, ALM 도입은 다음과 같은 이유로 인해 어렵다.
Solution is Agile ALM
실제적으로 도움, 쉬운 사용,
간결함에 도움되는 Agile
Practice 적용
조직에게 변화를 최소할 수 있
는 영역부터 도입하고 단계적
으로 확장
개발단계에서 품질 활동 강화
를 통해 이후 단계에서 발견되
는 문제 최소화
정보를 집중화하고 조직이 빠
르고 쉽게 대화와 협업을 할
수 있는 체계
점진적인 ALM도입 애자일 프렉티스 개발 품질 강화 협업과 대화 중심
요구사항
관리
유지보수
아키텍처
디자인
개발
테스팅
빌드관리
프로젝트
관리
릴리즈
배포관리
Agile ALM Concept
User
Stories
Kanban
아키텍처
디자인
Quality
Gate
Test
Automation
지속적인
통합
ScrumDeploy
Automation
Docker
Eclipse
Agile ALM Solution
Daily 2nd Build
Quality Gatekeeper
Build Verification
Pull Request
Git
OK?
Code
Commit
MergePush
YES
No
Fail : Commit Reject
Daily Build
Release Build
Sanity Test
Project Budget
Task
Requirement
Design
Requirement
Document
Design
Document
Code
Document
Project Report
Unit Test
Artifactory
Daily Build
Artifact
Release Build
Artifact
Zephyr for JIRA
SonarQube
Test ReportTest Cases
Monitoring &
Control
Static Analysis
Unit Test
Automation
Document
Automation
Test
Result
Coding Rule &
Comment
Potential Bugs
& Unit Test
Complexity &
Duplication
Test
Scenario
Release
Test
Release
Doxygen
UI Test
Automation(Selenium)
Performance Test
Automation(JMeter)
User Story
<사용자>는 <목적>을 위해 <기능>을 할 수 있어야 한다.
Epic
User story
User story
User story
Description Test Method Story Point Priority
사용자 스토리는 시스템의 고객 혹은 사용자들이 원하는 시스템의 능력을 사용자의 관점에서 작성한 기능에 대한
짧고 간단한 설명이다.
User Story in Confluence & JIRA
요구사항 작성
With template
요구사항 리스트
요구사항 리뷰
With inline comment
요구사항 이슈
Generation
User Story Example
요구사항 Epic
리스트
템플릿으로부터 요
구사항 추가
요구사항 문서
속성
요구사항 템플
릿
요구사항 문서
리뷰 & 인라인
코멘트
요구사항 문서
로 부터 JIRA 이
슈 생성
Agile Scrum
특정 스프린트 동안 수행할 백
로그를 할당, 추정 계획
어플리케이션 제품 개발을 위
한 User Story, 버그, 업무
스프린트 동안에 수행 업무를
카드 형식으로 보드에 가시화
스프린트 종료 후 리뷰 및 회
고를 통해 지향점 확인
제품 백로그 스프린트 계획 칸반 & 스프린트 보드 스프린트 리뷰
에픽과 스토리
요구사항 추정
(스토리 포인트)
요구사항 담당
자 할당
칸반 혹은 스프
린트 보드 기반
프로젝트 관리
Requirements & Design Traceability
Requirement Issue
Requirement Issue
Requirement Issue
Requirement Issue
Design Issue
Design Issue
Design Issue
Design Issue
Usecase
Diagram
Class Diagram
Sequence
Diagram
Process
Diagram
Design
Link
Link
Diagram for Architecture & Design
Business Process Diagram Usecase Diagram Sequence Diagram Class Diagram
Deployment Diagram State Machine Diagram Package Diagram UI Design
클래스 다이어
그램 샘플
유즈케이스 다
이어그램 샘플
Quality Gatekeeper
Build Verification
통합 문제를 확인하기 위해
빌드 검증 수행
Peer Code Review
코드 문제를 파악하기 위해
동료와 코드 리뷰 수행
Code Inspection
SonarQube를 활용하여
코드 인스펙션 수행
Unit Testing
전체적인 테스트 통과 여부를
확인하는 단위 테스트 수행
Quality Gatekeeper는 조직의 품질 게이트(품질 요구사항)을 설정하고 품질 게이트를 통과하지 못한 코드는
중앙 저장소에 반영되지 못하게하는 품질 보장 게이트이다.
Quality Gatekeeper
Developer
Reviewer
2. Trigger build
3. Build verification & Unit test
5. Pull Request 6. Code Inspection
7. Code Review & Code Merge
4.
Static
analysis
result
SonarQube
1. Push changes to dev branch
Quality Gatekeeper Example
Quality Gatekeeper Example
개발 브랜치 생
성
개발 브랜치와
Git Flow
IDE Connector
와 JIRA 이슈
변경 사항
Commit &
Push
SonarQube
Code Inspection
SonarQube Code 프로
젝트 별 품질 현황 정보
SonarQube Code
품질게이트 정보
SonarQube Code
Inspection
Issue 해결방법
JIRA 이슈와 빌
드 결과
Daily Build
전체 소스 코드에 대한 정적분
석(코딩룰, 잠재버그, 취약점
등)을 수행
클린 빌드를 통해 매일 새벽
소스 코드의 통합(빌드)에 문
제를 확인함
Doxygen, JavaDoc 등과 함께
코드 문서, 설계 문서 등을 자
동으로 생성
테스트 서버, 산출물 관리 서
버 등에 빌드 산출물을 자동
배포 수행
빌드 검증 코드 품질 검증 문서 생성 자동화 배포 자동화
Release & Deploy 정책
Dev Server Staging Server Production ServerTest Server
AutomationCommit Build
Daily Build
Release Build
Automation with trigger
Automation with trigger Automation Automation
Release 관리
Release Mgt.
User Story 2
User Story 1
User Story 3
Bug 1
Release Mgt. - Reviewed
User Story 2
User Story 1
User Story 3
Bug 1
Release Plan
Deploy to Test Server
Release Build
Deploy to Staging
Server
Deploy to Production
Server
릴리즈 관리
이슈 상태
릴리즈 경고
릴리즈 계획 연
동과 배포 수행
빌드 계획 및 전
략
빌드와 배포 연
동
현재 배포 상태
환경 별 배포
개발 추적
배포 추적
세부 배포 정보
Requirement Traceability
요구사항, 디자인, 리스크 등 문서는 Confluence를 통해 팀내의 협업과 커뮤니케이션으로 작성되고 이로부터 자
동으로 요구사항을 추출하여 JIRA에서 추적성을 확보함.
Product Requirement #1
Product Requirement #2
Product Requirement #3
Product Requirement #4
Product Requirement #5
Product Requirement #6
Product Requirement #1
Product Requirement #2
Product Requirement #3
Design #1
Risk #2
Testcase #3
Product Requirement #4
Product Requirement #5
Product Requirement #6
Commit #1
Build #1
Code Review #2
…… …………
Design #2
Risk #1
Risk #3
Testcase #4
Commit #2
Build #2
Code Review #3
……
Design #3
Requirement Management Example
Requirement Management Example
요구사항과 디
자인, 리스트, 테
스트 링크
요구사항과 개
발 링크
요구사항 추적
성 매트릭스
요구사항
관리
유지보수
아키텍처
디자인
개발
테스팅
빌드관리
프로젝트
관리
릴리즈
배포관리
XUnit
Selenium, JMeter
설진호 / 커브
curvc Project Budget
JIRA 프로젝트 예산 관리
curvc Project Budget for JIRA Addon
프로젝트 기반 예산 관리
프로젝트 기반의 심플하고 쉽게
계획 대비 사용 예산 관리
Work Log 기반 인건비 계산
이슈에 기록되는 Work Log 기반
자동 인건비 계산
별도의 Expense 관리
프로젝트 간접비 기록을 위한
별도의 비용 관리 제공
대시보드와 리포트
대시보드를 위한 위젯과
프로젝트 예산 관리 리포트 제공
커브에서 6월 출시 예정인 Project Budget for JIRA 에드온은 누구나 쉽게 이해하고 사용 가능한 목적으로 다음
과 같은 핵심 기능을 제공합니다.
프로젝트 기반 예산 관리
프로젝트의 예산을 관리하기 위해서 별도의 설정이 필요 없이, 애드온 설치만으로 현재 프로젝트 범위 내에서 예
산을 계획하고 관리
Work Log / Story Points 기반 인건비 계산
프로젝트의 멤버들은 자신의 이슈에 업무 시간을 기록하거나 스토리 포인트를 입력하면 자동으로 프로젝트의 인
건비를 계산하여 목록과 합계를 보여줌.
추가적인 Expense 관리
인건비 외의 물품 구입비, 회식비, 회의비, 간식비, 사무용품비와 같은 간접 비용은 별도의 비용 추가 메뉴를 통해
프로젝트 비용을 관리할 수 있음.
대시보드와 리포트
전체 및 개발 프로젝트의 예산 사용 현황을 표현하는 대시보드 위젯과 개별 프로젝트에서 생성할 수 있는 월별 추이,
계획 대비 집행 현황과 같은 다양한 리포트를 제공
JULY, 2017
로드맵
JUNE, 2017 AUGUST, 2017
• 사전 구매 및 커스터마이징
접수(할인제공)
• Atlassian Marketplace 출시
(6월30일 예정)
• 사용자 및 그룹별 비용(Cost
Rates) 설정 기능
• 사용자(Role & Group) 권한
설정 기능
• 업무요일과 업무시간 설정
기능
• Story Points 기반 예산 관리
• 확장을 위한 프로젝트
Custom Field 추가 기능
• 오버타임(Overtime) 계산 룰
설정 기능
• 인기 Gantt 차트 에드온과
연동 기능
• 확장을 위한 Rest API 제공
(ERP, 회계 시스템 등 연동)
감사합니다.

Atlassian을 이용한 애자일 ALM 소개 / JIRA 프로젝트 예산 관리 - 커브

  • 2.
    설진호 / 커브 Atlassian을이용한 애자일 ALM 소개
  • 3.
    ALM(Application Lifecycle Management) 어플리케이션A 지속적인 모니터링 및 제어 기획, 요구사항 유지, 운영, 폐기설계, 개발, 배포 • 시장 조사 • 고객 니즈 식별 • 요구사항 정의 산출물 • 기획 및 Vision 문서 • Market 요구사항 문서 • UI 요구사항 문서 …… • 아키텍처, 설계 • 개발, 코드 형상, 테스트 • 빌드, 배포 산출물 • 아키텍처 문서, 설계 문서 • 코드 문서 • 사용자 가이드 문서 …… • 변경 및 문제 관리 • 설계, 개발, 형상, 테스트 • 빌드, 배포 산출물 • 고객 요청, Bug 수정 • Design, Code, User Document Update …… ALM은 어플리케이션 제품이 기획되어 개발, 유지 및 운영, 폐기까지 전체 수명주기를 분야별 체계적인 공학 방 법 통해 성공적으로 이뤄질 수 있게 모니터링하고 문제를 제어함으로써 관리함.
  • 4.
    ALM 도입의 이점 개발품질 향상으로 고객으 로부터 발견되는 버그 최소 화를 통한 비용 절감 비즈니스 니즈를 개발에 정 확히 반영하고 요구사항의 부재 문제 최소화 유지보수 및 운영의 문제를 빠르게 처리함으로써 고객 만족도 증대 체계적인 관리 및 도구 구축 을 통한 품질 확보, 생산성 향상, 비용절감 극대화 비즈니스와의 통합 개발 품질 향상 민첩한 고객 대응 체계적인 관리
  • 5.
    But, ALM 도입은어렵다. 범위가 방대하다. 요구사항 부터 릴리즈까지 한번에 방대한 범위가 변경된다. 실용적인가? 정말 우리를 위한 것인가? 우리에게 도움이 되는가? 인력은 충분한가? 수행 인력은 충분한가? 여러 조직과 잘 통합되는가? 지속적인 가이드는? 내재화를 위한 지속적인 가이드는 누가하는가? 다양한 강점을 가지고 있지만, ALM 도입은 다음과 같은 이유로 인해 어렵다.
  • 6.
    Solution is AgileALM 실제적으로 도움, 쉬운 사용, 간결함에 도움되는 Agile Practice 적용 조직에게 변화를 최소할 수 있 는 영역부터 도입하고 단계적 으로 확장 개발단계에서 품질 활동 강화 를 통해 이후 단계에서 발견되 는 문제 최소화 정보를 집중화하고 조직이 빠 르고 쉽게 대화와 협업을 할 수 있는 체계 점진적인 ALM도입 애자일 프렉티스 개발 품질 강화 협업과 대화 중심
  • 7.
  • 8.
    Docker Eclipse Agile ALM Solution Daily2nd Build Quality Gatekeeper Build Verification Pull Request Git OK? Code Commit MergePush YES No Fail : Commit Reject Daily Build Release Build Sanity Test Project Budget Task Requirement Design Requirement Document Design Document Code Document Project Report Unit Test Artifactory Daily Build Artifact Release Build Artifact Zephyr for JIRA SonarQube Test ReportTest Cases Monitoring & Control Static Analysis Unit Test Automation Document Automation Test Result Coding Rule & Comment Potential Bugs & Unit Test Complexity & Duplication Test Scenario Release Test Release Doxygen UI Test Automation(Selenium) Performance Test Automation(JMeter)
  • 9.
    User Story <사용자>는 <목적>을위해 <기능>을 할 수 있어야 한다. Epic User story User story User story Description Test Method Story Point Priority 사용자 스토리는 시스템의 고객 혹은 사용자들이 원하는 시스템의 능력을 사용자의 관점에서 작성한 기능에 대한 짧고 간단한 설명이다.
  • 10.
    User Story inConfluence & JIRA 요구사항 작성 With template 요구사항 리스트 요구사항 리뷰 With inline comment 요구사항 이슈 Generation
  • 11.
  • 12.
  • 13.
  • 14.
    요구사항 문서 리뷰 &인라인 코멘트
  • 15.
    요구사항 문서 로 부터JIRA 이 슈 생성
  • 16.
    Agile Scrum 특정 스프린트동안 수행할 백 로그를 할당, 추정 계획 어플리케이션 제품 개발을 위 한 User Story, 버그, 업무 스프린트 동안에 수행 업무를 카드 형식으로 보드에 가시화 스프린트 종료 후 리뷰 및 회 고를 통해 지향점 확인 제품 백로그 스프린트 계획 칸반 & 스프린트 보드 스프린트 리뷰
  • 18.
  • 19.
  • 20.
    칸반 혹은 스프 린트보드 기반 프로젝트 관리
  • 21.
    Requirements & DesignTraceability Requirement Issue Requirement Issue Requirement Issue Requirement Issue Design Issue Design Issue Design Issue Design Issue Usecase Diagram Class Diagram Sequence Diagram Process Diagram Design Link Link
  • 22.
    Diagram for Architecture& Design Business Process Diagram Usecase Diagram Sequence Diagram Class Diagram Deployment Diagram State Machine Diagram Package Diagram UI Design
  • 24.
  • 25.
  • 26.
    Quality Gatekeeper Build Verification 통합문제를 확인하기 위해 빌드 검증 수행 Peer Code Review 코드 문제를 파악하기 위해 동료와 코드 리뷰 수행 Code Inspection SonarQube를 활용하여 코드 인스펙션 수행 Unit Testing 전체적인 테스트 통과 여부를 확인하는 단위 테스트 수행 Quality Gatekeeper는 조직의 품질 게이트(품질 요구사항)을 설정하고 품질 게이트를 통과하지 못한 코드는 중앙 저장소에 반영되지 못하게하는 품질 보장 게이트이다.
  • 27.
    Quality Gatekeeper Developer Reviewer 2. Triggerbuild 3. Build verification & Unit test 5. Pull Request 6. Code Inspection 7. Code Review & Code Merge 4. Static analysis result SonarQube 1. Push changes to dev branch
  • 28.
  • 29.
  • 30.
  • 31.
    IDE Connector 와 JIRA이슈 변경 사항 Commit & Push
  • 32.
  • 33.
    SonarQube Code 프로 젝트별 품질 현황 정보
  • 34.
  • 35.
  • 36.
  • 37.
    Daily Build 전체 소스코드에 대한 정적분 석(코딩룰, 잠재버그, 취약점 등)을 수행 클린 빌드를 통해 매일 새벽 소스 코드의 통합(빌드)에 문 제를 확인함 Doxygen, JavaDoc 등과 함께 코드 문서, 설계 문서 등을 자 동으로 생성 테스트 서버, 산출물 관리 서 버 등에 빌드 산출물을 자동 배포 수행 빌드 검증 코드 품질 검증 문서 생성 자동화 배포 자동화
  • 38.
    Release & Deploy정책 Dev Server Staging Server Production ServerTest Server AutomationCommit Build Daily Build Release Build Automation with trigger Automation with trigger Automation Automation
  • 39.
    Release 관리 Release Mgt. UserStory 2 User Story 1 User Story 3 Bug 1 Release Mgt. - Reviewed User Story 2 User Story 1 User Story 3 Bug 1 Release Plan Deploy to Test Server Release Build Deploy to Staging Server Deploy to Production Server
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
    Requirement Traceability 요구사항, 디자인,리스크 등 문서는 Confluence를 통해 팀내의 협업과 커뮤니케이션으로 작성되고 이로부터 자 동으로 요구사항을 추출하여 JIRA에서 추적성을 확보함. Product Requirement #1 Product Requirement #2 Product Requirement #3 Product Requirement #4 Product Requirement #5 Product Requirement #6 Product Requirement #1 Product Requirement #2 Product Requirement #3 Design #1 Risk #2 Testcase #3 Product Requirement #4 Product Requirement #5 Product Requirement #6 Commit #1 Build #1 Code Review #2 …… ………… Design #2 Risk #1 Risk #3 Testcase #4 Commit #2 Build #2 Code Review #3 …… Design #3
  • 50.
  • 51.
    Requirement Management Example 요구사항과디 자인, 리스트, 테 스트 링크 요구사항과 개 발 링크
  • 52.
  • 53.
  • 54.
    설진호 / 커브 curvcProject Budget JIRA 프로젝트 예산 관리
  • 55.
    curvc Project Budgetfor JIRA Addon 프로젝트 기반 예산 관리 프로젝트 기반의 심플하고 쉽게 계획 대비 사용 예산 관리 Work Log 기반 인건비 계산 이슈에 기록되는 Work Log 기반 자동 인건비 계산 별도의 Expense 관리 프로젝트 간접비 기록을 위한 별도의 비용 관리 제공 대시보드와 리포트 대시보드를 위한 위젯과 프로젝트 예산 관리 리포트 제공 커브에서 6월 출시 예정인 Project Budget for JIRA 에드온은 누구나 쉽게 이해하고 사용 가능한 목적으로 다음 과 같은 핵심 기능을 제공합니다.
  • 56.
    프로젝트 기반 예산관리 프로젝트의 예산을 관리하기 위해서 별도의 설정이 필요 없이, 애드온 설치만으로 현재 프로젝트 범위 내에서 예 산을 계획하고 관리
  • 57.
    Work Log /Story Points 기반 인건비 계산 프로젝트의 멤버들은 자신의 이슈에 업무 시간을 기록하거나 스토리 포인트를 입력하면 자동으로 프로젝트의 인 건비를 계산하여 목록과 합계를 보여줌.
  • 58.
    추가적인 Expense 관리 인건비외의 물품 구입비, 회식비, 회의비, 간식비, 사무용품비와 같은 간접 비용은 별도의 비용 추가 메뉴를 통해 프로젝트 비용을 관리할 수 있음.
  • 59.
    대시보드와 리포트 전체 및개발 프로젝트의 예산 사용 현황을 표현하는 대시보드 위젯과 개별 프로젝트에서 생성할 수 있는 월별 추이, 계획 대비 집행 현황과 같은 다양한 리포트를 제공
  • 60.
    JULY, 2017 로드맵 JUNE, 2017AUGUST, 2017 • 사전 구매 및 커스터마이징 접수(할인제공) • Atlassian Marketplace 출시 (6월30일 예정) • 사용자 및 그룹별 비용(Cost Rates) 설정 기능 • 사용자(Role & Group) 권한 설정 기능 • 업무요일과 업무시간 설정 기능 • Story Points 기반 예산 관리 • 확장을 위한 프로젝트 Custom Field 추가 기능 • 오버타임(Overtime) 계산 룰 설정 기능 • 인기 Gantt 차트 에드온과 연동 기능 • 확장을 위한 Rest API 제공 (ERP, 회계 시스템 등 연동)
  • 61.