소프트웨어 엔지니어링의 칸반 모델
칸반이란 무엇입니까?
Kanban 애자일 소프트웨어 개발 방법론에서 매우 인기 있는 개발 프레임워크입니다. 이는 팀의 작업과 작업 능력을 시각화하는 투명한 방법을 제공합니다. 주로 실제 보드와 디지털 보드를 사용하여 팀 구성원이 작업 중인 프로젝트의 현재 상태를 시각화할 수 있습니다.
칸반은 1940년대 도요타에서 시작되었습니다. 칸반의 일본어 의미는 "빌보드"입니다. 칸반 보드에는 열과 스토리 카드가 있습니다. 열은 아무것도 아니지만 워크플로 상태와 카드는 팀원이 수행하는 실제 작업을 보여주는 것일 뿐입니다.
칸반은 언제 사용하는가?
Kanban 개발 방법을 사용하는 이유는 다음과 같습니다.
- Kanban은 모든 도메인에서 사용할 수 있으며 소프트웨어 개발에 매우 효과적으로 사용될 수 있습니다. Kanban 프로젝트 관리는 팀의 효율성을 향상시키는 데 도움이 됩니다.
- 풀 기반 시스템입니다. 개인이 자유로워지는 즉시 작업이 취소됩니다.
- 칸반은 언제든지 작업을 공개하고 싶을 때 사용해야 합니다. git 분기가 필요하지만 가능합니다.
- Kanban은 우선 순위를 즉시 변경하려는 경우에 사용해야 합니다. 이를 위해 당신이 해야 할 일은 이 스토리를 할 일 대기열의 맨 위에 두는 것뿐입니다.
- 작업을 시각화하고 작업 진행 상황을 시각적으로 확인하려는 경우에 사용해야 합니다.
칸반 카드
Kanban 시스템은 작업 시각화를 권장합니다. 물리적 보드와 디지털 보드의 활용을 제안합니다.
칸반 카드는 팀이 진행 중인 작업을 나타내기 때문에 칸반 보드의 필수 요소입니다. 이 카드에는
- 우선
- 소유자
- 타입
- 마감일
칸반보드의 열은 작업 단계를 나타내며 해당 열에 WIP(Work in Progress) 제한을 설정할 수 있습니다. WIP 한도는 해당 열에 머무를 수 있는 최대 카드 수를 의미합니다..
Kanban 프로젝트 관리는 풀 기반 시스템을 사용하므로 개발자가 시간이 없을 때 할 일 열에서 개발 열로 카드를 가져올 수 있습니다.
칸반 보드
칸반 보드 Kanban을 구현하여 개인 및 비즈니스 목적으로 프로젝트를 관리하는 데 도움이 되는 민첩한 프로젝트 관리 도구입니다. 팀이 다양한 단계와 프로세스에서 작업을 시각화할 수 있도록 설계된 물리적 또는 디지털(JIRA) 보드입니다. 또한 카드를 사용하여 열 작업 단계를 나타내는 데 도움이 됩니다.
다음과 같은 작업 상태를 나타내는 열이 있습니다.
- 할 것,
- 데브
- 지원
- 만들기
이러한 각 열에는 WIP 한도 미만의 카드가 있을 수 있습니다. 카드는 실제 작업을 나타냅니다.
양수를 사용하여 진행 중인 작업을 제한할 수 있으며, 이 제한 숫자는 물리적 및 디지털 칸반 보드의 열 맨 위에 배치할 수 있습니다. 팀의 모든 개인은 자신의 카드 상태를 관리할 수 있으며, 전체 팀은 워크플로를 시각화할 수 있습니다. 이 칸반 튜토리얼의 다음에서는 칸반 워크플로에 대해 알아보겠습니다.
칸반 워크플로우
칸반 워크플로우 팀이 Kanban에서 명시적인 정책과 원칙을 정의하는 데 도움이 되는 일련의 단계입니다. 이는 개발 및 전달 주기의 다양한 단계에 걸쳐 작업이 진행되는 동안의 규칙과 절차를 나타냅니다. Kanban 워크플로는 특정 작업의 시작과 전달 사이의 단계별 프로세스로 구성됩니다.
Kanban의 기본 원칙은 다음과 같습니다. "시작을 멈추고 마무리를 시작해라". WIP 제한의 도움으로 더 많은 작업이 완료됩니다. JIRA와 같은 최신 도구에서는 사용자 정의 가능한 Kanban 워크플로와 상태를 사용할 수 있습니다.
다음은 많은 소프트웨어 팀이 워크플로 관리를 위해 따르는 기본 상태입니다.
미국 | 업무의 이해 |
---|---|
할 것 | 이 상태에서는 처음으로 작업이 여기에 도착합니다. |
분석 준비 | 작업을 분석하고 요구사항을 완전히 추가합니다. |
개발 준비 완료 | 분석이 완료되고 개발을 시작할 수 있습니다. |
개발중 | 작업이 개발 중입니다. |
테스트 준비 완료 | 개발이 완료되었으며 이제 테스트를 시작할 수 있습니다. |
테스트에서는 | 작업이 테스트 중입니다. |
출시 준비 완료 | 테스트가 완료되었습니다. 출시가 일어날 수 있습니다. |
릴리스됨/완료 | 출시되었습니다. |
칸반의 XNUMX가지 원칙
다음은 Kanban의 주요 XNUMX가지 핵심 원칙입니다.
- 지금 가지고 있는 것부터 시작해 보세요.: 칸반 시스템은 점진적으로 작업하고 현재 가지고 있는 것부터 시작하도록 제안합니다. 그 실천 중 하나가 지속적으로 개선하는 것이므로 시스템을 점진적으로 개선해야 합니다.
- 점진적이고 진화적인 변화를 추구하는 데 동의합니다. 칸반은 프로세스의 점진적인 변화를 권장하며, 프로세스에서 한 번에 큰 변화를 줘서는 안 됩니다.
- 현재 프로세스, 역할 및 책임을 존중합니다. 다시 한 번 현재 가지고 있는 것부터 시작하여 프로세스, 역할 및 책임을 점진적으로 변경하십시오.
- 모든 수준에서 리더십 활동을 장려합니다.: 모든 개인이 리더 역할을 하며 칸반 시스템 전반의 효율성을 높이기 위한 아이디어를 제공할 수 있습니다. 이것이 경영진 수준의 활동이라고 생각하면 안 되며, 팀의 막내라도 리더 역할을 할 수 있습니다.
XNUMX가지 칸반 핵심 관행
칸반의 6가지 핵심 실천 사항은 다음과 같습니다.
- 워크플로 시각화: 이 원칙은 워크플로를 시각화하기 위해 Kanban 보드(물리적 또는 디지털)를 갖는 것을 제안합니다. 팀의 각 개인은 자신의 카드와 다른 팀 구성원의 카드를 확인해야 합니다. 위 이미지에 따라 카드를 다른 열로 이동할 수 있습니다. 팀 내에서 많은 투명성을 제공하고 방해 요소를 더 쉽게 해결할 수 있습니다.
- 진행 중인 작업 제한: Kanban은 Pull 기반 시스템으로, 진행 중인 작업을 제한하고 팀에서 주어진 시간 안에 완료할 수 있는 작업을 갖도록 하여 팀의 효율성을 향상시킵니다. 이 WIP 한도는 워크플로우의 시작부터 끝까지 적용됩니다. 양의 정수를 사용하여 열 위에 제한을 적용할 수 있습니다.
- 흐름에 집중: 이 원칙은 흐름과 중단에 중점을 둡니다. 중단이나 방해 요소가 있는 경우 영구적으로 수정해야 합니다.
- 명시적 정책: 재작업을 줄이고 주의가 필요한 영역이나 더 효과적인 영역에 집중하기 위해 팀에서 정책을 수립할 수 있습니다.
- 피드백 루프: 피드백 루프는 Kanban에서 매우 중요합니다. 이는 팀 내뿐만 아니라 여러 팀, 코치 등 사이에서도 이루어집니다. 이는 Kanban 시스템의 전반적인 상태를 개선하는 데 도움이 됩니다.
- 지속적인 개선: 이것이 칸반 시스템의 핵심 원칙입니다. 이는 항상 프로세스를 개선할 수 있으며 결과적으로 효율성이 향상될 것이라고 말합니다.
풀 기반 시스템
Kanban은 작업을 푸시하는 대신 가져오는 풀 기반 방법입니다. 현재 카드를 완성하자마자 칸반 보드의 이전 열에서 새 카드를 가져올 수 있습니다.
WIP 제한을 통해 칸반은 리드 타임과 사이클 타임을 개선하는 데 도움이 됩니다. 이 두 타이밍 사이에 가능한 한 최소한의 간격이 있어야 합니다. 예를 들어, 개발자가 5명이고 테스터가 1명뿐인 경우 어떻게 될까요? 테스트가 필요한 카드가 항상 많을 것이고, 그들은 유휴 상태로 대기할 것입니다.
위에서 언급한 문제를 극복하고 효율성을 향상시키기 위해 Kanban은 끌어올 수 있는 카드 수가 제한된 WIP 제한이 있는 풀 기반 접근 방식을 따릅니다.
따라서 테스터는 현재 작업을 완료하면 "테스트 준비" 단계에서 작업을 가져옵니다. Kanban 열(개발 단계)의 WIP 제한을 사용하면 Kanban 워크플로에 무인 카드가 많지 않습니다.
풀 기반 시스템은 팀의 올바른 속도를 찾는 데에도 도움이 됩니다. 올바른 속도를 사용하면 팀의 성과가 더 좋아질 것입니다.
리드타임 및 사이클타임
칸반 방식에서는 리드타임(Lead Time)과 사이클타임(Cycle Time)이 널리 사용되는데, 둘 사이에는 차이가 있으므로 이를 이해하는 것이 혼동을 피하기 위해 중요합니다.
리드 타임 | 사이클 타임 |
---|---|
리드 타임은 작업이 워크플로에 도착하는 시점과 워크플로에서 출발하는 시점, 즉 작업이 릴리스되었음을 의미하는 시점 사이의 시간으로 측정됩니다. | 주기 시간은 작업이 "진행 중" 상태에 도달하고 작업이 "릴리스 준비"에 도달할 때까지의 시간으로 측정됩니다. |
여기서는 출시 준비부터 실제 출시까지 걸리는 시간을 포함하지 않는다는 점을 이해하는 것도 중요합니다.
Cycle Time = Work in Progress/Throughput
이상적인 시나리오에서는 리드 타임과 주기 시간 간의 격차가 최소화되어야 하며 Kanban은 CFD(누적 흐름도)를 사용하여 리드 및 주기 시간 기록 데이터를 측정합니다.
누적 흐름도(CFD)
CFD는 모든 주요 차트에서 사용할 수 있는 차트입니다. 워크플로 관리 도구 JIRA처럼요. 이 차트는 워크플로에 입력되고 시간이 지남에 따라 완료된 카드/작업을 축적한 작업 카드/작업의 총량을 측정합니다.
미리 지정된 시간에 대한 평균 리드타임과 사이클 시간을 추정하는 데 도움이 됩니다.
CFD 다이어그램은 수정해야 할 지표나 문제 영역을 제공합니다. 이 다이어그램을 기반으로 명확한 그림을 제공할 것입니다. 팀의 리드타임과 사이클타임을 수정할 수 있습니다.
- 리드 타임: 워크플로에 새 카드가 도착하는 시점부터 워크플로에서 최종적으로 벗어나는 시점까지의 시간입니다.
- 사이클 타임: 카드가 작동 상태에 도달하는 시점과 카드가 출시될 준비가 되는 시점 사이의 기간입니다.
- WIP: 진행 중인 작업(WIP)은 워크플로의 다양한 단계에서 작업 항목의 최대 양을 제한합니다.
- 맞춤형 설비: 실제 실적이며, 특정 기간 동안 실제 전달된 카드 수를 알려줍니다.
처리량 = WIP/주기 시간
WIP 제한(작업 진행 중)
Kanban 개발 방법론에서 WIP는 팀 구성원 또는 전체가 동시에 작업할 수 있는 작업/카드 수를 제한합니다.
WIP 제한은 팀이 작업을 안정화하고 풀 기반 시스템에 필수적인 예측 특성을 향상하도록 보장합니다. 일반적으로 WIP 한도는 팀 자체에서 결정합니다.
WIP 한도를 설정하는 이유
WIP 한도를 설정하는 이유는 다음과 같습니다.
- 한 번에 한 가지 작업에만 집중하면 일을 처리하는 데 초점을 맞출 수 있습니다.
- 이는 팀이 자신의 역량을 이해하는 데 도움이 됩니다.
- 생산성 리드와 사이클 타임을 향상시킵니다.
- 작업이 쌓이는 것을 방지하는 데 도움이 됩니다(대기 모드에서).
- 워크플로 이동에 도움이 되며 작업이 계속 이동합니다.
- 또한 개인이 서로 다른 작업 간에 전환하지 않으므로 방해 요소를 해결하는 데 도움이 됩니다.
스크럼 대. 칸반
다음은 사이의 중요한 차이점입니다. 스크럼 대. 칸반
스크럼 | Kanban |
---|---|
스크럼 계획을 강조한다. 스프린트 계획으로 시작하여 스프린트 회고로 끝납니다. 팀이 이전 스프린트의 다음 단계, 우선순위 및 학습 내용에 맞춰 조정되도록 하는 데 도움이 되는 많은 회의가 개최됩니다. | Kanban은 이동 중에도 변경이 가능하도록 열려 있습니다. 탄력이 덜하다는 뜻이고 상황은 자주 바뀔 수 있어요. |
모음을 권장합니다. 시간 측정 스프린트 중에 만들어짐 | Kanban 그래프 추천 시간 경과에 따른 팀의 진행 상황에 대한 개요를 확인합니다. |
스크럼 더이상 팀의 헌신을 요구합니다. 대신 스프린트 목표와 예측에 관한 것입니다. | 칸반은 의존한다 타임박싱과 예측. |
계획을 강조하는 등 추정은 매우 중요한 역할을 한다 스크럼에서 | 칸반은 필수 요구 사항 없음 추정을 위해. |
모든 개인은 자신의 역할이 있다 그리고 책임. | 아니 역할을 유연하게 설정하세요 개인의 책임 측면에서. |
반복/Sprints는 기간이 고정되어 있습니다. 기간은 2주에서 1개월까지 다양합니다. | 칸반은 기간을 기준으로 하지 않음. 이것은 사이클 시간과 관련하여 측정됩니다. |
팀은 커밋하는 데 필요한 특정 양의 작업. | 약속은 필요하지 않습니다 팀의 경우 선택 사항입니다. |
이 방법에서는 다기능 팀 소프트웨어 개발에 병목 현상을 일으킬 수 있는 모든 중단을 처리할 수 있기 때문에 중요합니다. | 데 전문팀 중요하다. |
그것은 항목을 추가할 수 없습니다 지속적인 반복에. | 신제품 항목을 쉽게 추가할 수 있습니다. 추가 용량이 가능한 경우. |
스프린트 백로그는 오직 다음 사람만이 소유합니다. 단일 팀. | 여러 팀Kanban 보드를 공유할 수 있습니다. |
결과물은 다음과 같습니다 스프린트로 결정됨, 일련의 작업이 완료되어 검토 준비가 되어야 합니다. | 제품과 프로세스는 지속적으로 전달 필요에 따라. 그래서 테스트와 검토 프로세스가 동시에 진행됩니다. |
스크럼 소프트웨어 개발 방법 백로그에 초점을 맞춘다. | 칸반 방식 전체 프로세스 대시보드에 중점을 둡니다.. |
모든 팀원은 특정 역할을 가지고 있습니다. 스크럼 마스터에서는 타임라인을 결정하고, 제품 소유자는 목표와 목적을 설정하며, 팀 구성원은 개발 작업을 수행합니다. | 팀에 대해 미리 정의된 역할은 없습니다. 그러나 여전히 프로젝트 관리자가 있을 수 있습니다. 팀은 협력하고 함께 일하도록 권장됩니다. |
프로젝트에 가장 적합합니다. 우선순위 변경. | 다음과 같은 팀에 이상적입니다. 안정적인 우선순위 시간이 지나도 변하지 않을 것 같습니다. |
생산 측정 속도를 사용하여 스프린트를 통해서. | 다음을 사용하여 생산을 측정합니다. 주기 시간 또는 프로젝트의 전체 부분을 완료하는 데 걸리는 정확한 시간입니다. |
스크럼에는 기존 모델에서 완전히 전환 프로젝트를 구현할 Agile Scrum 모델에 적용합니다. | Kanban 급격한 변화를 허용하지 않는다 프로젝트에서. |
이는 프로젝트에 이상적인 방법입니다. 다양한 우선순위. | 가장 적합한 안정적인 우선순위를 가진 팀. |
스크럼에서는 전체 team은 협업하고 작업을 완료하는 데 중점을 둡니다. 양질의 개발 업무를 제공합니다. | 팀은 목표를 달성하기 위해 노력한다 전체 프로세스를 완료하는 데 걸리는 시간을 단축합니다. 따라서 시간주기의 단축은 여기에서 성공의 가장 큰 지표입니다. |
스크럼 일정을 강조; 진행 중인 반복에는 새 항목을 추가할 수 없습니다. | Kanban은 본질적으로 더 반복적입니다. 특정 기간이 없습니다.. 따라서 추가 용량을 사용할 수 있을 때마다 새 항목을 지속적으로 추가할 수 있습니다. |
전체 작업은 에서 이루어집니다. 배치/Sprints. | 전체 프로젝트는 단일 스레드 작업 항목 흐름. |
스크럼 마스터 문제 해결사 역할을 합니다. | 칸반은 장려한다 모든 팀원은 리더이다 그리고 그들 모두가 책임을 공유합니다. |
스크럼이 처방하는 시간 제한이 있는 반복. | 칸반은 다음에 중점을 둡니다. 다른 기간을 계획 개별 반복을 위해. |
스크럼은 기업이 다음을 수행하도록 돕습니다. 시간과 돈을 절약하십시오.. | 칸반 방법 지속적인 개선에 집중, 생산성 및 효율성. |
안정적이고 일관된 커뮤니케이션 모든 수준에서의 성능. | 팀원들은 그럴 가능성이 더 높다. 목표를 훨씬 쉽게 달성할 수 있습니다 칸반 보드의 시각적 특성 때문입니다. |
프로젝트는 스프린트 동안 코딩 및 테스트됨 리뷰 | 팀원들은 그럴 가능성이 더 높다. 목표를 훨씬 쉽게 달성할 수 있습니다 칸반 보드의 시각적 특성 때문입니다. |
그것은 지속적인 변화에 적응하기가 더 쉽습니다. 짧은 스프린트와 정기적인 피드백 덕분에요. | 그것은 규칙적이고 꾸준한 출력을 위해 설계되었습니다., 고객 수요의 큰 변화로 인해 Kanban이 실패할 수 있습니다. |
프로젝트의 총 비용은 최소화되어 다음과 같은 결과가 발생할 수 있습니다. 더 빠르고 저렴한 결과. | 작업이 올바르게 예측되지 않은 경우 총 프로젝트 비용은 정확하지 않습니다. 이런 경우, 작업은 여러 스프린트로 분산될 수 있습니다. |
이 방법론 경험이 풍부한 팀원이 필요합니다 오직. 따라서 전문가가 아닌 사람들로 팀을 구성하면 프로젝트를 제 시간에 완료할 수 없습니다. | 아니 특정 기간 각 단계마다 할당되므로 팀 구성원은 모든 단계에서 얼마나 많은 시간이 걸릴 수 있는지 전혀 알 수 없습니다. |
이 Agile Scrum 방법에서는 고품질의 제품을 제공하기가 더 쉽습니다. 예정된 시간에. | 그것은 다음을 위해 설계되었습니다. 규칙적이고 안정적인 출력, 고객 수요의 큰 변화로 인해 Kanban이 무너질 수 있습니다. |
이 어플리케이션에는 XNUMXµm 및 XNUMXµm 파장에서 최대 XNUMXW의 평균 출력을 제공하는 프로젝트 계획은 결코 방해받지 않을 것입니다 팀원이 팀을 떠나더라도 말이죠. | 개발 중에 팀원 중 누군가가 퇴사하면 프로젝트 개발에 해를 끼치다. |
가끔 매일 모임 좌절 팀 멤버. | 오래된 Kanban 보드 개발 과정에서 문제가 발생할 수 있습니다. |
대규모 프로젝트를 쉽게 분할할 수 있음 쉽게 관리할 수 있는 스프린트로 전환합니다. |
요약
- Kanban 정의: Kanban은 소프트웨어, 자동차, 상품, 의약품, 신발 또는 기타 제조 작업을 개발하기 위한 민첩한 개발 방법론으로 정의됩니다.
- Kanban은 Kanban 보드를 사용하여 작업을 시각화합니다. 열을 단계(할 일, 개발, 테스트 등)로 사용하고 카드를 작업 항목으로 사용합니다.
- Kanban 방법론은 시각화를 위해 물리적 및 디지털 보드를 지원합니다.
- 칸반은 풀(Pull) 기반 시스템으로, 팀원들이 이전 단계에서 현재 단계로 카드를 끌어옵니다.
- Kanban 방법은 CFD 다이어그램을 사용하여 팀의 리드 타임과 주기 시간을 이해합니다. 이 차트는 팀이 두 타이밍 사이의 격차를 해결하고 효율성을 향상시키는 데 도움이 됩니다.
- Kanban 개발 방법론인 WIP는 팀 구성원 또는 전체가 동시에 작업할 수 있는 작업/카드 수를 제한합니다.
- WIP는 한 사람이 한 번에 하나의 작업에만 집중함으로써 일을 완료하는 데 초점을 맞추는 것을 제한합니다.