„Hallo Amigo! Ich will, dass du den Zweck der OOP verstehst. Also werde ich dir eine Geschichte erzählen.“

Es gab einmal eine kleine Firma, die Waren ins Weltall verschickte…

„Wie Galactic Rush?“

„Ja, wie Galactic Rush. Fünf Personen arbeiteten dort. Die erste kümmerte sich um die Finanzen, die zweite arbeitete im Lager, die dritte erledigte den Versand, die vierte war für die Werbung zuständig und die fünfte überwachte alles.“

Sie arbeiteten hart und wuchsen schnell. Das Unternehmen hatte einen guten Ruf und verdiente viel Geld. Jedes Jahr stieg die Zahl der Bestellungen und der CEO musste regelmäßig mehr Mitarbeiter einstellen. Ein paar für das Lager, ein paar für den Versand, eine weitere Kassiererin und eine Marketing-Expertin, um den Umsatz zu steigern.

Hier begannen die Probleme. Es gab mehr Mitarbeiter, und sie begannen, sich gegenseitig in die Quere zu kommen.

Die Marketing-Expertin gab das ganze Geld für eine neue Werbekampagne aus, so dass kein Geld mehr für die dringend zu versendenden Waren übrig blieb.

Das Lager hatte 10 Kisten mit brandneuen Hyperantrieben, die einmal im Monat versandt wurden. Ein Kurier flog mit einem Hyperantrieb los, wodurch sich die Bestellung eines anderen Kunden für 10 Hyperantriebe um einen weiteren Monat verzögerte. Der erste Kurier wusste einfach nicht von der anderen Bestellung, die vom zweiten Kurier erledigt wurde.

Der neue Assistent des CEOs schickte einen Kurier auf ein Schiff, um Waren zu kaufen, und alles andere wartete auf das nächste verfügbare Schiff. Es gab viele dringende Lieferungen, aber dieser Assistent kümmerte sich nur um die Einkäufe und versuchte, seine Arbeit gut zu machen. Je besser eine Person ihre Aufgaben erfüllte, desto mehr kam er dem Rest in die Quere.

Bei der Analyse der Situation stellte der CEO fest, dass wichtige Ressourcen wie Schiff, Bargeld und Waren nicht optimal, sondern nach dem Prinzip „Der erste mahlt zuerst“ ausgegeben wurden. Jeder konnte die Ressourcen für seine Arbeit in Anspruch nehmen und damit die Produktivität der übrigen Mitarbeiter und des gesamten Unternehmens gefährden.

Eine Lösung musste her. Der CEO beschloss, das monolithische Unternehmen in mehrere Abteilungen aufzuteilen. Er schuf eine Versandabteilung, eine Marketingabteilung, eine Einkaufsabteilung, eine Finanzabteilung und eine Lagerhaltungsabteilung. Jetzt konnte niemand einfach alles übernehmen. Der Leiter der Versandabteilung erhielt alle Versandinformationen und gab die Sendung an den Kurier aus, dessen Lieferung für das Unternehmen am rentabelsten war. Zudem ließ das Lager die Ware nicht einfach von den Kurieren mitnehmen. Sie kontrollierten den Vorgang. Die Finanzabteilung konnte kein Geld für das Marketing bereitstellen, wenn sie wusste, dass bald ein Kauf bevorstehen würde. Jede Abteilung hatte eine öffentliche Person: den Abteilungsleiter. Die interne Struktur jeder Abteilung war ihre eigene Sache. Wenn ein Kurier Waren mitnehmen wollte, ging er zum Lagerverwalter, nicht ins Lager. Wenn eine neue Bestellung eintraf, ging sie an den Leiter der Versandabteilung (öffentliche Person), nicht an den Kurier (private Person).

Mit anderen Worten: Der CEO fasste die Ressourcen und Tätigkeiten in Abteilungen zusammen und verbot anderen, in die internen Abteilungsstrukturen einzugreifen. Nur klar bestimmte Personen waren als Ansprechpartner definiert.

Mit Blick auf die OOP ist dies nichts anderes als die Aufteilung eines Programms in Objekte. Ein monolithisches Programm, bestehend aus Funktionen und Variablen, wird in ein aus Objekten bestehendes Programm umgewandelt. Und diese Objekte enthalten Variablen und Funktionen.

„Moment mal. Du sagst also, das Problem war, dass jeder Mitarbeiter uneingeschränkten Zugang zu den Ressourcen hatte und jedem anderen Mitarbeiter Weisungen erteilen konnte?“

„Ganz genau.“

„Interessant. Wir haben eine kleine Einschränkung eingeführt, aber wir haben mehr Bestellungen erhalten. Und alles konnte viel besser kontrolliert werden.“

„Ja. Teile und herrsche in seiner reinsten Form.“

„Wie du gesagt hast, teile und herrsche. Das sollte man immer im Hinterkopf behalten.“