TechLead-Story: Alexander Rosemann, CTO & Co-Founder bei kpibench

TechLead-Story: Alexander Rosemann, CTO & Co-Founder bei kpibench

tech-stories TechLeadStory

Team

Wie groß ist das Dev/IT-Team? Wie setzt sich das Team, in Funktionen aufgeteilt, zusammen?

Wir sind ein kleines Team bestehend aus drei Entwicklern. Wir sind alle drei technologisch breit aufgestellt, jeder hat jedoch seine individuelle Spezialisierung. Zum Beispiel kümmert sich eine Person hauptsächlich um das Front End, eine andere hauptsächlich um das Back End. Es gibt auch punktuelle Spezialthemen, die uns von Zeit zu Zeit beschäftigen. Sehr gutes Beispiel ist dafür Hardware zur Erfassung von Maschinendaten und die reibungslose Integration in bestehende Produktionsanlagen. Da sind zum Beispiel auch Erfahrungen mit elektrischen Werkzeugen wie Multimeter und Oszilloskop vorteilhaft. Im Grunde kann jeder kurzzeitig überall einspringen, hat aber seinen klaren Schwerpunkt.

Das bedeutet, dass jedes Teammitglied auch immer Einblicke in die Tätigkeitsfelder der anderen hat. Durch das breite Spektrum an Technologien von Elektronik und embedded Hardware bis hin zu Microservices und großen Datenbanken – Cassandra – ist sichergestellt, dass es zum einen nie langweilig wird und zum anderen jeder im Team die Möglichkeit hat, sich einem Thema vertiefend zu widmen.

Wie ist euer Team organisiert und aus welchem Grund habt ihr euch für eine bestimmte Organisation entschieden? Worin liegen die Vorteile, wo die Nachteile?

Bei einem kleinen Team wie uns ist die Hierarchie noch sehr flach und bürokratielos. Trotzdem planen wir unsere Aufgaben sorgfältig und committen uns in zweiwöchigen Sprints zur Umsetzung unserer Aufgaben.

Wir haben ursprünglich mit einem vereinfachten Kanban-Prozess begonnen und organisieren uns mittlerweile in einem Scrum-Ansatz. Diese Arbeitsweise passt ganz gut zu uns. Auch wenn wir kundenspezifische Entwicklungen umsetzen, lässt sich das gut im Scrum-Prozess abbilden und auch unseren Kunden gefällt die iterative Vorgehensweise.

Neben dem Entwicklungsprozess versuchen wir uns auch mit organisatorischen Themen intensiv auseinander zu setzen. Zum Beispiel haben wir mit Jahresanfang 2020 die 4-Tage-Woche eingeführt. Das bedeutet eine 36-Stunden Vollzeit-Woche von Montag bis Donnerstag. Bisher sind wir mit dem Ergebnis sehr zufrieden. Wir sind dadurch gezwungen effizienter zu planen und umzusetzen – was uns erfreulicherweise sehr gut gelingt. Dadurch haben wir aber einen spürbar erhöhten Fokus bei der Arbeit aber auch mehr Freizeit!

Was macht euer Team, im Vergleich zu anderen Teams, besonders?

Jeder einzelne im Team hat seine Wurzeln in der klassischen Web- und/oder Software-Entwicklung. Ergänzt um Ausbildungen im Bereich Elektronik oder Statistik haben wir bei einem kleinen Team Know-How, das sich sonst nur in weitaus größeren Teams wieder findet. Was uns gemeinsam fasziniert und antreibt ist es unser Wissen in der produzierenden Industrie sinnvoll zum Einsatz zu bringen. Cloud & SaaS steht in der Industrie noch ganz am Anfang und es macht Spaß hier in einer Vorreiterrolle zu sein.

Recruiting

Wie ist eure Abteilung in den Recruiting-Prozess integriert?

Aktuell geschieht der Recruiting-Prozess direkt in der Entwicklungsabteilung.

Es gibt keine Algorithmen-Tests und wir coden auch nicht mit Bewerbern auf Whiteboards. Wir sehen uns viel lieber die Projekte an, die ein Bewerber in der Vergangenheit gemacht hat. Gibt es ein öffentliches Code-Repo, werfen wir auch darauf gerne einen Blick.

Im Gespräch unterhalten wir uns über die ein oder andere technische Entscheidung, die getroffen wurde. Wir legen Wert darauf, dass neue Teammitglieder über Code sprechen können. Wichtig ist es, unterschiedliche Lösungsansätze aufzeigen und abwägen zu können, mit welchen Ansatz am zielführendsten die gewünschte Anforderung umzusetzen ist. Wenn dann dafür “Short-Cuts” in kauf genommen werden müssen, ist das vollkommen in Ordnung, sofern dem Bewerber die Nachteile bewusst sind.

