Allgemein

Auftragsmanagement. Ein System, das alles kann?

Das Geschäft der Mister Druck hat sich in den letzten Jahren stark verändert. Am Anfang produzierten wir 5 Aufträge pro Woche. 5 Aufträge, die in 15 Minuten vorbereitet wurden und dann Stunden oder sogar Tage lang auf den Maschinen produziert wurden. Ein und das selbe Format, immer wieder.

Inzwischen aber produzieren wir täglich bis zu 500 verschiedene Aufträge. Ab 1 Stück in 10x10cm und auf einer Vielzahl verschiedener Materialien – das heißt aber nicht, dass wir nicht auf Masse produzieren. Das Stichwort ist “Mass Customization”.

Ich stand also schnell vor der Herausforderung ein System zu schaffen, was mir dabei hilft den Überblick zu behalten. Das System sollte es auch schaffen trotz des starken Wachstums den Overhead gering zu halten. Von Anfang an wollte ich immer vermeiden jegliches Wachstum mit Manpower aufzufangen. So ist auch trotz ca. 30-fachem Umsatz die Druckvorstufe weiterhin nur mit einer Person besetzt. Und diese Person kann sich auch weiterhin parallel um Kundenanfragen, Sonderwünsche, Reklamationsbearbeitung etc. kümmern.

Am Anfang also die Frage: Was brauche ich? Was will ich?

mein persönliches Ziel: Ich als Person will entbehrlich sein.

Ich habe mit ca. 11 Jahren mein Schlagzeug verkauft, um mir damals meinen ersten Computer kaufen zu können. Tony Hawk Proskater 2 kam damals raus. Einige Monate später interessierte ich mich dann aber eher für Html, dann für PHP.
Mit der Herausforderung des Auftragsmanagement weckte ich also wieder in meine eingeschlafenen PHP Kenntnisse. Ich erzeugte innerhalb weniger Wochen ein simples Programm, das über die nächsten Monate immer wieder erweitert wurde – ok, für mich war es eine große Herausforderung. Es war eine Einspeisung von XML-Daten in eine Datenbank in einer Form, die es anschließend erlaubte nach Produkten und Lieferterminen zu filtern und Aufträge, die gemeinsam verarbeitet werden sollten zu bündeln. Etwas später kam dann die so genannte “Verpackungsübersicht”. Sie zeigte alle Aufträge für den heutigen Tag mit Vorschaubildern, berechnete den günstigsten/passendsten Versanddienstleister und erzeugte die Barcodes zur Ansteuerung unserer Verpackungsmaschine. Damit kamen wir bis Ende 2019 gut klar. Das Programm wurde nach und nach weiter entwickelt, war aber wenig strukturiert, was zu Redundanzen im Code führte. Die Anforderungen an die Software stiegen, so dass ich mich gegen eine Weiterentwicklung dieses Programms entschied. Das Fundament war nicht das richtige.

In Zukunft sollte das Programm viel mehr können. Es sollte selbst berechnen, welche Art von Karton in welcher Größe produziert wird um den Verschnitt möglichst gering zu halten. Boden-Deckel, Fefco 401 oder 201? Fefco 201 für ein 40cm schmales aber 250cm langes Produkt auf einer 2000mm breiten Wellpappe ist Verschwendung. Ein 150cm Breites Produkt in einem Fefco 401 lässt sich hingegen mit der Pappbreite nicht produzieren. Das Programm der Maschine war keine Hilfe. So gab es zwar die Auswahl aus unzähligen Designs und man konnte Länge, Breite und Höhe eingeben, aber wer kann sich im Kopf einen flachliegenden Karton vorstellen und berechnen um zu entscheiden welcher Karton verschnittmäßig der idealste ist? Es sollte auch Sammelverpackungen erzeuge – also Kartons in geeigneter Größe für zwei oder mehr Aufträge in verschiedenen Größen und Mengen und dabei berücksichtigen wie viel Hohlraum verfügbar sein muss für Kantenschutzelemente und es sollte entscheiden welche Kantenschutzelemente zu verwenden sind.

