Internationale Entwickler-Teams

Ein kompetentes und starkes Team zu “erstellen” war schon lange vor dem Internet eine nicht ganz einfache Aufgabe, da Menschen nicht automatisch miteinander klar kommen oder die Kompetenzen einfach nicht harmonieren. Doch inzwischen ist dies eindeutig einfacher geworden. Durch das Internet können Entwickler für ein System über die ganze Welt verteilt sitzen und Aufgaben erledigen, ohne dass es zu Problemen bei der Kommunikation kommen muss.

 

Kommunikation

Während der Entwicklung müssen diverse Dinge abgestimmt, Aufgaben verteilt und erledigte Aufgaben begutachtet werden. Wenn alle Entwickler in einem Büro sitzen kann hier der Teamleiter schnell von Schreibtisch zu Schreibtisch gehen, mit den Personen sprechen und sich vom internen Teamserver den Quelltext ansehen.

Kommen wir zur Alternative im Internet:
Chat-Programme (insbesondere Software mit VoIP-Funktionalität wie Skype) machen die Kommunikation sehr einfach und halten die Kosten sehr gering – es wird lediglich eine entsprechend starke Internetanbindung benötigt.

Als Sprache fungiert, falls nicht alle Entwickler die selbe Muttersprache haben, meist Englisch, da diese Sprache von eigentlich jedem beherrscht wird. Sollten dann doch einmal ein paar Wörter fehlen reicht meist auch Google Translate oder andere online Übersetzer. So auch mit den Spezifikationen, welche ich von meinem Kunden logischerweise auf Deutsch erhalten habe. Das wichtigste wird schnell von mir übersetzt, einzelne Unterpunkte welche Optionen im System darstellen sollen kann das entsprechende Teammitglied falls benötigt schnell selbst übersetzen.

 

Code Versionierung

Um den Quelltext einfach verwalten zu können setze ich entweder auf git oder SVN, wobei ich serverseitig eigentlich zu SVN tendiere. Wer git bevorzugt kann hier gerne git-svn nutzen. Diese Art der Quelltext-Versionierung macht es den Entwicklern einfach ihren neuen Quelltext einzufügen, alle anderen Entwickler jedoch problemlos auch weiter arbeiten können. Sollte es zu überschneidungen kommen ist das Zusammenfügen (“merge”) auch keine unüberwindbare Hürde.

Beliebt sind auch commit-Emails, welche an eine/mehrere Email-Adressen alle Änderungen (diff) senden, welche ein Entwickler zu welcher Zeit commited hat. So können schon durch Überfliegen Fehler schnell gefunden und behoben werden. Hier sollte jedoch darauf geachtet werden den entsprechenden Entwickler darauf anzusprechen, und nicht einfach etwas zu ändern. Das ist 1. einfach höflicher, und 2. kann so schnell ein Konflikt im Quelltext entstehen, welcher erst wieder gemerged werden muss.

 

Entwicklungsumgebung

Jeder Entwickler hat die Möglichkeit/Freiheit seine Entwicklungsumgebung nach seinen Wünschen zu gestalten. Während ich bspw. Linux bevorzuge entwickeln viele meiner bisherigen Teammitglieder unter Windows. Hier sind gerade durch die Versionierung (siehe:  Code Versionierung) keine Grenzen gesetzt. So hat jeder Entwickler auch seinen eigenen Webserver etc. laufen, und kann diesen nach seinen Wünschen konfigurieren und die Software entsprechend testen.

 

Globaler Testserver

Damit jeder immer eine aktuelle Version der Software zum ansehen hat setze ich grundsätzlich einen Server auf, welcher mehrmals täglich das SVN Repository läd und so die Testseite aktuell hält. Hier wird eine globale Live-Konfiguration aufgesetzt, welche dem Entwickler zeigen soll wie es nach dem deployment aussehen wird. Auf diesem Server existiert meist auch das SVN Repository und ein Ticket System, wobei ich auch öfter einmal zu BaseCamp greife. BaseCamp ist eine meiner Meinung nach geniale SaaS-Anwendung – einfach aber dennoch sehr effektiv. Aus dem Quelltext von BaseCamp entstand unter anderem auch das Framework Ruby on Rails.

 

Kundenkontakt

Kunden, welche nicht nebenbei zufällig auch professionelle Entwickler sind, geben bei den Anforderungen gerne mal genau die Informationen, womit Entwickler nicht sofort viel anfangen können. Hier kann die Sprache natürlich auch einmal zum Problem werden, da Kunden nicht unbedingt in einer nicht-Muttersprache von Fragen gelöchert zu werden, über welche diese so nicht nachgedacht haben. Daher fungiere ich gerne als Mittelglied zwischen Kunde und Team. Ich sammle die Fragen der Entwickler, passe diese so an, dass der Kunde effektiv darauf antworten kann, und gebe die Antwort Entwickler-gerecht wieder zurück.

 

Zusammenfassung

Auch wenn viele vielleicht erst einmal Angst vor einem internationalen Team haben spricht eindeutig nichts dagegen. Im Gegenteil, eher spricht mehreres dafür, so besteht unter anderem ein viel breiteres Spektrum an Kompetenzen und Menschen mit einem Fachgebiet können an der Software arbeiten, ohne deswegen umziehen zu müssen oder ähnliches.

Daher: Wer gerne einmal international arbeiten möchte sollte es ruhig versuchen, ich habe bis jetzt nur positive Erfahrungen machen können.

Quelle und Copyright Foto im Header: iStockPhoto


Einen Kommentar schreiben