3-D war gestern – Programmieren in der 4. Dimension
Kommentare

Länge, Breite und Höhe – das sind die drei Dimensionen, die wir zu berücksichtigen haben, sei es im Job oder in der Freizeit. Doch seit neustem streiten sich Wissenschaftler darüber, ob wir die Zeit

Länge, Breite und Höhe – das sind die drei Dimensionen, die wir zu berücksichtigen haben, sei es im Job oder in der Freizeit. Doch seit neustem streiten sich Wissenschaftler darüber, ob wir die Zeit nicht als vierte Dimension mit in unsere Überlegungen einbeziehen sollten. Immerhin spielt der Zeitfaktor in den meisten Prozessen eine nicht zu verachtende Rolle.

Der Meinung ist auch Udi Dahan (Particular Software), der in seiner Keynote „Programming in the 4th Dimension“ auf der BASTA! Spring 2014 darüber sprach, wie sich der Zeitkontext auf die Aufgaben eines Entwicklers auswirken kann. Dazu wählte er ein Beispiel:

In diesem Szenario geht es um Produkt, das von einem Kunden zu einem bestimmten Zeitpunkt erworben wird. Entschließt er sich innerhalb der ersten 30 Tage dazu, das Produkt wieder zurückzugeben, bekommt er den vollen Kaufpreis erstattet. Tut er dies erst innerhalb der nächsten 30 Tage, also bis zu 60 Tage nach dem Kaufdatum, bekommt er nur noch 50 Prozent des Kaufpreises zurück.

Stellen Sie sich nun vor, Sie sollten eine zu diesem Szenario passende Software entwickeln. Da liegt es nahe, vom Rückgabedatum auszugehen und die Software überprüfen zu lassen, wie viele Tage dieses in der Vergangenheit liegt. Was auf den ersten Blick recht einfach erscheint, kann in der Praxis aber zu einem bestimmten Zeitpunkt zu erheblichen Problemen führen. Nehmen wir mal an, dass sich der Anbieter des Produktes dazu entscheidet, das Rückgaberecht auf Werte von 20 bzw. 40 Tagen anzupassen: In den ersten 20 Tagen gibt es das volle Geld zurück, danach nur noch die Hälfte.

Implementieren Sie diese Forderung nun auf dieselbe Art wie die erste Variante, kommen Sie in ein Dilemma. Sagen wir mal, Ihre neue Software, also die mit der 20/40-Regelung, wird an einem Tag x ausgerollt. Nun gibt es natürlich Kunden, die ihr Produkt beispielsweise 30 Tage vor Tag x gekauft haben und es 20 Tage nach Tag x zurückgeben wollen. Sie gehen davon aus, dass das gar kein Problem darstellt, schließlich wurde ihnen beim Kauf eine Rückgabefrist von 60 Tagen versprochen und davon sind ja erst 50 verstrichen. Die von Ihnen geschriebene (neue) Software meldet zu diesem Zeitpunkt jedoch: 50 Tage sind vorbei, der Kaufpreis wird nicht mehr anteilig rückerstattet.

Um derartige Probleme zu vermeiden, sollten Sie gleich zu Beginn die richtige Perspektive einnehmen. Es gilt nämlich, eine Software zu schaffen, die auch dann noch funktioniert, wenn sich die Vorzeichen ändern. In unserem Fall wäre es besser gewesen, nicht von dem Rückgabedatum aus rückwärts, sondern von dem Kaufdatum aus vorwärts zu rechnen. Hierzu könnte eine Queueing-Technologie zum Einsatz kommen, die sich das Konzept der Deferred Messages zunutze macht. Eine derartige Nachricht könnte beispielsweise aussagen: „Vor 30 Tagen hast du mich angewiesen, dir heute zu sagen, dass der volle Kaufpreis rückerstattet wird.“ Nach 60 Tagen wäre es dann entsprechend nur noch der halbe Kaufpreis. Und ändern sich die Grundbedingungen, passt man einfach die Nachrichten an, die einem in Zukunft angezeigt werden sollen. Auf vergangene Käufe hat das keinen Einfluss mehr.

Was lernen wir nun aus diesem anschaulichen Beispiel? Erstens zeigt es uns, dass die zeitabhängige Entwicklung häufig nicht so einfach ist, wie sie vielleicht auf den ersten Blick daher kommt. Wir müssen jegliche Anwendungsszenarien und Vorzeichenwechsel berücksichtigen und dafür sorgen, dass unsere Software in jeder einzelnen Situation weiterhin stabil läuft. Zweitens zeigt dieses Beispiel aber auch, dass es keine allgemeingültigen Handlungsempfehlungen zum Programmieren in der vierten Dimension geben kann. Prüfen Sie Ihre individuelle Situation und entscheiden Sie erst dann über Ihre weitere Vorgehensweise.

Aufmacherbild: Infinity Time. Digital generated von Shutterstock / Urheberrecht: liseykina

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -