News
Home / Optymalizacja produkcji / Od papieru do książki – czyli jak opisać skomplikowaną rzeczywistość firmy czytelnym grafem?

Od papieru do książki – czyli jak opisać skomplikowaną rzeczywistość firmy czytelnym grafem?

Jedną z podstawowych zalet informatyzacji firm jest możliwość zebrania danych z całości przedsiębiorstwa do jednej bazy oraz możliwość śledzenia zmian i późniejszej analizy. Samo zebranie danych to jednak dopiero połowa sukcesu – aby informacje były użyteczne i dawały możliwość analizy, muszą być zawarte w ramach określonych struktur. Najlepiej, aby ich przegląd nie wymagał przeklikiwania się przez kilkanaście ekranów i wiele odnośników. W tym artykule podejmiemy próbę zaprezentowania danych dotyczących realizacji zamówienia za pomocą jednego, wygodnego do wizualizacji i analizy grafu, wzbogaconego odpowiednio o informacje dotyczące sposobów spełniania poszczególnych części, a także dodatkowe dane takie jak czas i miejsca powiązane z procesami.

Zaczynając od prostego drzewka reprezentującego przepis i odpowiadającego na pytanie „Co jest potrzebne do produkcji produktu końcowego?”, będziemy stopniowo rozszerzać naszą strukturę o odpowiedzi na kolejne pytania:

  • Skąd zostaną pozyskane poszczególne składniki? Czy są dostępne na miejscu? Czy może trzeba je wyprodukować lub dostarczyć z zewnątrz?
  • W jakich procesach będzie brał udział dany surowiec lub półprodukt?
  • Kiedy będą potrzebne poszczególne składniki i jak czas procesów wpływa na czas realizacji całego zamówienia?
  • Gdzie będzie odbywało się przetwarzanie na poszczególnych etapach? Czy musimy transportować półprodukty w ramach fabryki?

Następnie zbadamy alternatywne możliwości spojrzenia na stworzony model, które pozwolą położyć nacisk na bardziej szczegółowe aspekty funkcjonowania przedsiębiorstwa i umożliwią głębszą analizę.

Skupiając się na rzeczywistych przedsiębiorstwach produkcyjnych, nie możemy zapominać o ich dynamice. Nasze grafy oraz odpowiedzi na powyższe pytania mogą, w związku z tym, ulegać zmianie.

Początkowa receptura

Zacznijmy od następujących założeń:

  • Klient zamawia produkt, załóżmy, że będzie to masowo produkowana Książka,
  • Do produkcji Książki potrzeba Wydrukowanych Stron i Okładki,
  • Wydrukowane Strony są produkowane z Tuszu oraz Arkuszy,
  • Arkusze są produkowane z Papieru.

Powyższe punkty to nic innego, jak proste receptury w formie „Do produkcji X wymagamy Y oraz Z”. Aby zwizualizować te wymagania, możemy połączyć te receptury w jedno drzewo, w którym pierwszym elementem będzie zamówiony Produkt, połączony ze swoimi bezpośrednimi zależnościami, a wszystkie pośrednie elementy będą połączone, z tym, do czego są potrzebne z jednej strony, i z tym czego same potrzebują z drugiej. W ten sposób najbardziej skrajne elementy (liście naszego drzewa) będą potrzebnymi surowcami.

Informacja o surowcach może być tutaj szczególnie pomocna. Jeśli przechowywalibyśmy zamówienia w formie takiej struktury, moglibyśmy już mieć dane o wszystkich surowcach potrzebnych do obecnie realizowanych zamówień.

Receptury mogą być dynamicznie odkrywane (możemy nawet rozpocząć druk, zanim będziemy znali parametry konkretnej potrzebnej Okładki) lub dynamicznie zmieniane. Gdy któryś ze składników nie jest dostępny, możemy porzucić dane poddrzewo i zastąpić je innym składnikiem lub całym poddrzewem symbolizującym proces produkcji półproduktu. Porzucone poddrzewa mogą być następnie zarządzane przez pracowników fabryki (np. jeśli jakiś półprodukt będzie wyprodukowany zbyt późno, aby był użyty do danego zamówienia, możemy wciąż kontynuować produkcję, aby zwiększyć jego bufor na potrzeby przyszłych zamówień).