Letztendlich möchten wir ein langfristig erfolgreiches Team aufbauen. Da spielt die menschliche Komponente eine ganz wichtige Rolle. Wenn Motivation und Chemie stimmen, dann steht Erfahrung nicht zwingend im Mittelpunkt.

Gibt es ein konkretes Prozedere für neue Kollegen? Wie werden diese integriert?

Wir versuchen unseren Integrationsprozess sehr schlank zu halten. Das allgemeine Onboarding – Kennenlernen, Arbeitsplatz, Hinweise zu Büro, usw. – ist an einem Vormittag erledigt. Sobald das Notebook gestartet wurde und die IDE installiert ist, wird gemeinsam an ersten konkreten Aufgaben gearbeitet. So lernt man schnell das Team und die Arbeitsweise kennen.

Neben der fachlichen Qualifikation, worauf legt ihr noch Wert, wenn ihr nach IT-Spezialisten für euer Team sucht?

Wir legen großen Wert auf Pragmatismus. Eine zügige Umsetzung und das Ausspielen in die Produktivumgebung schätzen wir um ein Vielfaches mehr, als ausgeklügelte Konzepte und bis ins letzte Detail perfekt umgesetzte Funktionen, die nie den Kunden erreichen.

Wir legen auch Wert darauf, dass unsere neuen Teammitglieder Technologien sehen als das, was sie sind: Werkzeuge. Auch wenn sich leidenschaftlich über Programmiersprachen, Konzepte und unterschiedliche Frameworks diskutieren lässt, schlussendlich sind es nur Hilfsmittel, die uns unterstützen unsere Vision oder Kundenanforderungen umzusetzen.

Technologien

Welchen technischen Herausforderungen seht ihr euch gegenüber?

Wir erfassen und transformieren Zeitreihen- und Eventdaten in großer Menge mit beschränkten physischen Ressourcen. Das alles in einer Architektur zu vereinen, die nicht unnötig komplex wird, ist eine unserer größten Herausforderungen.

Die Integration von Drittsystemen kann ebenfalls sehr individuelle Herausforderungen aufweisen. Kaum eine Kundenumgebung gleicht einer anderen. Hier Lösungen zu implementieren, die an den richtigen stellen abstrahieren um zukünftige Anbindungen zu vereinfachen, aber trotzdem gut wartbar bleiben, ist spannend und herausfordernd.

Mit der Anbindung von Datenerfassungshardware sind wir auch immer mit neuen Herausforderungen konfrontiert. Welche Sensoren sind verbaut? Wie sollen die Betriebselektriker die Datenlogger anschließen? Sind die Sensor-Signale kompatibel mit unseren Datenloggern? Das sind nur einige Fragen, die wir laufend zu beantworten versuchen. Unabhängig davon entwickelt sich das IoT-Umfeld technologisch kontinuierlich weiter. Da ist es ganz spannend die für uns relevanten Technologien herauszufiltern.

Mit welchen Technologien arbeitet ihr?

Wir haben ein bunt gemischtes Portfolio an Technologien im Einsatz.

Im Back End setzen wir hauptsächlich auf Technologien die auf der JVM aufsetzen. Frameworks wie Spring Boot oder vert.x kommen unter anderem zum Einsatz. Im Front End ist es aktuell eine Mischung aus PHP und jQuery bis hinzu Vue.js. Vereinzelt kommen auch Node.js Services zum Einsatz. Mit Python bauen wir Skripte um unsere Datenbestände zu warten. Für statistische Analysen haben wir bis jetzt meist R eingesetzt.

Grundsätzlich wählt das Team die Technologie, mit der es bereits gute Erfahrungen gesammelt hat und mit welcher gute Qualität in planbarer Zeit erzielbar ist. Wir leben bei unseren Entscheidungen oft auch mit bewusst abgesteckten Limitierungen. Zum Beispiel wurde beim Thema Front End auf Technologien gesetzt, die ihren Job bisher mehr als ausreichend erfüllt haben und die wir jetzt im nächsten Iterationsschritt bewusst ersetzen werden.

Wie hat sich die Technologie des Unternehmens seit der Gründung verändert?

Die Technologien haben sich im Back End auf die JVM verlagert und im Front End bewegen wir uns hin zu Vue.js. Die JVM bietet mit modernen Sprachen wie Kotlin oder Scala ausgesprochen produktive und elegante Werkzeuge um Probleme zu lösen. Die schier unüberschaubare Anzahl an zusätzlichen Bibliotheken macht die JVM nicht zuletzt zu einem der weitverbreitetsten und populärsten Technologie Stacks.

Im Front End sind wir dabei, Legacy-Codeteile ganz zu entfernen und investieren vermehrt in Vue.js.

Bei der Datenerfassung beschäftigen wir uns immer wieder mit neu verfügbaren HW-Komponenten. LoRaWAN war eines unseren letzten Themen.