ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 린 소프트웨어 개발론 적용
    Book Review 2022. 4. 5. 18:09

    로드맵

     

    1. 현재 위치에서 시작해라 : 어떻게 가치와 이윤을 창출할 것인가?

     

    2. 가장 큰 제약사항을 찾아라 : 가치와 이익을 창출하는 데 있어 능력을 제한하는 가장 큰 문제는 무엇인가?

     

    3. 가장 큰 위험을 내다보라 : 향후 오랜 기간동안 꾸준히 가치를 창출하고 이윤을 내는 데 있어 가장 큰 위협은 무엇인가?

     

    4. 문화를 평가해라 : 최일선 작업자와 동료를 깊이 존중하는 문화를 만들어라. 직원의 자부심을 빼앗는 요인을 제거해라.

     

    5. 훈련시켜라 : 작업 절차를 개선하기 위한 체계적인 접근법을 사용하여, 팀을 어떻게 이끌 것인지, 작업자들을 어떻게 가르칠 것인지, 어떻게 도울 것인지에 대하여 팀 리더와, 관리감독자, 관리자들을 훈련시켜라

     

    6. 가장 큰 문제를 해결해라 : 작업 팀에게 가장 큰 제약사항을 넘겨라. 다양하고 신속한 실험을 통해 결국에는 해결책을 찾게 될 것이다.

     

    7. 관행을 제거해라 : 제약사항을 제거하지 못하게 만드는 관행들을 노출시켜라. 그리고 이를 대체할 새로운 규칙을 정해라

     

    8. 평가해라 : 전체 주기 시간을 순환하면서 실제 수익이 발생하였는지, 실제로 고객 만족도가 개선되었는지 살펴보라.

     

    9. 실행해라 : 수행 결과에 의해 검증된 변화를 수용해라.

     

    10. 주기를 반복해라 : 가장 큰 문제를 해결하면 다른 것이 여러분의 가장 큰 문제가 될 것이다. 그 문제를 찾아 위의 주기를 반복해라.

     


    시도

     

    전체를 최적화해라

     

    1. 전체 가치흐름과 전체 제품에 걸쳐 린을 실행해라 :  고객으로부터 출발하여 고객에 이르기까지의 전체 가치흐름에 대해 책임을 지는 가치흐름  리더 혹은 리더십 팀을 임명해라. 소프트웨어뿐만 아니라 전제 제품에 초점을 맞춰라. 가치 흐름도를 작성하고 흐름을 저해하는 요소, 루프 또한 혼란, 그리고 흐름 상에서 필요할 때 가용하지 못하거나 필요한 결과를 전달할 능력이 없는 영역들에 집중해라. 문제가 된 공정을 수정하고, 시스템 능력의 결여된 부분을 보완하여 제공해라.

     

    2. 측정 방법을 재구성해라 : 가치흐름 안에서 지역적인 측정을 하게 될 가능성이 매우 높으며, 이러한 측정방법은 부분 최적화나 기능장애를 초래할 가능성도 높다. 지역적인 측정을 지양하고 대신 가치흐름 평가지표를 사용해라.

     

    3. 경계를 뛰어넘는 비용을 절감해라 : 가치흐름 내에 커다란 지연이 있다면 십중팔구 부서나 회사의 경계에서 발생한다. 실제로 비용이 얼마나 드는지 평가해라. 경계를 넘어 가치흐름을 빠르게 할 수 있는 방법이 있다면, 분명히 경계를 뛰어넘는 비용을 절감시킬 것이다.

     

     

    사람을 존중해라

     

    4. 팀 리더와 감독자를 훈련시켜라 : 프로세스 리더에게 초점을 맞추기보다는, 실무 팀 리더들을 훈련시키고, 지침과 권한을 제시하며, 자신의 분야에서 린 원칙을 실행할 수 있도록 충분한 시간을 제공해라

     

    5. 책임과 의사결정을 가능한 낮은 수준으로 옮겨라 : 린 이니셔티브는 가치를 창출하는 작업 팀에 의해 실행되어야 한다. 적절하게 훈련 받은 팀 리더와 감독자의 지시하에 작업 팀이 자신들만의 린 프로세스를 설계하도록 해라. 새로운 프로세스가 운영되기 위해 필요한 것들을 작업 팀이 요청하게 해라

     

    6. 업무에 대한 자부심을 육성해라 : 팀이 아닌 개인에 대한 보상, 조잡한 업무공간과 작업 실천법, 불가능한 납기일, 테스팅이나 리팩터링을 하기에는 부족한 시간, 강요된 프로세스, 틀에 박힌 작업 또는 기계적인 업무 등은 업무에 대한 관심과 자부심을 저해한다. 

     

     

    빨리 인도해라

     

    7. 작은 단위로 일해라 : 프로젝트 규모를 축소해라, 릴리스 사이클을 단축시켜라. 안정화라. 반복라. 모든 리스트와 대기열을 정리하고, 규모가 커지는 것을 적극적으로 제한

     

    8. 일의 양을 할 수 있는 만큼으로 제한해라 : 팀이 역량을 결정할 수 있도록 반복적인 리듬을 갖게 라. 검증된 속도에 기반하여 대기열에서 작업을 꺼내어 마무리하게 하되, 완벽하게 마무리되기 전에는 다른 작업을 시작하지 못하게 라. 대기열의 크기를 줄이고 대기열에 빈 공간이 생기기 전까지는 어떠한 일도 수락하지 말라

     

    9. 가동률이 아닌 주기 시간에 집중해라 : 자원의 활용/가동률에 대한 고민을 중단하고, 시장 출시까지의 시간 혹은 고객 응대시간 측정을 시작해라

     

     

    확정을 늦춰라

     

    10. 완벽한 명세서를 가지고 개발하는 것이 좋다는 생각을 버려라 : 동시개발 방법을 따른다는 것은 명세서를 개발과정 중에 도출하는 것을 허용한다는 의미이다. 동시 개발은 시간과 돈을 절약하고 최고의 결과를 만들어내며, 가장 최근 데이터에 기반하여 의사결정을 하도록 한다. 동시 개발이 좋다는 것을 알면서도, 왜 개발을 착수하기 전에 완벽한 명세서를 가지고 있어야 한다는 생각에 집착하는가? 만약 예산확보가 초기에 한꺼번에 이루어지기 때문이라면 예산확보를 점진적으로 해라. 고정 가격 계약방식 때문이라면 다른 계약 모델을 채택해라.

     

    11. 의존성을 깨뜨려라 : 의존성에 관한 걱정을 하기보다는 어떤 기능이든 순서에 상관 없이 추가할 수 있도록 종속성을 깨뜨릴 수 있는 가능한 모든 일을 해라. 분할 가능한 시스템 아키텍처는 기본이다. 종속성에 대해서는 가차 없이 의문을 제기하고 매우 인색하게 받아들여라 

     

    12. 옵션(선택가능성)을 유지해라 : 모든 돌이킬 수 없는 결정들에 대해서 다양한 옵션들을 개발하고, 마지막 결정의 순간까지 절대로 옵션을 없애지 말라. 민감한 설계 결정들은 트레이드오프 관계가 있다. 각각의 옵션들이 미치는 영향을 이해하기 위해 데이터를 수집하고 최선의 선택을 하기 위한 자신감을 확보하는데 충분히 투자해라. 모든 결정들에 대한 변화를 수용할 수 있는 코드를 작성하고, 코드를 간결하고 깔끔하게 유지해라. 수정하는 것을 망설이지 말라.

     

     

     

    지식을 창출해라

     

    13. 설계 구현 팀을 만들어라 : 시스템 아키텍처는 제품을 논리적인 모듈로 나눌 수 있어야 하며, 각 모듈은 가치흐름의 모든 단계 별 이익을 대변하는 다기능 팀 crossfunctional team에서 담당하게 한다. 각각의 팀에 약속을 이행하고, 투명성과 활발한 피드백을 유지할 수 있도록 보상과 적절한 리더십을 제공해라. 반드시 일찍 그리고 자주 이슈를 공유해라. 빨리 실패하고 지속적으로 학습하도록 팀을 독려해야 한다.

     

    14. 꾸준히 개선하는 문화를 유지해라 : 모든 팀과 모든 부서(직무)가 지속적으로 프로세스를 검토하고 개선하며, 주어진 가정들을 검증할 수 있을 것이란 기대를 갖고, 그 일들을 수행하기 위한 시간을 할애해라. 교차 팀과 교차 직무 이벤트를 열어 가치흐름에서의 편의사항과 제약사항을 식별하고, 그것들을 전반적으로 결과를 향상해 줄 실천법과 정책으로 대체해라.

     

    15. 문제해결 방법을 가르쳐라 : PDCA (Plan Do Check ACT) 사이클과 과학적 방법 혹은 이러한 종류의 문제 해결 방법을 가르쳐라. 팀이 가설을 수립하고, 신속하게 다양한 실험을 하고, 문서를 간결하게 작성하고, 확실한 변화를 일으킬 것을 기대해라.

     

     

    품질을 내재화해라

     

    16. 동기화해라 : 완료되지 않은 채 방치되는 일을 적극적으로 줄여나가라. 테스트를 먼저 작성해라. 가능한 테스트 코드를 일찍 작성해라, 결점을 목록에 올려놓지 마라. 결점이 감지되는 즉시 멈춰서 문제를 해결해라. 가능한 지속적이고 광범위하게 코드를 통합해라. 엄청나게 규모가 크고 복잡한 시스템을 통합하기 위해 중첩된 동기화 기법을 사용해라.

     

    17. 자동화해라 : 실수하는 것을 받아들이고 자동화를 통해  실수를 방지해라. 할 수 있는 모든 프로세스를 가능한 신속하게 자동화해라. 테스트, 빌드, 설치 및 일상적인 모든 일을 자동화하되, 사람들이 스스로 일을 더 잘할 수 있는 방법이 없는지 생각해 내도록 도와줘라.

     

    18. 리팩터링해라 : 리팩터링 복잡도를 최소화하기 위해 코드 베이스를 간결하고 깔끔하게 유지해라. 그러면 작은 중복도 드러난다. 코드, 테스트, 그리고 문서를 리팩터링 하여 리팩터링 복잡도를 최소화시켜라.

     

     

    낭비를 제거해라

     

    19. 시장과 기술의 리더십을 제공해라 : 고객이 가치를 두는 것이 무엇인지 그리고 이와 관련하여 기술이 제공할 수 있는 것이 무엇인지를 깊이 이해해야 하는 명백한 책임이 있다는 것을 확실히 해라. 팀이 올바른 제품을 만들게 해라.

     

    20. 오로지 가치만 창출해라 : 가능하다면 모든 프로세스의 모든 단계가 가치를 창출하는 활동이나, 내부에 가치를 전달하려는 역량을 향상하는데 초점을 맞추어야 한다. 프로세스 주기 효율을 측정하고 지속적으로 개선해라.

     

    21. 코드를 더 적게 짜라 : 가치를 제공하는데 반드시 필요한 것들로만 시스템의 기능을 적극 제한해라. 복잡한 것을 용인하지 않는 조직 문화를 만들어라.

     

     

     

     

     

     

     

    'Book Review' 카테고리의 다른 글

    cs opensource book  (0) 2022.09.16
    모두의 네트워크 Lesson 정리  (0) 2021.05.30
    파이썬 코딩의 기술 (브렛 슬라킨)  (0) 2021.05.29
    해커와 화가 (폴 그레이엄)  (0) 2021.05.29
Designed by Tistory.