Der smarte Landwirt gehört nicht an den Schreibtisch

Raus aufs Feld mit der mobilen App 365FarmNet!
22.09.2022

365FarmNet macht Landwirtschaft digital.

Zusammen mit landwirtschaftlichen Betrieben arbeitet 365FarmNet an einer effizienten, nachhaltigen und zukunftsfähigen Landwirtschaft.
365FarmNet unterstützt alle Landwirte und Prozessteilnehmer bei der Optimierung ihres Betriebes – unabhängig von Betriebsart, Betriebsgröße oder Philosophie.

Was 365FarmNet von anderen Anbietern unterscheidet, ist die offene, herstellerunabhängige sowie funktional erweiterbare Plattform.
So können auf viele Anwendungen zugegriffen werden: vom Maschinenhersteller, Pflanzenschutz- und Düngemittelproduzenten, Zuchtunternehmen, Futtermittellieferanten bis hin zum Technikhersteller aus der Tierproduktion. Dies bedeutet eine effiziente digitale Abdeckung der meisten betrieblichen Prozesse.

Die Entwicklungsteams optimierten zusammen mit kreuzwerker die App, um Landwirten Geld, Zeit und Nerven zu sparen.

Der Kunde

365FarmNet ist eine mehrfach preisgekrönte Softwarelösung für landwirtschaftliche Betriebe. Mit ihr sparen Landwirte Zeit und Geld - ja, und auch Nerven - durch transparente Arbeitsprozesse.
So, wie 365FarmNet den Landwirten hilft, selbständig Arbeitsprozesse zu managen, hilft kreuzwerker den App-Entwickler:innen Ideen für noch kundenorientiertere Lösungen zu entwickeln und praktisch umzusetzen.
Nach der Entscheidung, die Architektur in einem rein ereignisgesteuerten Microservice-Ansatz für den 2.0-Relaunch der Online-Lösung umzugestalten, beschlossen die Entwickler:innen, die Arbeit an den existierenden mobilen Anwendungen einzustellen. Stattdessen sollte eine neue mobile Anwendung entwickelt werden - mit dem Ziel, eine gute Alternative zur traditionellen Web-Anwendung zur Verfügung zu haben. Eindeutiger Vorteil: Landwirte verbringen weniger Zeit im Büro vor dem Computer. Ein flexibles Arbeiten wird möglich, schon während sie auf ihren Feldern unterwegs oder anderweitig beschäftigt sind. Das sagt sich so einfach. Wie kam 365FarmNet zu einer gleichzeitig effektiven und effizienten Lösung? Und welche Hürden mussten genommen werden?

Die Herausforderung

In der Vergangenheit dauerte die Einführung neuer Funktionen oder Änderungen sehr lange. Ja klar, erstmal musste die App für iOS und Android angepasst werden. Darauf folgte das Warten auf den Genehmigungsprozess in den Stores und es gab keine Möglichkeit, sicherzustellen, dass die Apps wirklich aktualisiert wurden. Eine enge Kopplung zwischen den Anwendungen und der Web-Plattform zwang die App-Entwickler:innen dazu, sich ständig über Änderungen auf der Plattform zu informieren und diese für die App zu übernehmen. Die Benutzerakzeptanz? Weniger als erhofft.

Und jetzt kommen die kreuzwerker ins Spiel

Was tun? 365FarmNet holte kreuzwerker mit auf den Acker. Zusammen beschlossen sie, die Architektur neu zu denken und ein Backend-for-Frontend (BFF) einzuführen. Dieses reduziert die Abhängigkeit vom App-Team von anderen Teams. Es ermöglicht deutlich schnellere Änderungen, da es den Großteil der Business Logik enthält und der App-Code selbst nicht geändert werden muss. Weiterhin führt es zu höherer Konsistenz, da Mehrfachimplementierungen nicht nötig sind. Zu guter Letzt kann durch maßgeschneiderte Antworten zusätzlich der Datentransfer reduziert und damit die Usability erhöht werden.
Das Team für die mobilen Apps besteht aus Mobile- und Backend-Entwickler:innen. Mit den kreuzwerkern kam zusätzliche Entwicklungskraft dazu, die dabei half, ein auf Spring Boot und cloud-native Technologien basierendes skalierbares und resilientes BFF zu realisieren. Außerdem nicht zu unterschätzen: Der externe Blick auf das Projekt! Ein perfekter Augenöffner für alle, die schon lange im Projekt arbeiten.

