낭비요소를 제거하는 개발방법론, 린(Lean)

    린 개발 방법론은 토요타 생산 시스템(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





    댓글

    Designed by JB FACTORY