Zühlke – Empowering Ideas

VLTO
Insights

Sieben Tipps zur Bereicherung Deiner Softwareentwicklung

Wie fühlt es sich an, auf Projekten mit Großkunden zu arbeiten? Welche Rolle spielt die Sicherheit bei Projekten? Wie inspirierst Du Talente?

Hol Dir einen Kaffee, mach Dir entspannende Musik an, und begleite uns zur fünften Folge von The Hüb. Diesmal teilt Vladimir Tomić die wertvollen Erfahrungen, die er als Java Software Engineer bei Zühlke gesammelt hat.

Insight in brief

Herzlich willkommen auf dem Hüb – einem Ort, an dem Fachleute ihre Expertise und ihr Wissen weitergeben. Wir informieren über die Branche, gestalten deren Zukunft mit und halten Dich über wichtige Trends auf dem Laufenden.

Wie geht man an ein Projekt für einen Großkunden heran?

Anfangs hatte ich etwas Respekt davor, bei Zühlke für einen Großkunden zu arbeiten. Ich kam zuvor von einem anderen großen Unternehmen, wo mir die Prozesse und die allgemeine Organisation nicht immer gefallen haben. Aber dann wurde ich sehr positiv überrascht.

Die Anwendung, an der ich gearbeitet habe, besteht aus drei Teilen: einem für die Endanwender unseres Kunden, einem für die Mitarbeitenden des Kundensupports und einem für die Leute im Vertrieb. Die Teile sind separate Einheiten, die aber auch zusammenhängen. Wenn Du einen Teil im Griff hast, heißt das noch nicht unbedingt, dass Dir auch die anderen gut gelingen.

Vor allem haben mich die anderen Teammitglieder unterstützt. Das war für mich als Neuling sehr wichtig. Der Anfang war noch recht einfach, aber das System und die Anwendungen sind sehr komplex. Die Codezeilen gehen in die Millionen. 

Was mir am meisten geholfen hat, war die Organisation des Projekts selbst und im Team. Wenn jemand Neues zum Projekt kommt, gibt es immer ein Onboarding, auch wenn die Person schon länger im Unternehmen ist. Die Aufgaben verteilen sich dabei auf die Teammitglieder. Ich erkläre zum Beispiel die CI/CD-Pipeline, jemand anderes informiert über die Logistik und eine dritte Person zeigt das Frontend.

In den ersten Tagen gab es hierfür sogar einen genauen Stundenplan. Als ich anfing, hatte ich sogar ein Onboarding an unserem Standort in Zürich mit anderen Teams, die an dem Projekt arbeiten. Das war eine tolle Gelegenheit die Teammitglieder persönlich kennenzulernen. Dadurch war anschließend die Kommunikation viel einfacher. In Zeiten, in denen das Reisen nicht so einfach ist, investieren wir viel  Zeit in Remote-Onboarding, um möglichst die gleichen Ergebnisse zu erzielen. 

Und was auch noch gut ist: Die ersten Wochen sind dazu da, sich in den Job einzufinden. Man fängt mit einfacheren Aufgaben an und arbeitet anderen zu, bis man bereit für schwierigere Arbeit ist. So kann man das Projekt ziemlich frei von Druck kennenlernen. Diese Art der Arbeitsorganisation und der Umgang mit neuen Teammitgliedern waren für mich extrem hilfreich.

Wozu Pair Programming und Code Review?

Pair Programming ist eine hervorragende Methode, für die sich die meisten Unternehmen aber leider nicht die Zeit nehmen. Wir sind meistens voll ausgelastet und können es uns selten leisten, dass zwei Leute an derselben Sache arbeiten. Bei Neulingen ist das aber sehr sinnvoll, weil die Person dadurch schneller selbstständig werden kann.

Code Review ist ein absolutes Muss für die Codequalität. Bei der Fehlererkennung sehen vier Augen mehr als zwei, und das ist sehr wichtig für die Sicherheit und den Datenschutz. Code Review ist jetzt obligatorisch. Wir haben vor ein paar Jahren bei der Einführung neuer Technologien und der Organisation von Microservices in den Projekten systematisch damit begonnen. Wir lassen den Code Review auch immer von einer Person aus einem anderen Team durchführen, die dabei das Modul, an dem wir arbeiten, gleich ein bisschen kennenlernt. Das ist zusätzlich sinnvoll für den Fall, dass jemand das Projekt verlässt oder zwischen den Projektteams wechselt.

