2018년 11월 30일
LEAN 방법론
I. TPS(Toyota Production System)를 재정립한 경영방법 LEAN 개요
가. LEAN 개발방법론의 정의
TPS(Toyota Production System)를 벤치마킹하여 재정립한 경영방법론인 LEAN 시스템의 품질 기법을 소프트웨어 개발에 적용한 개발방법론
나. LEAN 개발방법론의 특징
- LEAN은 낭비를 발견하고 제거함으로 고객에 가치를 빠르게 제공
- 생산성 향상을 위해 사용하는 LEAN 원칙을 SW 개발에 적용
- SW 개발의 가장 큰 낭비는 결함이고 결함 제거 개념이 Agile과 유사
다. LEAN에서의 대표적인 낭비 요소
Transportation, Inventory, Motion, Waiting, Over Production, Over Processing, Defects/Rework
II. LEAN 개발의 7가지 원칙
원칙 | 설명 |
---|---|
Eliminate waste 낭비의 제거 | 불필요한 코드나 기능, 불분명한 요구사항 등 상품의 가치에 영향을 미치지 않는 모든 것을 제고 |
Amplify Learning 배움 증폭 | 프로젝트가 진행 간 학습할 필요가 있음, 고객의 학습도 필요 |
Defer Commitment 늦은 결정 | 중요한 문제에 대한 의사 결정을 최대한 미룸 요구사항 변경에 적응적으로 대응 할 수 있게 함 |
Empower the Team 팀에 권한 위임 | 직원들의 동기부여 및 자기의사결정권으로 잠재력 극대화 |
Deliver Fast 빠른 납품 | 빨리 결과물을 제공할 것, 고객이 요구사항을 변경할 시간을 주지 않음, 결점을 발견할 수 있는 시간 제공 |
Build Integrity in 통합성 구축 | 개발 초기부터 품질을 향상 시키도록 하는 것, 작은 개발 단계마다 오류를 발견하고 수정하는 작업 |
Optimize the whole 전체를 볼 것 | 요구사항 수집부터 제품을 릴리즈 하는 시점까지 모든 프로세스를 최적화 해야 함 |
III. LEAN 개발의 7대 낭비와 Kanban 활용
가. LEAN SW 개발의 7대 낭비
7대 낭비 | 설명 |
---|---|
미완성 작업 (Partial Done Work) | 코드로 옮기지 않은 문서, 동기화되지 않은 코드 등 빠지지않게 흐름을 진행해야 재고 줄일 수 있음 |
가외기능 (Extra Feature) | 필요하지 않는 기능을 추가하는 것으로 업무에 집중하고 되도록 기능을 추가하지 않는 방향으로 생각 |
재학습 (Relearning) | 사람들을 개발 과정에 끌어들이지 못해 작업 공간에 제공할 수 있는 지식을 놓여 재학습하는 활동 |
이관 (Handoff) | 업무의 이관은 상당량의 암묵지가 전수되지 못하고 암묵지를 문서로 전달하기 어려움 |
작업전환 (Task Switching) | 작업 중 다른 작업으로 전환하는 것은 집중이 분산되고 시간을 소모 시키므로 전환 시간 낭비 최소화 |
지연 (Delay) | 필요한 인원이 정기적인 피드백이 있는 Iteration은 지연을 극적으로 줄일 수 있음 |
결함 | 테스트에 결함 유입을 걸러주는 실수 방지 테스트가 반드시 포함하고 자주 테스트 |
나. LEAN SW 개발에서 Kanban 활용
단계 | 설명 |
---|---|
워크플로우 가시화 | 일을 작게 나누어 분류하고 각 항목이 어느 단계인지 알 수 있도록 제목을 붙임 |
공정중관리(WIP) | 워크플로우 공정 상 얼마나 많은 항목이 진행되는지 파악 가능하고 개발 단계에 남아있는 작업을 최소화 |
작업 소요시간 측정 | 항 항목을 완료하는 데 걸리는 평균시간을 측정하고 소요시간 최적화를 위해 프로세스 최적화 |