Sposób spełnienia

Na tym etapie nasz model rzeczywiście odwzorowuje zależności, ale nie odwzorowuje jeszcze wszystkich standardowych procedur w firmie. Strategie spełnienia zapotrzebowań mogą się różnić pomiędzy przedsiębiorstwami i konkretnymi przypadkami:

  • W niektórych przypadkach możemy zastosować strategię utrzymania bezpiecznych buforów surowców w magazynie, co pozwala na natychmiastowe rozpoczęcie realizacji dowolnego Produktu (Książki),
  • Jeśli firma używa wielu różnych wyspecjalizowanych surowców, prawdopodobnie dużo bardziej ekonomicznie będzie każdorazowe zamówienie dedykowanego surowca po wpłynięciu zamówienia,
  • Co więcej, możemy potrzebować dokonania wyboru czy dany półprodukt chcielibyśmy wyprodukować u siebie, czy zdecydować się na jego zamówienie w innej firmie w zależności od obecnego obłożenia stanowisk.

Typowa firma prawdopodobnie będzie używać mieszanki powyższych strategii w zależności od branży oraz innych, bardziej specyficznych czynników. Niezależnie od wybranej strategii, chcielibyśmy móc reprezentować dowolne decyzje dotyczące spełnienia w ramach naszej struktury.

Dla wszystkich elementów w grafie, które nie są surowcami, zakładamy, że są one produkowane lokalnie (możemy również zlecać ich produkcję na zewnątrz). Surowce mogą być dostępne na miejscu lub zamówione u zewnętrznego dostawcy, więc na potrzeby przykładu załóżmy, że:

  • Książka jest dostępna w Miejscu 1,
  • Tusz jest dostępny w Miejscu 1,
  • Papier jest zamówiony u zewnętrznego dostawcy.

Sposób spełnienia poszczególnych części grafu może ulegać bardzo szybkim zmianom – przykładowo w przypadku, gdy bardziej pilne zamówienie zostanie anulowane, możemy zdecydować się na użycie zarezerwowanych dotychczas przez nie, dostępnych na miejscu zasobów, anulując jednocześnie zamówienie u dostawcy. W chwili obecnej wystarczy w takiej sytuacji zmienić oznaczenie danego elementu i ewentualne wykorzystanie odłączonej części grafu (np. już złożonego zamówienia u dostawcy) do przyszłego zwiększenia bufora lub do spełnienia innego zamówienia.

Reprezentacja procesów

Obecny sposób spełnienia możemy wskazać poprzez oznaczenie elementu grafu, więc możemy powiedzieć, że oznaczenie mówi, jak dane zapotrzebowanie jest spełnione. Ale wyobraźmy sobie sytuację, gdzie mamy pojedynczy element, niepowiązany z innymi elementami struktury krawędzią.

Obecnie znaczenie takiej sytuacji jest niejednoznaczne, ponieważ taki element:

  • może oznaczać produkt pewnego procesu, który nie ma żadnych wymagań i może spełniać wymaganie innego procesu,
  • może oznaczać zapotrzebowanie wynikające z zamówienia klienta, czekające na rozwinięcie.

Innymi słowy, pojedynczy element może być obecnie spełnieniem pochodzącym z procesu produkcyjnego lub zapotrzebowaniem pochodzącym z zamówienia klienta. Aby wyklarować taką sytuację, podzielimy nasze elementy w grafie na zapotrzebowania (przedmioty wymagane przez procesy) i spełnienia (przedmioty dostarczane przez procesy). Takie podzielenie da nam dodatkową korzyść – możliwość zaspokojenia pojedynczego, dużego zapotrzebowania wieloma mniejszymi spełnieniami lub wielu mniejszych zapotrzebowań za pomocą jednego dużego spełnienia (temat będzie rozwinięty w sekcji „Inne modele”). Dzięki takiej definicji mamy również możliwość przyporządkowania jednoznacznie pojedynczego elementu w grafie do procesu, więc:

  • przeglądanie grafu z perspektywy różnych oddziałów firmy będzie łatwiejsze – możemy np. łatwo sformułować zapytanie zwracające „każde zapotrzebowanie procesu produkcyjnego, które nie jest jeszcze powiązane ze spełnieniem”,
  • każde spełnienie będzie musiało mieć przyporządkowany proces – żaden element nie będzie mógł wziąć się „z powietrza”,
  • nie będzie możliwości stworzenia zapotrzebowania bez przyczyny, więc automatycznie, jeśli chcemy zużyć jakiś towar, zawsze musimy rozpocząć od pytania „gdzie i czemu jest on potrzebny?” – takie założenie jest podstawą systemów typu pull.