Wie können Microservices die Softwareentwicklung verbessern?

Früher war es so: Wenn man ein neues Projekt begann, war das eine Mammutaufgabe, bei der Stunden über Stunden für Feedbackschleifen draufgingen. Wir haben dann beschlossen, diesen Aufgabenberg in kleinere Teile zu zerlegen. Das hat die Entwicklung enorm beschleunigt. Und dann kam das letzte Jahr mit seinen neuen Herausforderungen und all den neuen Technologien, bei denen wir Microservices haben.

Die Entwicklung ist einfacher, weil alles logisch unterteilt ist. So kann ich jeden Teil der Anwendung leicht im Code finden, um ihn weiterzuentwickeln. Von den genannten Projektphasen ist das die beste. Aber es gibt auch noch was zu lernen. Es ist nämlich auch sinnvoll Methoden zu verwenden, die man leicht auf Google oder Stack Overflow findet. Das gab es früher nicht, denn die meisten Softwarelösungen oder Entwurfsmuster wurden intern entwickelt. So eine verbreitete Quelle mit einer großen Community macht jede Art von Problemlösung einfacher.

Was macht ein Security Champion?

Ein Security Champion ist eine Rolle, die vor etwa zwei Jahren mit dem Ziel geschaffen wurde, dem Thema Sicherheit in Projekten mehr Ressourcen und Aufmerksamkeit zu widmen. Seither hat jedes Team einen designierten Security Champion, der oder die für die Koordination mit dem Sicherheitsteam des Kunden zuständig ist. Ich fand das eine spannende Aufgabe und dachte, ich probiere es mal aus und lerne etwas Neues.

Ich wollte vor allem eine Herausforderung und die Chance, mich weiterzubilden. Vor über zwei Jahren habe ich also angefangen, an den Besprechungen der Security Community of Practice teilzunehmen und die Maßnahmenpunkte an ein Teammitglied zu delegieren. Ich war also eigentlich der Ansprechpartner und derjenige, der die richtige Person für die jeweilige Aufgabe findet. 

Der Security Champion hat bei diesem Projekt mehrere Aufgaben. Die erste ist ein großes Projekt, oder eigentlich ein Unterprojekt, das alle URL-Links in einer Anwendung schützt, an der wir arbeiten. Das heißt, wenn eine URL einen Namen, Nachnamen, eine Telefonnummer oder eine ID enthält, sind das sensible Daten, die im Prinzip missbraucht werden können. Unsere Aufgabe besteht darin, diese Links in eine ID zu kodieren, die keine relevanten Informationen preisgibt und die sensiblen Daten verbirgt. Daran arbeiten so um die zehn Teams ein ganzes Jahr lang – eine gewaltige Arbeitsleistung.

Zum anderen sichern wir alle Services und Endpunkte in der neuen Infrastruktur ab und definieren, welche Berechtigungen man für die Durchführung bestimmter Aktionen braucht. Das ist ein fortlaufender Prozess und wir sind permanent auf der Suche nach optimalen Lösungen.

Der letzte Schritt besteht darin, im gesamten Team ein hohes Sicherheitsbewusstsein aufrechtzuerhalten, wertvolle Informationen zu Sicherheitsthemen weiterzugeben und das Team über wichtige Dinge auf dem Laufenden zu halten. Natürlich muss der Security Champion in den Code-Review-Prozess einbezogen werden, wenn sensible Daten wie Telefonnummern und Adressen enthalten sind.

Was ist Solution Design?

Das Solution Design übernimmt eine Person, die mit dem Kunden kommuniziert und dessen Wünsche in eine Fachsprache übersetzt, die alle Teammitglieder verstehen und umsetzen können.

