agile, LSD, Movie/Books, Toyota

린 소프트웨어 개발의 적용

agile 에 대한 요구가 증폭되면서 Lean 생산 방식, TOC 등 제조 현장에 적용되던 생산 관리 시스템이 SW 개발에 한창 도입되고 있습니다. 그런 시도 중 하나로 이번에 Lean Software Development(이하 LSD)을 다룬 포펜딕 부부의 ‘린 소프트웨어 개발의 적용'(원제 : ‘Implementing Lean Software Development: From Concept to Cash’)이란 책이 심우곤님에 의해 번역 출간되었습니다. ( 물론 이 글은 역서 이벤트에 참여하기 위해 책 읽기 전에 작성하고 있는겁니다 ^^; )

책 소개와 상관 먼 얘기이지만 ‘Lean’ 이니 ‘토요타식 방법’이니 하는 얘기 나오니 오래전 현장 실습 기억이 나네요.

작업장에 배치되면 담당조의 조장 지시에 따라 작업 전,후에 정리, 정돈, 청소 등의 5S 활동을 하게 됩니다. 주간 단위로 작업 개선 제안서를 몇 건 씩인가 의무적으로 했어야 하구요. 간판 작성도 실제 해보고 …

오래된 기억이라 TPS 실천 활동의 실제 효과가 어떠했는지 기억이 나지는 않지만 수많은 제조 업체들이 TPS를 현장에 적용했으나 애초 기대 만큼의 성과를 얻은 곳은 그다지 많지 않았다는 건 확실하죠.

본론으로 돌아와 Lean 생산 방식에 대해서는 이미 꽤 많은 연구가 진행되어 왔고 Lean 생산 방식에서의 여러가지 실천 지침들이 Agile 방법론의 그것들과 상당한 유사성 가지고 있기에 – 당장 생각나는 것만 해도 가령 가능한 늦게 결정하기는 Big Design Up Front에 반대하는 XP의 설계 사상과 이어지고, 낭비 제거는 YAGNI(“You Ain’t Gonna Need It”)와 그 사상 직접 연결되고 간판(Kanban)은 정보 방열기(Information Radiator)와 같은 맥락이죠 등등 – 여러모로 이런 적용 시도는 강화될 것 같습니다 ( 마침 오늘 간판 관련한 재미있는 기사가 infoQ 에 올라왔네요 – ‘Visualizing Agile Projects using Kanban Boards‘ )

하지만 TPS 의 실천 활동 도입이 생산성 증대로 직접 이어지지 않았던 것과 마찬가지로 LSD 가 SW 개발 생산성 향상으로 필연적으로 이어질거라고 더 중요하게는 필연적으로 SW 개발자의 작업 환경을 개선시킬 것이라는 직접적인 기대를 해서는 안될 겁니다.

이벤트 참여하면서 굳이 이런 얘기 먼저 꺼내는 것은 LSD 의 가치를 부정하고자 함이 아니라 근래 agile 또는 pragmatic 을 전면에 내세우는 책들이 쏟아져 나오면서 자칫 실천 기법 중심으로 이런 것들 수용하고 있지는 않나하는 노파심과 Lean 생산 방식 관련한 옛 생각이 얽혀서 주절대본 것이니 행여라도 제 글 읽는 분은 그러려니 하고 가려 보시길 ^^;

아무튼 김창준님이 언급한 ‘강력함’과 ‘즐거움’이 어떻게 담겨 있는지 기대 안할 수 없는 책이네요. 책 읽고 서평으로 구체적인 LSD 평가 올리도록 하고 오늘은 그냥 전작인 ‘LSD – An Agile Toolkit’ 에 소개된 7 lean principles 과 22 knowledge tools 목록만 소개하도록 하겠습니다.

  1. Eliminate Waste.
    • Tool 1: Seeing Waste.
    • Tool 2: Value Stream Mapping
  2. Amplify Learning.
    • Tool 3: Feedback.
    • Tool 4: Iterations.
    • Tool 5: Synchronization.
    • Tool 6: Set Based Development
  3. Decide As Late As Possible.
    • Tool 7: Options Thinking.
    • Tool 8: The Last Responsible Moment.
    • Tool 9: Making Decisions
  4. Deliver As Fast As Possible.
    • Tool 10: Pull Systems.
    • Tool 11: Queuing Theory.
    • Tool 12: Cost of Delay
  5. Empower The Team.
    • Tool 13: Self-Determination.
    • Tool 14: Motivation.
    • Tool 15: Leadership (setting direction).
    • Tool 16: Expertise
  6. Build Integrity.
    • Tool 17: Perceived Integrity.
    • Tool 18: Conceptual integrity.
    • Tool 19: Refactoring.
    • Tool 20: Testing
  7. See The Whole.
    • Tool 21: Measurements.
    • Tool 22: Contracts

p.s : TPS 도입이 생산성 증대로 직접 이어지지 않았다는 것 보다 더 중요한 것은 이 기법들의 도입 과정에서 핵심 가치/철학들이 사상되면서 노동 통제의 강화, 더 나아가 최악의 경우가 ‘낭비 요인의 제거 -> 비용 절감 -> 인력 감축’ 이라는 껍데기만 남게된 경우였습니다. 이것이 ‘TPS 도입 -> 근로 조건 악화’ 라는 필연적인 귀결 같은 걸 얘기하고자 함은 아닙니다. 단일한 원인/실천이 단일한 결론으로 이어지는 경우는 거의 없습니다. 특히 시스템적인 문제에서는.
중요한 것은 어떤 실천 기법이든 그 자체로 독립적으로 봐서는 안되며 그것이 기반한 철학 또는 사회적 맥락과 함께 봐야 한다는 점이죠.
여담하나만 더 하자면 TPS 도입해서 ‘낭비 제거’ 한창 강조될 때 유행했던, 낭비 제거 운동의 최정점이었던 캠페인성 운동은 … ‘초관리 운동’ 이었습니다.

Advertisements

One thought on “린 소프트웨어 개발의 적용

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s