I. . 낭비요소 제거를 통한 프로세스 향상, 린(Lean)의 개요
가. 린(Lean)의 정의
- 낭비의 제거를 통해 프로세스를 지속적으로 개선, 수행속도를 높이고, 소프트웨어의 품질을 향상시키는 기법 (개발 프로세스가 아닌, 경영 기법, 사상임)
나. 린의 특징
특징 |
설명 |
신속성 |
- Lean은 낭비를 발견하고 제거함으로 고객에 가치를 빠르게 제공 |
생산성 향상 |
- 생산성 향상을 위해 사용하는 Lean 원칙을 SW 개발에 적용 |
결함제거 |
- SW 개발의 가장 큰 낭비는 결함이고 결함 제거 개념이 Agile과 유사 (Agile보다 큰 개념) - 프로젝트 초기 고객과의 접촉을 많이 하여, 낭비 및 폐기를 줄이는 프로세스 |
II. 린의 개발원칙 및 낭비요소
가. 린의 개발원칙 (7개)
개발원칙 |
설 명 |
낭비제거(Eliminate Waste) |
- 불필요한 코드/기능, 불분명한 요구사항 등 S/W 가치에 영향이 없는 모든 것을 제거 |
배움증폭(Amplify Learning) |
- 프로세스 진행 중 참여자(기획자, 개발자, 사용자 등) 학습의 필요성 존재 |
늦은결정(Decide As Late As Possible) |
- 주요문제에 대한 의사결정을 최대한 연기함으로써 요구사항변경에 적극적으로 대응 |
빠른인도(Deliver As Fast As Possible) |
- 결과물을 가능한 빨리 제공하는 것이 도움 - 사용자측면 : 불확실성 감소, 개발자측면 : 결함발견의 기회 |
팀에 권한위임(Empower The Team) |
- 팀원들의 동기부여 및 자기의사결정권으로 잠재력 극대화 |
통합성구축(Build Integrity In) |
- 개발 초기부터 지속적인 통합으로 품질 향상 - 소규모 개발단계마다 오류 발견 및 수정 |
전체최적화(See The Whole) |
- 요구사항수집부터 S/W 배포까지 모든 프로세스 최적화 |
나. 린의 낭비요소 (7개)
낭비요소 |
설 명 |
제조 공정 |
미완성 작업 (Partial Done Work) |
- 코드화 하지 않은 문서, 테스트하지 않은 코드 등 |
재고 (Inventory) |
여분기능 (Extra Feature) |
- 필요하지 않은 기능을 추가 |
과잉생산 (Over Production) |
재학습 (Relearning) |
- 지식보유자가 개발에 참여하지 못해 해당 지식을 학습하는 활동 |
과잉가공 (Over Process) |
이관 (Handoff) |
- 업무 이관 시 상당량의 암묵지가 전수되지 못하는 경우 |
이동 (Transport) |
작업전환 (Task Switching) |
- 작업수행 중 다른 작업으로 전환할 경우 집중력 분산 및 시간소모 |
동작 (Motion) |
지연 (Delay) |
- 특정 인력이 가용한 상태가 될 때까지 기다림 |
대기 (Waiting) |
결함 (Defects) |
- 테스트에 결함 유입을 걸러주는 실수방지테스트 포함 |
결함 (Defects) |
II. 린과 칸반의 관계 및 활용 방안
가. 린과 칸반의 관계
- JIT(Just In Time), WIP(Work In Process)
나. 린 개발에서 칸반의 활용
- 칸반(Kanban)은 생산시스템에서 일하는 작업들이 어떤 작업이 어떤 작업을 해야 하는지 알려주는 작업지시서
단계 |
설명 |
워크플로우 가시화 |
일을 작게 나누어 분류하고 각 항목이 어느 단계인지 알 수 있도록 제목을 붙임 |
공정중 관리(WIP) |
Work in process/progress 워크플로우 공정 상 얼마나 많은 항목이 진행되는지 파악 가능하고 개발 단계에 남아있는 작업을 최소화 |
작업 소요시간 측정 |
한 항목을 완료하는 데 걸리는 평균시간을 측정하고 소요시간 최적화를 위해 프로세스 최적화 |
Ⅳ. Lean과 SCRUM, Kanban 비교
구분 |
SCRUM |
Kanban |
Lean |
수행 절차 |
|
||
수행 원리 |
Sprint를 통한 반복적 개발 |
Workflow를 통한 연속적 개발 |
낭비 제거 |
수행 규칙 |
1) 3역할자 - Project Owner, Scrum Master, Scrum Team 2) 3미팅 - sprint meeting, daily scrum, review 3) 3산출물 - product backlog, sprint backlog, burndown chart |
1) Workflow 시각화 2) WIP(Work-in-process) 제한 3) 소요시간 측정 및 최적화 |
낭비를 줄여, 고객 가치를 최대화 하는 사상 및 아이디어를 총칭 |
수행 단위 |
Sprint Backlog를 통한 Time-boxing |
WIP 제한을 통한 작업량 조절 |
프로세스 적용 |
역할 정의 |
3개의 역할자로 정의 |
별도의 역할자를 정의하지 않음 |
기업마다 상이 |
공정 관리 |
burn down chart와 velocity 측정 |
workflow가시화와 WIP 제한 |
별도 없음(사상) |
V. 린과 애자일 방법론의 비교
항 목 |
설 명 |
공통점 |
- 요구사항변화를 적극적으로 수용 - 결과물을 사용자에게 빠르게 전달하여 고객가치와 만족도를 높임 |
차이점 |
- 애자일 : 사용자와의 협업을 통해 빠른 개발을 수행(사용자와 협업) - 린 : 사용자 관점에서 전체 프로세스 상 낭비 제거 (전적으로 사용자 관점) |
[참고] Lean UX
개념 |
핵심가치를 정의하고, 그에 기반한 가설을 신속하게 만들고, 재빠른 검증, 핵심 지표를 보며, 매 Iteration마다 작업을 동시에 수행하는 개념 |
3가지 원칙 |
1) 디자인적 사고(Design Thinking) 2) 애자일 개발 : 개발적 방법론 3) 린스타트업 방법론 : 기획 및 비즈니스에서 적용 |
[참고] Lean Startup 프로세스 개념
가. 린 스타트업(Lean Startup)의 정의
- '방향을 바꾸는 속도'가 빨라야 한다는 민첩함의 중요성을 강조한 최근의 경영 방식
나. 린 스타트업만의 고유한 개념, '방향전환(Pivot)'
- 방향전환은 당초 예측과 다른 결과가 나왔을 때 무엇이 잘못되었는지를 확인하고 재빨리 방향을 바꿔 새로운 시도를 하는 능력
[참고 - 교재] 린 소프트웨어 개발의 기원 , TPS(Toyota Production
- 철저하게 낭비를 제거하는 생산방식은 TPS 의 핵심 개념은 적시생산흐름 (Just in time Flow) 와
- 자동화이고 향후 린 생산으로 알려지게 됨
- TPS 의 핵심 개념인 JIT(Just In Time) 은 다양성에 의해 초래되는 주요 비용 증가 요인들을 제거하여
- 복잡도를 효과적으로 통제하는 것이 목적
- 린 원칙은 공급망 , 제품개발 , 소프트웨어 개발까지 확장
[참고] Lean Management Principles
https://blog.infodiagram.com/2019/03/explain-lean-management-with-visuals.html
'정보관리기술사&컴퓨터응용시스템기술사 > SW공학과 프로젝트관리' 카테고리의 다른 글
[프로젝트 관리 지식영역] 프로세스 그룹별로 진행할 활동의 그룹핑 (0) | 2021.01.12 |
---|---|
[요구사항 수집] 프로젝트 목표달성의 지표 (0) | 2021.01.12 |
[CI/CD 지속적통합/지속적배포], Devops 의 핵심 구성요소 (0) | 2021.01.10 |
[객체지향 프로그래밍(OOP)], 재사용성과 객체 표현 기법 (0) | 2021.01.09 |
[객체지향 설계 5원칙] 유지보수와 확장에 용이한 시스템을 위한 원칙 (0) | 2021.01.06 |
댓글