Effizienz durch Konzentration auf Synergien und Kernkompetenzen

Heutzutage sehen sich Entwickler immer öfter auch mit betriebswirtschaftlichen Aspekten konfrontiert, die mit ihrer eigentlichen Aufgabe, der Programmierung und Entwicklung von Soft- und Hardware, kaum Berührungspunkte haben. Dennoch kann es kaum ein Entwickler vermeiden, sich damit befassen zu müssen. Der allgemein vorherrschende Druck, sowohl Kosten einzusparen als auch mehr Leistung zu erbringen, führt zu einer beständigen Suche nach sogenannten Optimierungspotenzialen.

Dabei müsste jedem denkenden Menschen klar sein, dass Leistungszuwächse und Einsparungen nicht endlos machbar sind – trotzdem dreht sich die Spirale munter weiter. Kreative Ideen sind in diesem Fall ein gutes Mittel, das Beste aus der Situation zu machen. Altbekannt ist dabei die Methode des Outsourcing, bei der bisher innerbetrieblich geleistete Aufgaben an einen spezialisierten externen Dienstleister übertragen werden. Ein vergleichsweise neuer Sektor ist hierbei das Profi Webhosting das beispielsweise dazu genutzt werden kann, um spezielle webbasierte Dienste auszulagern. Eine Sparte hiervon ist das Subversion Hosting, bei dem das bisher interne Repository der Versionsverwaltung zu einem externen Dienstleister ausgelagert wird.

Mit dieser Auslagerung lassen sich im Betrieb Kosten gleich für mehrere Kostenstellen einsparen, je nach betrieblicher Struktur gehen damit sogar noch Leistungssteigerungen einher. Das funktioniert wie folgt: Mit der Auslagerung der Versionsverwaltung werden Ressourcen frei, beispielsweise der Server, auf dem das Repository lag. Dessen Administration vereinfacht sich ebenfalls, wodurch mehr Zeit für andere administrative Aufgaben zur Verfügung steht. Wurde – wie in kleinen Betrieben durchaus üblich – der Server von einem Entwickler betreut, so kann dieser sich nun mehr seinen eigentlichen Aufgaben widmen. Zudem erhöht sich durch den Wegfall des Zugangs zum Repository von außen – sofern vorhanden – praktisch automatisch auch die Sicherheit des lokalen Netzwerks, da weniger laufende Dienste auch weniger Angriffsfläche für Attacken aus dem Internet bedeuten.

Integration von Subversion in Entwicklungsumgebungen

Bei den Entwicklungswerkzeugen ergeben sich durch die Umstellung kaum Änderungen – da Subversion auf Standardprotokolle aufsetzt, ist es für die Entwicklungsumgebung praktisch einerlei, ob das Repository im lokalen Netz liegt oder über das Internet zugänglich ist. Meist wird beim SVN Hosting gleich ein ganzes Paket nützlicher Werkzeuge als fertig konfiguriertes Toolkit angeboten, so dass neben der reinen Versionsverwaltung auch noch Bugtracker, Projektverwaltung und/oder andere Werkzeuge fertig integriert zur Verfügung stehen. Häufig anzutreffende Vertreter dieser Sparten sind beispielsweise Jira oder Bugzilla. Der Hoster kümmert sich dabei um alle Belange, die mit dem Betrieb der ausgelagerten Dienste zusammenhängen, so dass den Entwicklern stets ein kompetenter Ansprechpartner zu Verfügung steht, wenn Probleme auftreten oder Fragen zu klären sind. Üblicherweise lassen sich auch sehr umfangreiche Sonderwünsche problemlos umsetzen, was die Umstellung auf den externen Dienstleister so reibungslos wie möglich gestaltet.

Die Kombination aus anspruchsvoller Kundschaft und einer breiten Palette von Anbietern hat beim Subversion Hosting darüber hinaus auch dazu geführt, dass sich vor allem leistungsfähige und flexible Anbieter am Markt behaupten konnten. Kundenorientierung wird hier also groß geschrieben, ohne dabei wichtige Aspekte wie Ausfallsicherheit, Verfügbarkeit und Sicherheit zu vernachlässigen. Im Gegenteil – viele Unternehmen entscheiden sich regelmäßig aufgrund der guten Erfahrungen im Profi Webhosting dafür, auch die eigene Webpräsenz und andere internetgestützte Dienste dorthin zu verlagern.

