Bedenken bei Zusammenarbeit mit externen Entwicklern

In diesem Artikel möchte ich auf mögliche Bedenken bei der Zusammenarbeit mit externen Softwareentwicklern eingehen, die sich nicht in unmittelbarer Nähe zum Auftraggeber befinden und somit den Großteil ihrer Arbeit aus der Ferne, also remote erledigen.

Anlass für diesen Artikel ist die Frage eines Unternehmers in einer Online-Gruppe für Webentwicklung.

Sicherheitsbedenken und Kommunikationsprobleme

In einem kurzen Video erläutert er die Situation in etwa so:

Er stehe zurzeit vor dem Dilemma, zusätzliche Entwicklerressourcen für die Weiterentwicklung seiner Webshops zu gewinnen. Man arbeite schon mit lokalen Dienstleistern zusammen. Das Problem seien aber Sicherheitsbedenken seines fest angestellten Entwicklers, wenn es um weiter entfernte Entwicklungspartner geht. An einer Stelle im Video fragt er, wie eine Zusammenarbeit gestaltet werden könne, die sicherstellt, dass sie (Anm.: die Firma) nicht sabotiert werden würden. Ein großes Problem sei auch die Kommunikation mit Technikern. Zum Schluss bittet er daher Kommentare so zu formulieren, dass er sie als Nicht-Techniker auch verstehen könne.

Kommentare hauptsächlich technisch

Das Posting erhält gut ein Dutzend Kommentare überwiegend technischer Natur. Zwei Kommentare empfehlen den Einsatz einer Versionsverwaltung wie git. Ein anderes spricht das Verwenden einer Staging-Umgebung an, um Änderungen vorab zu testen, bevor sie in der Produktiv-Umgebung eingespielt werden.

Mein Kommentar

Auch wenn die genannten technischen Maßnahmen wichtig, und ich hoffe, auch schon im Einsatz sind, wollte ich auch meine Sicht der Dinge in einem längeren, hoffentlich auch für Nicht-Techniker verständlichen Kommentar äußern.

Diesen möchte ich hier in leicht abgeänderter Form wiedergeben:

Erstmal Daumen hoch das Ganze über Video zu machen.

Ich denke wir müssten noch besser verstehen, was du mit "Sicherheitsbedenken" und "... dass unsere Arbeit nicht von irgendjemand sabotiert wird" meinst.

Aus meiner Sicht gibt es dafür zwei Möglichkeiten:

  1. Ein externer Programmierer ist böse und sabotiert eure Websites bewusst.
  2. Ein externer Programmierer produziert ungewollt Schwachstellen im Code, sodass eure Websites von Hackern angegriffen werden können.

Ich tippe eher auf 2)

Wäre dies der Fall, sind die technischen Maßnahmen der Kollegen hier sicherlich hilfreich und ich gehe davon aus, dass Dinge wie eine Versionsverwaltung (Anm.: git) für den Programmcode bereits eingesetzt werden.

Was ihr aber als zusätzliche organisatorische Maßnahme machen könnt, sind Qualitätskontrollen (fachlicher Begriff sind Pull Requests, Code Reviews) durch den Chefentwickler bevor Änderungen externer Programmierer eingespielt werden. Das kannst du zum Beispiel mit der Qualitätskontrolle am Ende einer Autoproduktion vergleichen, oder, um in deiner ursprünglichen Branche zu bleiben, mit der Endkontrolle eines Küchenchefs bevor ein Teller raus an den Gast geht.

Die Suche und Auswahl externer Entwickler ähnelt natürlich sehr dem Personalsuche-Problem, wo man ja auch die Fähigkeiten und die Vertrauenswürdigkeit der Kandidaten beurteilen muss. Im konkreten Fall würde ich schauen, ob ein Kandidat schon Erfahrung mit ähnlichen Projekten hat, nämlich als externer Entwickler für weiter entfernte Kunden. Diese Arbeitsweise ist übrigens durchaus schon Usus in unserer Branche – "Remote" und Home Office wird schon seit Jahren auch ganz ohne Pandemie praktiziert. Für mich selber funktioniert das seit 2016 sehr gut.

Dass schon die örtliche Entfernung für sich Sicherheitsbedenken auslöst, hoffe ich nicht. Ganz im Gegenteil, dass ein externer Partner nicht vor Ort sein muss, ist eine Riesenchance für euch, die richtigen Partner zu finden. Denn ihr seid eben nicht auf euer Einzugsgebiet angewiesen. Wenn die Meinung vorherrscht, dass ein externer Entwickler "bei euch" sitzen muss, dann ist das ein Kulturproblem. Auch für diesen Fall gibt es Möglichkeiten wie beispielsweise klar abgegrenzte, kleine Erstprojekte um die nicht-örtliche Zusammenarbeit zu testen ohne gleich eine fixe Bindung einzugehen.

Möglichkeit 1) (Programmierer richtet sich selbst gegen Auftraggeber) ist sehr unwahrscheinlich und vermeidet man dadurch, indem man a) gut miteinander umgeht und b) die technischen Schranken (Berechtigungen etc.) schafft, dass ein Externer so wenig wie möglich anstellen kann. Örtliche Nähe schützt einen ja nicht davor sabotiert zu werden. Wenn man darüber nachdenkt, könnte sogar das Gegenteil der Fall sein.