CRN-Interview zur Software-Entwicklung: »Neugierde und ständiges Lernen«

Harpreet Singh, VP of Product Management bei Cloudbees, erklärt im Interview, welche Rolle Container und künstliche Intelligenz in der Software-Entwicklung spielen.

Harpreet Singh, VP of Product Management bei Cloudbees,
(Foto: Cloudbees)

CRN: Was sind aktuelle Trends in der Software-Entwicklung?

Harpreet Singh: Container, Kubernetes, Mikroservices und maschinelles Lernen sind die aktuellen Trends in der Software-Entwicklung. Die nächsten 3-5 Jahre werden von Folgendem geprägt sein: Container und ihr Ökosystem und maschinelles Lernen. Jede Web-Anwendung wird aus der Perspektive von Mikroservices betrachtet und in Container zerlegt, so dass man Anwendungen erstellen kann, die wirklich Cloud-nativ sind und von Anfang an skalierbar sind. Der zweite Schwerpunkt wird in der künstlichen Intelligenz und im maschinellen Lernen liegen. Problematische Domänen werden dann durch das maschinelle Lernen betrachtet, um zu sehen, ob die Algorithmen dabei helfen können, Probleme zu lösen, die bisher als schwer oder unlösbar galten.

CRN: Welche Rolle spielt Collaboration bei der Software-Entwicklung?

Singh: Verteilte Teams sind bereits jetzt schon Realität. Der Einsatz von Microservices wird das Kollaborations-Problem vermehren, da jedes Team ein paar Mikroservices besitzt, die wiederum mit Microservices von Teams auf der ganzen Welt zusammenarbeiten, um schlussendlich eine Anwendung zu liefern. Kollaboration wird Formen annehmen, die anders sind als heute, aber sich darauf konzentrieren, neue Erkenntnisse zu bringen, die verschiedene Teams verbinden, um die Symphonie zu orchestrieren: Sie haben hier einen Code berührt und ein Team in Indien wird in zwei Wochen davon betroffen sein.

CRN: Welche Skills muss ein Software-Entwickler heute mitbringen?

Singh: Neugierde und ständiges Lernen. Die Tech-Welt bewegt sich so schnell, dass Technologien, von denen wir vor 18 Monaten noch dachten, sie blieben beständig, jetzt nicht mehr relevant sind.

CRN: Sollten im Bildungsbereich die Weichen anders gestellt werden?

Singh: Der Schwerpunkt sollte auf der Teamarbeit und der gemeinsamen Umsetzung realer Projekte liegen. Ein 12-monatiger Anfängerkurs, bei dem die Studenten direkt vom Anfang der Entwicklung bis hin zu einer laufenden mobilen Anwendung alle Schritte selbst durchführen müssen, wird am Ende mehr erreichen, als bloße theoretische Aufgaben.

CRN: Sind Scrum und Kanban noch aktuell?

Singh: Definitiv, diese Ansätze sind noch aktuell. Ein Teil des Reizes dieser Methoden ist es, zu untersuchen, was funktioniert und was nicht. Teams können feststellen, dass es Aspekte der Methodik gibt, die absolut entscheidend sind, während andere weniger wichtig sind. Ich ermutige jeden, das auszuprobieren und dann selbst zu entscheiden.

CRN: Welchen Stellenwert nehmen APIs in der Software-Entwicklung ein?

Singh: APIs sind sehr wichtig. Sie geben Auskunft darüber, was API-Verbraucher von dem Softwareentwickler erwarten können. Dies wird extrem wichtig, wenn Anwendungen erfolgreich werden. Denn wenn das passiert, wird die Wartung zu einem Schlüsselproblem und APIs helfen definitiv, diese Probleme zu lösen.

CRN: Sind Open-Source-Komponenten zunehmend relevant für die Entwicklung neuer Software?

Singh: Die Frage ist, warum sollten Sie keine Open-Source-Komponenten verwenden. Ein Vorteil ist, dass es immer mehr Leute gibt, die Open-Source-Technologien verstehen und diese Fähigkeiten leicht übertragbar sind.

CRN: Muss ein Software-Entwickler heutzutage auf jeden Fall Javascript beherrschen?

Singh: Ja - von Enterprise-Web-Applikationen bis hin zu mobilen Apps gibt es sehr wenig, was man nicht tun kann, wenn man Javascript nicht kennt. Ich kenne Entwickler, die ihre Karriere durch ihr Wissen in Javascript zukunftssicher gemacht haben.

CRN: Bieten sich Container für das Testing von Software an?

Singh: Wenn man sich Wissen über das Thema Container aneignen möchte, eignet sich das Testen von Software in Containern auf jeden Fall dafür. Das Wichtigste, was man bedenken sollte, ist, dass Container helfen können, jeden Commit zu testen. Auch wenn das Testen von Software ein längerer Prozess ist, so wird der Einsatz von Containern ein erster wichtiger Schritt sein.