Mit Subversion Hosting lassen sich Nebentätigkeiten bequem auslagern

Gerade in kleineren Firmen kommen auf den Entwickler über kurz oder lang Nebentätigkeiten zu, die nicht zu seinen eigentlichen Kernkompetenzen gehören. Dazu gehört häufig auch die Einführung einer verlässlichen Versionsverwaltung, mit der die Investitionen der Firma in Software-Entwicklung abgesichert werden sollen. Dies betrifft nicht nur den „einfachen“ Verlust durch normale Vorgänge wie Festplattendefekte, sondern auch weniger triviale Ereignisse wie Regressionsfehler, die erst spät entdeckt werden. Ohne die Möglichkeit der vergleichenden Analyse verschiedener Versionen der Quelltexte sind solche Fehler nur mühsam einzugrenzen. Die Versionsverwaltung ist also nicht nur eine passive Ablage sondern ein aktives Werkzeug zur effizienten Software-Entwicklung.

Die Einführung solch eines Systems ist also kein Selbstzweck sondern aktive Prävention des Unternehmens, ähnlich wie Backups oder Versicherungen. Dementsprechend sollte auch ein Budget dafür bereitgestellt werden. Der ordnungsgemäße Betrieb einer wie auch immer gearteten Versionsverwaltung ist dabei zwar überschaubar, bedingt aber dennoch einen, wenn auch geringen, laufenden Aufwand. Auf den sowieso in der Regel knappen Terminplan der eigenen Entwickler lassen sich diese Zeiten nur selten ohne Reibungsverluste aufschlagen.

Die logische Konsequenz ist daher die Auslagerung dieser Funktionen an einen spezialisierten Anbieter für Profi Webhosting. Dieser unterstützt das Unternehmen bei Einrichtung und Betrieb während gleichzeitig Kosten für eigenes Personal und Infrastruktur eingespart werden. Je nach individuellem Bedarf gibt es neben dem reinen Subversion Hosting auch Pakete mit mehr Leistungsumfang, beispielsweise mit einem direkt an Subversion angebundenen Bugtracker wie Bugzilla. Hier ergeben sich durch die Bündelung dieser externen Aspekte beim Hoster erhebliche Einspareffekte auf der einen und beträchtlicher Komfortzuwachs auf der anderen Seite.

Mehr Flexibilität für Heimarbeitsplätze

Beispielsweise können Entwickler, sofern der Betrieb dies erlaubt, auch reibungslos vom heimischen Arbeitsplatz aus auf alle notwendigen Daten zugreifen, dieser Zuwachs an Flexibilität kommt dem Betriebsklima und der Loyalität der Angestellten sehr zugute. Auch die Einbindung externer Fachkräfte gelingt so wesentlich einfacher, da diese nicht vor Ort sein müssen, um aktiv zur Entwicklung beizutragen, sondern alle wichtigen Arbeiten über das Internet erledigt werden können. Selbstverständlich bleibt dabei immer noch genug Raum für soziale Interaktion und die notwendigen Meetings zur Projektkoordination.

Da der Markt im Bereich Profi Webhosting zwar von gesunder Konkurrenz gezeichnet ist, aber nicht dem massiven Preisdruck im Standard-Hostingbereich unterliegt, kann der interessierte Kunde hier aus einer breiten Palette gut durchstrukturierter Angebote wählen, bei der es für jedes Anforderungsprofil eine Lösung gibt. Vielfach werden auf Kundenwunsch kleine Modifikationen oder Erweiterungen ebenfalls gerne durchgeführt. Unterm Strich ergibt sich dabei gegenüber einer reinen In-House-Lösung eine beträchtliche Kostenersparnis, die ein schlagendes Argument für die Auslagerung an einen externen Hoster ist.

Abgerundet wird das Paket durch die nahtlose Integration der Versionsverwaltung mit den gängigen Entwicklungswerkzeugen, beispielsweise gibt es kaum eine Entwicklungsumgebung, für die es keine Subversion-Anbindung gibt. Durch die Verzahnung mit Bugzilla oder ähnlichen Tools ergibt sich für den Nutzer eine erhebliche Zeiteinsparung, da viele manuelle Schritte wie beispielsweise der Abgleich von Repository und Bugtracker nun automatisch geschehen. Umfangreiche Protokoll- und Benachrichtigungsfunktionen des Paketes sorgen dabei für allseitige Information – jeder Entwickler, Produktmanager, etc. ist jederzeit auf dem aktuellen Stand der Entwicklung.