Im Rahmen des 2.0-Relaunch wurde sich für eine ereignisgesteuerte Architektur und Kafka entschieden. Zum Einsatz kamen weiterhin das Avro Schema und die Confluent Schema Registry. Das Mobile-App Team nahm bei der Einführung eine Vorreiterfunktion ein, da ihr BFF so ziemlich alle Topics konsumieren musste und oft einer der ersten Konsumenten von neuen Topics war. Deshalb stellte das Team früh fest, dass es einige Missverständnisse darüber gab, welche Änderungen im Schema die Kompatibilitätsmodi zuließen. Also half kreuzwerker dabei, einen Proof-of-Concept durchzuführen, um die verschiedenen Modi zu testen und deren Auswirkungen zu verdeutlichen. Abschließend wurde gemeinsam der beste Modus festgelegt und so die Integration für weitere Teams vereinfacht.

Neue Lösungen ergeben neue Herausforderungen!

Nicht nur die Architektur, sondern auch die Organisationsstruktur wurde angepasst. Dies brachte neue Herausforderungen mit sich, was die Anpassung an die geschäftlichen Anforderungen und die Implementierung neuer Funktionen angeht. Im bisherigen monolithischen Ansatz wurden APIs oft maßgeschneidert auf genau ein Frontend und innerhalb eines Teams entwickelt. Dabei kann man leider auch leicht vergessen, dass andere API-Konsumenten andere Bedürfnisse haben könnten. Ein einfaches Beispiel dafür ist die Validierung. Während es einfach ist, die Client-Validierung im eigenen Team zu definieren, können andere Teams keine eigene Validierung hinzufügen. Also werden sie mit Fehlern konfrontiert, die nicht erkennbar sind.

Um die Kommunikation und Abstimmung zwischen den Teams zu verbessern, entstanden Communities of Practice für jedes notwendige Thema. 365FarmNet und die kreuzwerker arbeiten innerhalb der API-Richtlinien-Community of Practice zusammen, um die Fehlerdokumentation und -behandlung zu verbessern. So wurde eine simple und klare Fehlerdefinition für die API-Nutzung ermöglicht.

Der verstärkte Einsatz von Cloud-Technologien und containerisierten Microservices machte es nötig, auch die Testautomatisierung auf das nächste Level zu heben. kreuzwerker etablierte den Einsatz von Testcontainern im Mobile-App-Team und arbeitete im Rahmen der Qualitätssicherungs-Community of Practice an der Festlegung von Teststandards.
Um Testlaufzeiten in der neuen verteilten Architektur gering zu halten, führten die kreuzwerker Contract Testing mit Pact als einen komplett neuen Testansatz ein. Nach einigen Workshops und dem Bereitstellen einer Referenzimplementierung wurde es von allen Teams eingesetzt. kreuzwerker begleitete diesen Prozess selbstverständlich aufmerksam und stand kontinuierlich mit Rat und Tat zur Seite.

So geht’s weiter

Da das Mobile-App-Team in der Regel die erste Drittpartei war, die die APIs anderer Teams nutzte, half kreuzwerker bei der Etablierung neuer Meeting-Routinen, um eine regelmäßige Kommunikation über Teamgrenzen hinweg zu gewährleisten. So schärften die kreuzwerker das Bewusstsein für potenzielle Schmerzpunkte späterer Nutzer:innen.
Auch hier war es den kreuzwerkern wieder wichtig, zusammen mit dem Kunden Lösungen zu erarbeiten, die ihn befähigt, die App selbst weiterentwickeln zu können, in diesem Fall also das digitale Feld für die Landwirte zu bestellen. Landwirte haben damit eine mobile Lösung in der Hand, um unterwegs den Überblick zu behalten. 365FarmNet für 365 Tage klare Verhältnisse und smartes Arbeiten.