Nehmen wir an, ein Kunde wünscht sich eine bestimmte Funktionalität; er möchte Sachen von System A nach B, von B nach C migrieren. Dann setze ich mich als erstes mit dem Kunden zusammen, um sein Anliegen möglichst einfach und präzise zu formulieren. Dann analysiere ich den Ist-Zustand des Systems, des Codes und der Anwendung. Danach weiß ich, wie es funktioniert und welche Elemente geändert oder angepasst werden müssen. Ich strebe an, dass die anderen nach dem Lesen der Story sofort mit dem Programmieren beginnen können, weil sie eine klare Vorstellung von der Logik, den externen Systemen und der endgültigen Lösung haben. Ich hatte mal einen Kollegen im Solution Design, der hat seine Storys mit so einer phänomenalen Klarheit geschrieben, dass sogar Leute, die nicht selbst entwickeln, sie verstehen konnten. Er ist mein großes Vorbild.

Wie eignet man sich neben der Arbeit neues Wissen an?

Beim Thema Solution Design habe ich als erstes meinen Kolleginnen und Kollegen erzählt, dass mich das interessiert. Da habe ich so viele nützliche Ratschläge bekommen! Ansonsten ist es natürlich wie bei allen anderen neuen Arbeitsgebieten oder Kompetenzen – man muss Zeit investieren. Ich eigne mir bestimmte fachliche Fähigkeiten unabhängig von der Projektaufgabe an, um besser zu werden, um eine bestimmte Technologie besser zu verstehen und das Wissen an andere Teammitglieder weiterzugeben. Was Soft Skills angeht, finde ich aktives Zuhören und Fragen zu stellen am wichtigsten. Deshalb bestehe ich auch immer darauf, dass wir eine klare Liste der Anforderungen des Kunden und seiner Kriterien bekommen, damit wir Missverständnisse von vornherein ausschließen können.

Außerdem lerne ich neben der Arbeit Deutsch. Wir arbeiten für einen Kunden aus dem deutschsprachigen Raum, so bin ich mit der Sprache in Berührung gekommen und fand sie spannend. Mein Ziel ist es, die Sprache einmal auf Business-Niveau zu beherrschen.

Wie inspirierst Du andere, die sich für Dein Arbeitsgebiet interessieren?

Junge Talente zu inspirieren ist für mich tatsächlich eine Herzensangelegenheit. Ich finde, dass wir ein tolles Unternehmen sind, wenn es um zwischenmenschliche Beziehungen, das Arbeitsumfeld und die Unterstützung für unsere Mitarbeitenden geht. Ich schätze das sehr und möchte diese Werte während meiner Laufbahn stets an andere weitergeben können.

Meine ersten beiden Tage bei Zühlke waren ein bisschen emotional, denn das waren genau die Tage der Job Messe, die ich zuvor jahrelang organisiert hatte. Das erste Mal seit so vielen Jahren konnte ich nun nicht teilnehmen. Aber im nächsten Jahr konnte ich wieder dabei sein und all die Leute treffen, mit denen ich früher zusammengearbeitet hatte – und zwar als Vertreter für meine Firma! Nach zwei Tagen hatte ich keine Stimme mehr, weil ich mit so vielen Studierenden über unsere Projekte, unsere Technologien und die Vorteile bei uns gesprochen hatte. Das muss einen guten Eindruck gemacht haben, denn es gab mehrere, die nach dem Gespräch mit uns ein Bewerbungsgespräch bei uns hatten. Ein Bewerber hat sogar ausdrücklich gesagt, er habe sich beworben, weil ich ihm ein so positives Bild von unserer Firma vermittelt hätte. Es  macht mir viel Spaß, unser Unternehmen zu präsentieren und einen guten Eindruck bei Interessenten zu hinterlassen.

VLTO

Vladimir Tomic

Advanced Software Engineer
Ansprechpartner für Serbien

Vladimir Tomić ist Software Engineer und seit November 2016 bei Zühlke. Seit Februar 2017 arbeitet er an einem Projekt für einen großen Schweizer Kunden, wo er Gelegenheit hatte, die verschiedensten Aufgabenbereiche zu erfüllen – als Softwareentwickler, Security Champion, Solution Designer und weitere.
Seinen Feierabend verbringt er gern mit Fotografieren, Keyboard- und Schachspielen. Außerdem lernt er Deutsch und hat ein Faible für Kaffee und Schokolade.

+381 11 442 6700