Für die Druckvorstufe sollte das Programm selbst das Nesting durchführen. Wir hatten dies zuvor über die RIP-Software laufen lassen. Hierfür mussten wir alle Druckdaten in einen Job laden, die Stückzahlen einstellen und haben dann angefangen zu verschachteln. Es gab eine Nestingfunktion, die aber wenig zufriedenstellende Ergebnisse ohne händische Nachbearbeitung bot. Das größte Manko war allerdings, dass das RIP nirgends festhielt, auf welchem Bogen er welches Produkt in welcher Menge platziert hat.
Mit unserer eigenen Lösung sind wir nun in der Lage zu sehen, auf welchen Bögen ein Auftrag verteilt ist.
Uninteressant denken Sie? Hiervon hängt so viel ab!

Ein Auftrag lässt sich nun vollständig tracken. Zu wie viel Prozent ist er fertig? Wann wurde welche Platte des Auftrages gedruckt? Wer hat ihn wann gedruckt? Wurde diese Platte in der Produktion teilweise oder ganz beschädigt? Denn wenn ja, lassen sich alle Teile der beschädigten Platte vollautomatisch im nächsten Job wieder mit einbinden. Kein Sammeln beschädigter Exemplare mehr. Kein mühseliges heraussuchen der Jobs für eine Nachproduktion. Der Mitarbeiter kriegt angezeigt, was sich auf dem Bogen befindet und klickt beim entsprechenden Bild auf “Fehler melden”.

Es gäbe noch so viel mehr, aber zurück zum Eigentlichen. Ich entschied also ein neues Fundament aufzubauen. Da ich nicht mehr nur auf Weblösungen beschränkt sein wollte, um im lokalen Bereich auch Endgeräte ensteuern zu können, schaute ich mich nach einer Alternativen zu PHP/MySQL um. Ich entschied mich für Python und dazu, es mir beizubringen.
Jetzt mag der Eine oder Andere die Hände über den Kopf zusammenschlagen und sich denken “Warum lernt er jetzt etwas Neues? Warum beauftragt er niemand Externes damit und konzentriert sich auf Wichtigeres?” Die Frage ist einfach zu beantworten: Weil ich es will.

Ich wäre alleine Tage damit zu Gange mir zu überlegen, was die Software können soll. Und dann noch einmal Tage es jemandem zu erklären und zu dokumentieren. Und dennoch würde ich ihn nach wenigen Stunden anrufen und sagen, dass ich es mir anders überlegt habe. Chaotisch? Schlechtes Projektmanagement? Vielleicht. Führt es zum Ziel? Ja.
Ich hätte bereits eine sechsstellige Summe in den Sand gesetzt bevor es eine erste Beta gegeben hätte. Das Unternehmen wächst und verändert sich alle paar Monate in der Form, dass erneut Anpassungen durchgeführt werden müssten. Da ich das Programmieren selbst erlernen wollte und somit einen Inneren Antrieb hatte, war die Entscheidung nicht schwierig, die zukünftige Software wieder selbst zu schreiben. 9 Monate nach meinem ersten Tutorial bei Udemy haben wir die Software eingeführt. Nach 10 Monaten und nach der Behebung einiger Bugs haben wir das alte System abgeschaltet.

Ich habe mir den Kurs von Jannis Seemann bei Udemy gekauft und kann es nur empfehlen. https://www.udemy.com/course/python-bootcamp/

Ich empfehle allerdings auch das ganze auf 2-fache Geschwindigkeit zu stellen – ein tolles Feature bei Udemy. Machen Sie dies allerdings alleine. Man findet Sie sonst komisch 😉

So, bevor hier das Tagesgeschäft losgeht will ich noch etwas am neuen Statistiktool herumbauen. Ich glaube MA1 war am Freitag 25% weniger produktiv als MA2. Nein nein, Spaß! Aaaaber ich könnte! 😉 Beim nächsten Mal stelle ich ein paar Features vor.