스케쥴링 시스템은 왜 실패해 왔는가 ? (2)


스케쥴링 시스템은 왜 실패해 왔는가 ? (2)



    스케쥴링 문제는 매우 어렵고 풀기 힘들다는 이야기를 들어 보신 일이 있으실 것입니다. 그러나, 스케쥴링은 생산 시스템의 효율적인 운영과 제어라는 책임을 지니고, 생산관리시스템의 여러 모듈중 최전선(?)에서 피눈물나는 전투를 치루고 있답니다. 거의 모든 제조 업체들은 나름대로의 스케쥴링 시스템 또는 스케쥴링 로직을 가지고 있지만, 스케쥴링에 관련된 업무를 담당하고 있는 사람들은 종종 불만을 토로하기도 합니다. 심지어는 전산화된 스케쥴링 시스템이 사장되고, 작업자 또는 관리자에 의해서 급한대로 주먹구구식으로 스케쥴링이 이루어지기도 합니다. 이렇게 스케쥴링 시스템의 전산화가 실패하는 이유를 하나씩 분석해보도록 하겠습니다.

    앞서 스케쥴링 시스템이 왜 실패해 왔는가를 "스케쥴링 시스템과 사람(human)간의 효율적인 인터페이스 결여"라는 측면에서 살펴보았습니다. 본 절에서는 스케쥴링 시스템과 생산계획 시스템의 관계에 관하여 다루어보도록 하겠습니다. 제조현장의 특성에 따라 차이는 있겠지만, 대부분의 스케쥴링 시스템은 주어진 생산계획이 실행될 수 있도록 구체적인 계획을 세우는 역할을 합니다. 쉽게 이야기하면, 어떤 제품을 몇 개 만드는데, 언제 시작해서 언제까지 끝낼 것인지를 결정하는 것이 생산계획입니다. 그리고, 제품을 만드는 데 필요한 공정별로 어떤 작업장의 어떤 기계에서 언제 작업을 시작해서, 언제 끝낼지를 구체적으로 계획하는 것이 스케쥴링이지요. 필요에 따라서는, 병목공정을 필요한 일부 공정에 국한하여 스케쥴링을 하기도 하지요. 

    그런데, 무엇이 문제냐고요? 

    생산계획은 스케쥴링보다 큰 문제를 다루고 있습니다. 예를 들어, 스케쥴링이 하루 또는 일주일치의 작업일정을 계획한다면, 생산계획은 몇 달, 분기, 몇 년치 이상의 작업을 계획하는 역할을 합니다. 큰 문제를 다루다 보니, 세세한 부분을 생략하기도 하겠지요. 앞서 생산계획(MRP 시스템이라고 보셔도 됩니다.)에 관해 설명드릴 때에, 생산계획의 단점을 몇 가지 언급한 일이 있는데요. 이 중 스케쥴링과 관련해서 2가지 정도를 들어보겠습니다. 

    • 생산능력제약이 고려되지 못한다.
    • 고정된 리드타임을 이용한다.


    생산능력제약이란, 이 기계는 한 번에 하나의 작업만을 할 수 있고, 하루에 8시간 이상 작업을 할 수 없다는 등의 제약입니다. 스케쥴링이 어렵다고 이야기하는 것은 바로 이와 같은 생산능력 제약 때문입니다. 그런데, 생산계획 단계에서는 이와 같은 제약이 정확히 반영되지 못합니다. 물론, 생산능력제약을 어떻게든 일부분만이라도 반영하기 위한 노력들이 있기는 하지만, 많이 부족하지요. 그리고, 고정된 리드타임에 관한 문제입니다. 리드타임을 정확하게 알고자 한다면, 모든 작업이 끝나야 하지요. 그런데, 생산계획을 세우려면 리드타임이 필요하지요. 결국, 과거의 데이터에 의존하거나 대충 찍어서(?) 리드타임을 결정해서, 생산계획에 이용하고 있지요. 결국, 리드타임은 생산능력제약을 반영하지 못하기 때문에 필요하고요, 생산능력제약을 반영하지 못하다 보니 리드타임이 필요하게 된 것이지요. 

    결국, 무엇이 문제일까요? 

    생산계획 단계에서 생산능력을 정확하게 고려하지 못하다 보니, 결과물인 생산계획이 기준생산능력을 넘어서는 일이 생깁니다. 즉, 죽어라 8시간씩 1주일을 일해도 생산계획을 달성하기 힘들다는 것이지요. 생산계획의 매개변수를 조정해서 생산계획량을 줄이는 것도 하나의 방법이 될 수는 있지만, 결과적으로 기계도 놀고, 작업자도 놀게 된다면 경영하는 사람은 배가 아프겠지요. 후자의 경우는 많지 않은 것 같고요, 결국 전자의 경우가 많다고 볼 수 있지요. 요즘같이 경쟁, 경쟁하는 세상에서 납기를 못 맞춘다거나 하면 얼마나 큰 손해를 입겠습니까? 그리고, 생산성, 생산성하는 세상에서 기계(작업자)가 노는 것은 도무지 봐주지 못하겠다고 한다면, 생산계획은 기준생산능력을 많이 넘어서게 됩니다. 

    음, 해결책이 없을까요? 

    제일 쉽게 떠올릴 수 있는 생각은 생산계획을 일정계획과 통합해 버리는 것입니다. 일정계획 수준에서 문제를 다루어 버리는 것이지요. 그렇지만, 스케쥴링은 지금도 문제를 풀기에 버거울 정도로 힘들어하고 있는데, 그렇게 큰 문제를 풀기는 곤란하지요. 그리고, 생산계획에서는 일정계획에서 다루어지지 못하고 있는 여러가지를 함께 고려하고 있기 때문에 결코 쉽지 않은 일지요. 물론 가능은 합니다. 다음 대안은 생산계획을 하고, 스케쥴링을 해 본 후에 정상적으로 일을 끝낼 수 있는가를 살펴보고, 불가능하다면 생산계획을 조정해주는 방법입니다. 몇 번이고 반복하다 보면 언젠가 좋은 계획을 세울 수 있겠지요. 좋은 방법인 것처럼 보여도, 잘 안 쓰입니다. 생산계획도 스케쥴링도 만만하지 않은 문제이기 때문에 시간도 꽤 오래 걸리거든요. 그래도, 통합보다는 현실적이지요. 

    생산계획 단계에서는 초과부하를 조정하는 여러가지 방법을 취할 수 있습니다. 예를 들어, 대체경로/대체기계, 초과근무, 외주 등을 이용하면 부하를 옮기거나 덜어내거나 할 수 있지요. 다음의 그림은 대체경로/대체기계, 초과근무, 외주 등을 이용하여 부하를 조정하는 방법을 개략적으로 보여주고 있습니다. 하단의 그림은 Load-Oriented Manufacturing Control (by Hans-Peter Wiendahl)에서 발췌했습니다. 

     

    간단히 설명드리면, 대체기계를 이용하는 방법은 부하를 공간적으로 이동시켜서 나누는 방법이고, 대체경로를 이용하는 방법은 부하를 시간적으로 이동시키는 방법입니다. 참고로, 대체경로를 이용한 방법은 대체기계를 이용한 방법을 포함한다고 볼 수 있습니다(나중에 설명하지요.). 그리고, 초과근무를 이용한 방법은 생산능력을 올려주는 방법이고요, 외주는 작업의 일부를 외부업체에 위탁함으로써 부하를 줄이는 방법이지요. 그리고, 위에서 언급하지는 않았지만 lot splitting 또는 lot streaming과 같은 방법도 사용될 수 있습니다. 

    그런데, 이와 같은 부하조정 과정은 아직 자동화되지 못했습니다. 결국, 사람이 자료를 열심히 쳐다보고, 필요하면 회의도 하고, 부하조정 방법을 결정하지요. 시뮬레이션 기능이니 뭐니 하는 것들이 있기는 하지만, 역시나 생산계획 단계에서 이와 같은 방법을 고려하는 데에는 한계가 있습니다. 앞서 설명드린 것처럼, 일정계획 수준에서 만큼 여러가지 제약을 고려하고 있지 못하거든요. 결국, 일정계획 수준에 내려오면 또 다시 불평 불만을 사게 되지요. 

    도무지 내 능력으로는 오늘까지 못 끝낼 일을 매일같이 시키는 상사를 보면 얼마나 미워보이겠습니까? 스케쥴링 시스템은 아래(현장)에서 치이고, 위(생산계획)에서 치이고 있는 셈이지요. 해결방법이라... 해결방법은 일단 생산계획 단계에서 가능한 feasible한 계획을 만들 수 있도록 지원해주는 시스템을 만드는 것도 하나의 방법이 되겠지요. 물론, 효율성을 갖춘 사용자 인터페이스도 필요하고요. 또 다른 해결방법은 생산계획과 일정계획의 중요한 부분만이라도 적절히 통합해 보는 것입니다. 예를 들어, FCS, APS 같은 시스템들은 이러한 역할을 해 줄 수 있습니다. 

    오랜 만에 다시 시작했더니, 저도 혼란스럽네요. 가능하면 재미있고 짧게 이야기를 전개하도록 하겠습니다. 

    본 페이지는 1999년 1월 22일에 작성되었습니다.