Podzielmy więc nasze elementy na dwa (zapotrzebowanie i spełnienie) i narysujmy jasne granice pomiędzy procesami w naszym przykładzie.

Rozróżnienie pomiędzy zapotrzebowaniem i spełnieniem pozwoli nam lepiej obsłużyć scenariusze anulowania i zmiany części grafu. W przypadku, gdy np. zapotrzebowanie wynikające z zamówienia zostanie anulowane, możemy zdecydować, co zrobić z powiązanym spełnieniem, które zostanie „oderwane” od zapotrzebowania, ale wciąż posiada precyzyjne informacje na temat operacji, które były planowane wcześniej.

Wymiar czasu

Posiadając elementy wyodrębnione w grupach przyporządkowanych do procesu, możemy podjąć się reprezentacji czynnika, który jest prawdopodobnie najbardziej istotną częścią rzeczywistości firm produkcyjnych – czasu. Chcielibyśmy zapisać i mieć dostęp do danych dotyczących czasu jako:

    • czas wystąpienia danego elementu – punkt w czasie (lub jego estymacja), w którym dany element będzie spełniony lub kiedy jest wymagany, te punkty będziemy mogli wyprowadzić z czasu trwania opisanego poniżej,
    • czas trwania w poszczególnych stanach – na największym poziomie szczegółowości możemy wyodrębnić dwa:
  • aktywny – gdy oczekujemy, aż proces się zakończy, czyli sumaryczny czas aktywny to czas trwania wszystkich procesów,
  • pasywny – gdy oczekujemy, aż proces się rozpocznie i zacznie przetwarzać swoje wymaganie, zatem ten czas to czas spędzony przed elementy w buforach.

Takie rozróżnienie całkiem dobrze wpisuje się w rozwijany model, gdy uwzględnimy granice pomiędzy procesami. Jeśli dana krawędź grafu przekracza „granicę procesów”, jest czasem pasywnym (przedmiot jest wymagany przez proces, który następuje po spełnieniu), jeśli znajduje się wewnątrz granic procesu, jest czasem aktywnym (proces wymaga swoich zależności, zanim się rozpocznie, a gdy się skończy – spełnienie, które z niego wynika, jest gotowe). Przypisanie czasu trwania do krawędzi grafu, pozwala m.in. na zsumowanie wszystkich ścieżek prowadzących do danego punktu, dzięki czemu jest możliwe łatwe porównanie efektywności planowania poszczególnych składowych tworzenia gotowego produktu. Gdy natomiast przypiszemy czasy spełnienia dla wszystkich surowców, możemy poprzez taką ewaluację ścieżek dokładnie oszacować, kiedy będziemy w stanie dostarczyć produkt gotowy.

Zwizualizujmy te dane na naszym przykładzie.

W naszym przykładzie czas trwania całości procesów może być narzucony przez dostępność surowców – jeśli są dostępne, prawdopodobnie mogą być przetwarzane od razu, jeśli są zamawiane na zewnątrz, będą w jakiś sposób opóźniać proces. Aczkolwiek w rzeczywistości główne opóźnienia są spowodowane przez czas trwania procesów lub ich opóźnienie np. z powodu pozycji danego zadania w kolejce.

