Hack The Planet - Vernetze die Welt
Als Softwerker bei der {m-bs}
Donnerstag, der 7. Dezember 2017 8:17 Uhr Die Luft ist kalt, frisch aber trocken. Sie Sonne geht gerade auf und Olé sitzt seit 10 Minuten auf seinem Fahrrad.
Seit 2 Jahren fährt der 39-jährige Olé diese Strecke an vier Tagen der Woche. Entlang am Rhein nach Bornheim zur m-bs. Als Software-Entwickler für Schnittstellen zwischen unterschiedlichsten IT-Systemen beschäftigt er sich jeden Tag mit neuen Herausforderungen, um dem Kunden die bestmögliche Integrationslösung zu liefern.
Welche Herausforderungen werden heute auf ihn warten?
09:38 Uhr Olé implementiert für einen Anbieter eines ERP-Systems aktuell einen Webservice-Client für eine Verfügbarkeits- und Bestellschnittstelle eines Autoteile-Großhändlers. Bei den ersten Integrationstests ist ein Problem aufgekommen. Bestellungen werden nicht abgewiesen, wenn deren gefordertes Lieferdatum nicht erfüllbar ist. Mit dem Kunden und dem IT-Dienstleister des Großhändlers muss dies besprochen und entschieden werden. Er koordiniert kurzfristig eine Telefonkonferenz zwischen den Beteiligten, um das Problem umgehend zu thematisieren. Olé spricht sich für eine zusätzliche Verfügbarkeitsprüfung unmittelbar vor der Bestellung aus. Zwar bedeutet dies zusätzlichen Entwicklungsaufwand, aber er erhält die Zustimmung vom Kunden, diesen Weg der Umsetzung zu verfolgen.
10:22 Uhr Als Olé nach der Telko wieder in die Entwicklungsumgebung gewechselt ist unterbricht ihn ein Anruf eines Dienstleister von einem B2C-Shop. Bei Tests zur Umstellung einer Schnittstelle für Terminbuchungen gibt es technische Probleme. Olé ist diese Woche Erstkontakt für den 3rd-Level-Support. Bei ihm laufen Supportanfragen der Kunden als auch die Meldungen aus dem Monitoring auf. Erste Analyse ergibt, dass im Verhalten der von uns betreuten Middleware etwas nicht korrekt ist. Der Dienstleister wird von Olé darüber kurz informiert. Er fährt die Dev-Umgebung bei sich lokal mittels Docker-Compose hoch und kann den Fehler schnell reproduzieren. „Open Source ist etwas Feines“ kommt ihm in den Kopf, als er im Debugging in den Codezeilen des CXF-Frameworks ankommt und dort den Fehler entdeckt. Der Shop-Request erfolgt in SOAP v1.1 und der angebundene Terminbuchungsservice arbeitet mit SOAP v1.2. Bei der automatischen Konvertierung der Service-Response von SOAP v1.2 auf SOAP v1.1 wird zwar die Payload sauber konvertiert, aber der HTTP-Header Content-Type nicht angepasst. Eine Suche im Netz ergibt, dass bereits ein ungelöstes Bug-Ticket bei CXF geöffnet wurde – die perfekte Gelegenheit. Er löst das Problem als Workaround für das Kundenprojekt durch die Implementierung eines SoapInterceptor und für den CXF-Bugfix stellt er einen PullRequest in GitHub. Ein gutes Gefühl, wenn man seinen Beitrag leisten kann.
11:45 Uhr Die Zeit ist verflogen. Die Kollegen von Olé sammeln sich bereits am Taskboard, welches im Büro hängt. Jeder aktualisiert seine ausgedruckten Jira-Tickets und gibt dabei dem Rest ein kurzes Update, an welcher Story gerade gearbeitet wird, was er gelernt hat und ob Unterstützung benötigt wird. Als Olé an der Reihe ist berichtet er kurz von dem Problem mit der nicht abgewiesenen Bestellung und dem abgesprochenem Lösungsansatz. Darauf meldet sich Jan kurz zu Wort „Dieses Szenario gab es auch schon bei anderen Anbindungen, lass uns da nach dem Mittag mal kurz reinschauen.“ Aus 'nach dem Mittag' wird eine lebhafte Diskussion beim Mittagessen mit dem Resultat, dass Teile dieser fachlichen Logik in die Basisimplementierung für Bestellungen ausgelagert werden können.
12:55 Uhr Vom Mittagessen zurück und dem Kaffee in der Hand schauen sich Olé und Jan noch eben den Code der anderen Anbindungen an und identifizieren zwei, bei denen ebenfalls dieses Szenario abgebildet wurde. Sie diskutieren über einen schlanken sauberen Weg des Herauslösens. Olé macht sich ans Werk und erweitert die Basisklasse für Bestellungen. Er refaktorisiert die beiden Anbindungen auf die neue Basismethode und fährt seine lokale Entwicklungsumgebung mittels Docker hoch, welche mit den Artefakten aus dem lokalen Maven-Repo bestückt werden. Die Testfälle der vorhanden Anbindungen laufen weiterhin erfolgreich durch, sodass er sich an die Umsetzung für den neuen Großhändler macht.
15:21 Uhr Für den fachlichen Fehlerfall, dass die vorgelagerte Verfügbarkeitsprüfung zu einem Abweisen der Bestellung führt, schreibt Olé einen Eintrag ins Log. Beim Schreiben der Zeile Code denkt er sich „das fühlt sich nicht so wirklich gut an“. Er hält einen Moment Inne. „Die Nutzung eines Metriken-Framework wäre eine schöne Sache für solche Aspekte. Ich habe doch letztens im JavaSpektrum von einem Vertreter dieser Frameworks gelesen. Okay, das sprengt jetzt ad hoc den Rahmen, aber das schaue ich mir im nächsten BlueFriday mal in Ruhe an.“
18:08 Uhr Olé sitzt wieder im Sattel. In seinem Kopf läuft der heutige Tag vor dem geistigen Auge ab. Er blickt auf einen anstrengenden, fordernden, aber erfüllten Arbeitstag zurück.