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) | 워크플로우 공정 상 얼마나 많은 항목이 진행되는지 파악 가능하고 개발 단계에 남아있는 작업을 최소화 |
작업 소요시간 측정 | 항 항목을 완료하는 데 걸리는 평균시간을 측정하고 소요시간 최적화를 위해 프로세스 최적화 |