낭비요소를 제거하는 개발방법론, 린(Lean)
- 정보처리기술사/소프트웨어공학
- 2019. 1. 5.
린 개발 방법론은 토요타 생산 시스템(Toyota Production System)에서 사용한 기법을 Mary and Tom Poppendieck 부부가 2003년에 재정립한 기법이다. 즉 생산 시스템에서 영감을 얻어 프로그램 개발 방법론에 적용한 기법인데 IT 프로젝트 뿐만 아니라 다양한 분야에서 사용할 수 있는 기법이다.
린 방법론은 무다(無駄)라는 "낭비"에 포커스를 두고 프로젝트를 수행할 때 발생할 수 있는 모든 낭비를 제거하는 기법이다. 예전에 TPS에 관련된 교육 이수를 받은 적이 있었는데 동료에게 물건을 전달할 때에도 낭비 요소가 없는지 전화 통화를 할 때 낭비요소가 없는지 모두 체크하는 것이 인상적이었다.
낭비요소 제거를 통한 프로세스 향상, 린 개발방법론 의 개요
린(Lean) 개발 방법론의 개념
- TPS(Toyota Production System)를 재정립한 경영방법론인 린 시스템의 품질 기법을 소프트웨어 개발에 적용한 개발 방법론
린 개발방법론의 특징
- 품질기법 : 린 공학 품질 기법을 SW 개발 프로세스에 적용
- 낭비요소제거 : 낭비요소 제거하고 7가지 개발원칙 준수
- 낭비의 제거를 통해서 지속적인 개선 및 수행 속도를 높히고 효과적으로 품질을 개선
린 개발방법 개념도 및 7가지 개발원칙
린 개발방법 개념도
7가지 개발원칙
Eliminate waste (낭비의 제거)
- 불필요한 코드나 기능, 불분명한 요구사항, 느린 커뮤니케이션 이나 프로세스, 관료적 습관 등 상품의 가치에 영향을 미치지 않는 모든 것을 제거
Amplify Learning (배움 증폭)
- 프로젝트가 진행간 학습할 필요가 있음, 고객의 학습도 필요
Defer Commitment (늦은 결정)
- 중요한 문제에 대한 의사 결정을 최대한 미룸
- 요구사항 면경에 적응적으로 대응 할 수 있게 함
Empower the Team (팀에 권한 위임)
- 직원들의 동기부여 및 자기의사결정권으로 잠재력 극대화
Deliver Fast (빠른 인도)
- 최대한 빨리 결과물을 제공할 것, 고객이 요구사항을 변경할 시간을 주지 않음, 또한 결점을 발견할 수 있는 시간 제공
- 고객의 불확실성 감소 -> 사실에 기반한 결정
- 불필요한 개발로 인한 낭비 감소로 비용 우위
Build Integrity in (통합성 구축)
- 개발 초기부터 품질을 향상 시키도록 하는 것, 작은 개발 단계마다 오류를 발견하고 수정하는 작업
Optimize the whole (전체를 최적화)
- 요구사항 수집부터 제품을 릴리즈하는 시점까지 모든 프로세스를 최적화 해야 함
낭비의 종류
코딩(waste in code development)
미완성 작업
- 일정을 지키지 못하고 사용을 못하게 된 가능성이 있음
- 해결책 : 코드 모듈화, 반복적인 개발
결함
- 결함 수정 및 반복 테스트
- 해결책 : Test Suite 갱신, 고객 Feedback
프로젝트 관리(waste in project management)
추가적인 프로세스
- 낭비적이고 불필요한 문서화
- 해결책 : 문서 리뷰
코드 이관
- 이관 시 지식의 손실
- 해결책 : 이관 횟수 감소 -> 프로젝트 간소화
여분의 기능
- 고객이 필요로 하지 않는 기능
- 해결책 : 고객과의 커뮤니케이션을 통한 피드백
개발자(waste in workforce potential)
작업 전환
- 다중 작업의 비효율
- 해결책 : 출시를 위한 각각의 작업 집중
인프라 활용이나 정보를 얻기 위한 대기
- 개발자는 대기하기에는 비싼 인력
- 개발자 스스로의 정보에 기반하여 판단하고 행동함
린과 애자일의 차이
몇몇 분들은 린 방법론은 애자일의 부류에 속하는 걸로 보는 분들이 계시지만, 애자일은 고객과 협업 등을 기반으로 프로세스를 수정해 나가지만 린은 현재 하고 있는 프로세스에서 낭비를 제거하는 관점을 갖고 있다. 린은 모든 방법론에 적용할 수 있으며 애자일에서 부족한 부분을 린 방법으로 보충할 수 있는 개념이다.
구분 |
애자일 |
린 |
관점 |
고객과 협업하고 빠른 개발수행 -> 고객과 협업 |
프로세스상에서 낭비 제거 -> 전적으로 고객관점 |
공통점 |
- 요구사항 변화 적극적 수용 - 고객에 빠르게 인도하여 고객 가치와 만족도 높임 |
참고자료
https://www.slideshare.net/ssuserff7918/lean-software-development-49035117
'정보처리기술사 > 소프트웨어공학' 카테고리의 다른 글
SW 테스트(Test) (0) | 2019.12.26 |
---|---|
OOP를 더욱 빛나게 해주는, AOP (0) | 2019.01.10 |
비즈니스 요구에 빠른 대응의 가능한, XP(eXtreme Programming) (0) | 2019.01.02 |
Sprint를 활용한 대표적인 Agile 방법론, 스크럼(SCRUM) (0) | 2019.01.01 |
IT 서비스관리 국제표준, ISO/IEC 20000 (0) | 2018.03.28 |