Zarówno czasy trwania procesów oraz czasy oczekiwania mogą się dynamicznie zmieniać w zależności od:

  • pozycji zadań w kolejce (np. zgodnie z pozycją zadania produkcji w ramach kolejki zadań produkcyjnych), więc każda zmiana tej kolejki powoduje zmiany czasów,
  • nie możemy oczekiwać, że przewidywane czasy trwania procesów zawsze będą odpowiadały rzeczywistości – jedną z głównych odpowiedzialności systemu tego typu jest ciągła weryfikacja, czy czasy oczekiwania na zależności są zawsze dodatnie – w innym wypadku dostawa produktu może zostać opóźniona,
  • jeśli na bieżąco wykryjemy jakieś opóźnienie lub przyspieszenie procesu, taka zmiana powinna zostać rozpropagowana na cały graf.

Wymiar przestrzeni

Mając reprezentację czasu, możemy odpowiedzieć na pytanie, czy dany przedmiot będzie dostępny o określonym czasie, ale z jednym ograniczeniem – każde spełnienie zaspokaja powiązane zapotrzebowanie w momencie swojego spełnienia. Takie założenie może być problematyczne, gdy procesy odbywają się w różnych miejscach (np. przy oddalonych od siebie maszynach lub nawet w innych oddziałach firmy). Aby nasze obliczenia były miarodajne, konieczne jest reprezentowanie również transportów jako dodatkowego typu procesu.

Rozważmy następujące założenia na temat miejsc, w których dzieją się procesy:

Po umieszczeniu procesu transportu pomiędzy zapotrzebowaniami z miejscem innym niż powiązane spełnienie dostaniemy następującą reprezentację:

W ten sposób utworzyliśmy kompletny model procesów, które mogą wymagać wykonania jednych procesów oraz być spełnieniem wymagań dla innych. Procesy mogą być osadzone w czasie i przestrzeni, więc mamy możliwość wizualizacji konkretnego sposobu realizacji dowolnego zamówienia w ramach przedsiębiorstwa.

Inne spojrzenia

Na podstawie takiego modelu możemy opracować różne widoki, umożliwiające spojrzenie na rzeczywistość przedsiębiorstwa z różnych perspektyw.

Powiązanie zapotrzebowania ze spełnieniem inne niż 1-1

Grafy takie jak powyższe nie muszą dotyczyć jedynie spełnienia pojedynczych zamówień. Możemy rozszerzyć nasz model, aby było możliwe spełnienie wielu zapotrzebowań za pomocą jednego spełnienia (np. wyprodukowania produktu pod kilka zamówień za jednym razem) lub spełnienia jednego zapotrzebowania za pomocą wielu spełnień (możemy podzielić zamówienie, aby było produkowane w kilku częściach).

Elementy jako zdarzenia

Posiadając wszystkie historyczne i wszystkie zapotrzebowania oraz spełnienia możemy łatwo zareprezentować je jako wykres historycznych stanów magazynowych wraz z prognozą ich zmian. Każde zapotrzebowanie byłoby w takim układzie obniżeniem stanu magazynowego o daną ilość, a spełnienie jego zwiększeniem. Taki widok, po zgrupowaniu po typie przedmiotu, daje nam przydatne narzędzie przy podejmowaniu decyzji o priorytecie poszczególnych zamówień zewnętrznych lub przy analizie typów produktów, dla których przechowywane bufory są zbyt duże.

Przepływ pomiędzy miejscami

Biorąc pod uwagę obecność danych o całym transporcie wewnętrznym, możemy przelać je na inny rodzaj grafu, gdzie elementami w grafie będą miejsca w naszym przedsiębiorstwie. Taka wizualizacja daje możliwość identyfikacji ilości przetransportowanego towaru w określonym zakresie czasu. Dzięki czemu możemy świadomie lokalizować bufory poszczególnych towarów i zorganizować logistykę wewnętrzną tak, aby potrzebne transporty skracać lub nawet zredukować ich liczbę.

Podsumowanie

Nie wskazaliśmy żadnej konkretnej branży, ponieważ staraliśmy się, aby prezentowany powyżej model był tak uniwersalny, jak tylko jest to możliwe. Jeśli rozszerzylibyśmy procesy poza granice pojedynczego przedsiębiorstwa, bylibyśmy w stanie reprezentować i optymalizować procesy, które dzieją się pomiędzy przedsiębiorstwami na podobnych zasadach, uwzględniając różne ogniwa wysokopoziomowego łańcucha dostaw – zarówno firmy produkcyjne jak i np. firmy logistyczne.