Entwicklungswerkzeuge entstehen oft aus konkreten Mangelsituationen

In der Softwareentwicklung ist es wie in vielen anderen Branchen in denen Sachen geplant, konstruiert und gebaut werden: Immer wieder entstehen Situationen, in denen ein bestimmtes Problem durch ein Werkzeug simpel gelöst werden könnte – nur leider gibt es dieses Werkzeug bis dato noch nicht. Der große Vorteil im Softwarebereich ist dabei, dass sich neue Programme in den meisten Fällen mit wesentlich weniger Aufwand erstellen lassen als beispielsweise die Werkzeuge von Chirurgen oder schwere Baumaschinen. Dadurch entwickelt sich Software auch wesentlich schneller als dies bei materiellen Werkzeugen der Fall ist. Diese Flüchtigkeit der Software ermöglicht auch eine fortlaufende Weiterentwicklung und Reifung, denn alle Anwender können in der Regel ohne großen Aufwand neue Versionen direkt einsetzen – bei Baumaschinen, deren Herstellungskosten schnell in die Millionen gehen, ist dies natürlich weitaus schwieriger.

Ähnlich wie in anderen Bereichen die sich mit der Lösung von Problemen beschäftigen, so ist auch im Bereich der Softwareentwicklung eine gute Dokumentation und Nachvollziehbarkeit das A und O. Im Idealfall sollte jederzeit ermittelbar sein, wer wann welche Änderungen vorgenommen hat. Im Bereich der Softwareentwicklung wird diese Aufgabe von einer sogenannten Versionsverwaltung übernommen. Diese verwaltet den Quelltext der zu einem Projekt gehört, und koordiniert alle Veränderungen daran. Dazu wird der Quelltext in ein sogenanntes Repository eingespielt, das von der Versionsverwaltung kontrolliert wird. Alle Zugriffe auf den Quelltext im Repository geschehen dann nur noch hierüber. Neben der Verwaltung werden auch Konzepte wie Benutzerrollen samt unterschiedlichen Zugriffsrechten, Benutzerauthentifizierung, etc. darüber umgesetzt.

Subversion im Internet

Eines der bekanntesten Werkzeuge in diesem Bereich ist Subversion, das sowohl als Modul für Webserver als auch als nativer Dienst verfügbar ist. Während letztere Umsetzung vor allem für lokale Netze interessant sein kann, ermöglicht die Einbindung in einen Webserver die flexible Zugänglichmachung der Repositorys über das Internet. Daher ist es kein Wunder, dass schnell die nächste Stufe der Entwicklung erreicht war: Spezialisierte Anbieter entstehen, die neben dem Subversion Hosting auch als Ansprechpartner in technischen Fragen jederzeit erreichbar sind.

Neben der Versionsverwaltung ist auch das Zusammenspiel – möglichst weit automatisiert – zwischen den einzelnen Werkzeugen immer ein Kriterium, das bei der Auswahl von Entwicklungsumgebung und weiteren Tools entscheidend sein kann. Zahlreiche Open-Source-Projekte und Drittanbieter offerieren diverse Lösungen für fast jede Kombination. Für Eclipse, eine weit verbreitete Plattform für Entwicklungsumgebungen, gibt es beispielsweise ein spezielles Plugin namens Subclipse, um Repositorys die mit Subversion verwaltet werden direkt anzubinden.

Damit wird das notwendige Handling (Check-Out, Bearbeitung, Check-In, Konfliktbehandlung, etc.) nahezu vollständig transparent in die Programmierung eingebettet und erweckt nicht mehr den Eindruck zusätzlicher Arbeitsschritte. Auch für die weiteren Aspekte der Softwareentwicklung, wie beispielsweise die Projektplanung oder das Bugmanagement gibt es Werkzeuge, die an die Entwicklungsumgebung angebunden werden können. Da auch hier webbasierte Tools auf dem Vormarsch sind, ist es kein Wunder, dass bei seriösen Anbietern von Profi Webhosting die Angebote nicht auf reines Subversion Hosting beschränkt sind, sondern im Gegenteil Subversion nur das namentlich gut bekannte Zugpferd für ein ganzes Werkzeugpaket ist.