DEV

2022-04-10 06:42

Lean 프로세스

1. Lean의 개요

1 - 1. 린(Lean)의 정의

  • 낭비의 제거를 통해 프로세스를 지속적으로 개선, 수행 속도를 높이고 소프트웨어의 품질을 향상시키는 기법 (단순 개발 프로세스가 아닌 경영 기법 혹은 사상)

1 - 2. 린(Lean)의 특징

  • 신속성
    • Lean은 낭비를 발견하고 제거함으로써 고객에게 가치를 빠르게 제공
  • 생산성 향상
    • 생산성 향상을 위해 Lean 원칙을 소프트웨어 개발에 적용
  • 결함 제거
    • 소프트웨어 개발에 있어 가장 큰 낭비는 결함
    • 결함 제거 개념이 Agile과 유사 (Agile보다 큰 개념)
    • 프로젝트 초기 고객과 많이 접촉하여 낭비 및 폐기를 줄이는 프로세스

2. Lean 개발 방법론

2 - 1. Lean 개발 방법론의 정의

  • TPS(Toyota Production System)를 재정립한 경영방법론인 린 시스템의 품질 기법을 소프트웨어 개발에 적용한 개발 방법론

2 - 2. Lean 개발 방법론의 특징

  • 품질기법 : 린 공학 품질 기법을 SW 개발 프로세스에 적용
  • 낭비요소제거 : 낭비요소 제거하고 7가지 개발원칙 준수

3. Lean의 개발 원칙 및 낭비 요소

3 - 1. 린의 개발 원칙

  • 낭비제거
    • 불필요한 코드/기능, 불분명한 요구사항 등 소프트웨어 가치에 영향이 없는 모든 것을 제거
  • 배움증폭
    • 프로세스 진행 중 참여자(기획자, 개발자, 사용자 등) 학습의 필요성 존재
  • 늦은결정
    • 주요문제에 대한 의사결정을 최대한 연기함으로써 요구사항 변경에 적극적으로 대응
  • 빠른인도
    • 결과물을 가능한 빨리 제공하는 것이 도움
    • 사용자측면 : 불확실성 감소, 개발자측면 : 결함발견의 기회
  • 팀에 권한위임
    • 팀원들의 동기부여 및 자기의사결정권으로 잠재력 극대화
  • 통합성구축
    • 개발 초기부터 지속적인 통합으로 품질 향상
    • 소규모 개발단계마다 오류 발견 및 수정
  • 전체최적화
    • 요구사항수집부터 S/W 배포까지 모든 프로세스 최적화

3 - 2. 린의 낭비 요소

  • 미완성 작업
    • 코드화 하지 않은 문서, 테스트하지 않은 코드 등
  • 여분기능
    • 필요하지 않은 기능을 추가
  • 재학습
    • 지식보유자가 개발에 참여하지 못해 해당 지식을 학습하는 활동
  • 이관
    • 업무 이관 시 상당량의 암묵지가 전수되지 못하는 경우
  • 작업전환
    • 작업수행 중 다른 작업으로 전환할 경우 집중력 분산 및 시간소모
  • 지연
    • 특정 인력이 가용한 상태가 될 때까지 기다림
  • 결함
    • 테스트에 결함 유입을 걸러주는 실수방지테스트 포함

4. 린과 애자일 방법론의 비교

  • 공통점
    • 요구 사항 변화를 빠르게 수용
    • 결과물을 사용자에게 빠르게 전달하여 고객가치와 만족도를 높임
  • 차이점
    • 애자일: 사용자와의 협업을 통해 빠른 개발을 수행 (사용자와 협업)
    • 린: 사용자 관점에서 전체 프로세스 상 낭비 제거 (전적으로 사용자 관점)

참고 자료

  1. https://itproda.tistory.com/90
  2. https://needjarvis.tistory.com/323