BYO

Wenn Entwickler ihre eigenen Tools mitbringen

Rich Manalang
©Shutterstock/Pixsooz

In den IT-Schmieden von Unternehmen in aller Welt zeichnet sich ein neuer Trend ab: Immer mehr Entwickler folgen der BYO-(„Bring Your Own“-)Bewegung und bringen ihre Entwicklungs- und SaaS-Tools selbst mit.

Dieser Trend ist verstärkt seit 2005 zu beobachten, als David Heinemeier Hansson (DHH) von 37signals mit seinem neuen Webframework „Ruby on Rails“ eine Open-Source-Revolution ins Rollen brachte. Damals war Java noch das Maß aller Dinge. Die meisten IT-Organisationen und ihre CIOs gaben sich damit zufrieden, mit Java und dem zugehörigen „Ecosystem“ zu arbeiten. Jedoch begannen immer mehr Entwickler, die sich an der Rails-Revolution orientierten, ihre Tools in Frage zu stellen. Rails brachte den Ruby-Entwicklern eine große Produktivitätssteigerung.

Twitter und viele andere Start-ups führten vor, dass sich eine neue Applikation mit Rails schnell und einfach realisieren ließ. Open-Source-Entwickler und junge Start-ups folgten bedingungslos diesem Beispiel und trieben die Revolution weiter voran. Bald entstanden neue Tools und Frameworks in verschiedenen Sprachen – u. a. Django für Python –, die den Anspruch erhoben, die Webentwicklung ebenso zu vereinfachen wie Ruby on Rails. Doch die Entwicklung hin zu einfacheren Tools hörte hier noch nicht auf. Aaron Swartz, hauptsächlich für sein Engagement für ein „freies“ Web bekannt, leistete einen wenig bekannten Beitrag zur „Python World“ in Form des web.py-Frameworks, eines Mikrowebframeworks, aus dem später Reddit hervorging. Bald darauf schuf Blake Mizerany, eine bekannte Größe in der Ruby-Welt, mit dem Produkt Sinatra ein noch einfacheres und minimalistischeres Webframework für Ruby.

Heute arbeiten Programmierer in aller Welt an Lösungen, um die Softwareentwicklung zu vereinfachen. Im Zuge dieser Revolution sind die Entwickler selbstbewusster geworden und in höherem Maße bereit, den Status quo zu ändern – sogar am Arbeitsplatz. Der Erfolg von Rails hat sogar einigen schon vorher existierenden Software-Engineering-Prinzipien – z. B. TDD, BDD, KISS, Pair Programming und Agile Software Development – zu neuem Glanz verholfen. All das war möglich, weil Rails diese Prinzipien unterstützte und den Entwicklern die Tools bereitstellte, um nach ihnen zu arbeiten.

Rails ist jedoch heute keineswegs zwangsläufig die richtige Lösung für die meisten Entwicklungsteams. Vielmehr war Rails eigentlich nur der Funke, der einen Flächenbrand entzündete und damit Wegbereiter zum heißesten Webentwicklungsmarkt aller Zeiten war. Heute steht Rails in einer Reihe mit zahlreichen anderen Webframeworks in verschiedenen Sprachen, welche die gleichen agilen Prinzipien unterstützen. Die Entwickler haben jetzt die freie Wahl unter einer Fülle von verfügbaren Tools und Frameworks.

Die meisten Innovationen bei Entwicklertools spielen sich heute öffentlich ab, und die Einführung neuer Tools und Frameworks wird offen im Web und nicht von Softwareunternehmen bekannt gegeben. Während Java nach wie vor eine große Rolle spielt, erfolgen die meisten Innovationen durch andere Sprachen und Frameworks, die auf der JVM laufen (z. B. Scala, JRuby, Clojure und viele andere). Wenn es jedoch um schnell wachsende Communitys geht, ist JavaScript derzeit das Lieblingskind des Webentwicklers. Der jüngste Erfolg von JavaScript ist der Einführung der V8 JavaScript Engine durch Google Chrome zu verdanken, wodurch Node.js entstand. Diese beliebte JavaScript-Server-Runtime hat ebenso schnell an Fahrt aufgenommen wie die Ruby-on-Rails-Revolution. Und gemäß der Stack-Overflow-Umfrage 2012 ist JavaScript bei den Entwicklern derzeit die bevorzugte Lösung.

Zurück zu BYO am Arbeitsplatz

Fortschritte bei Tools und Services für Entwickler tragen zu einer zunehmenden Verschiebung der Machtverhältnisse am Arbeitsplatz bei. CIOs und Führungskräfte richten sich mehr denn je nach den Wünschen der Entwickler. Auch die „Konsumerisierung“ der IT trägt zu dieser Verschiebung bei. Da die IT-Organisationen eine „À-la-carte“-Welt favorisieren, werden mehr Entwickler eingebunden und haben oft sogar das Sagen bei Entscheidungen über Einkäufe und Architekturen.

Bei Atlassian, einst vorrangig eine Java-Schmiede, unterstützen wir zunehmend eine diversifizierte und oft polyglotte Umgebung, in der es akzeptabel und sogar wünschenswert ist, die richtigen Tools und Services für eine bestimmte Aufgabe einzusetzen. Die meisten unserer Produkte nutzen heute nach wie vor Java, aber Produkte wie Bitbucket und HipChat wurden mit Django (Bitbucket) und Python Twisted (HipChat) entwickelt. Darüber hinaus sehen wir uns in dem wachsenden Markt der Sprachen um, die auf der JVM laufen, wie Scala und RingoJS. Die meisten unserer Kunden sind Softwareentwickler wie wir auch, und wir haben akzeptiert, dass die Entscheidungen unserer Kunden stark von Entwicklern beeinflusst werden, die starke und oft breit gefächerte Präferenzen hinsichtlich ihrer Tools haben.

Möchte man Entwickler zufrieden stellen, so ist es entscheidend, ihre Arbeitsbedingungen zu verbessern; die Möglichkeit, ihre eigenen Tools auszuwählen, gibt ihnen die Kontrolle über ihren Arbeitsbereich. Das hat natürlich zunächst den Anschein, als könnte es in Anarchie enden, wenn sich die Entwickler nicht auf Tools einigen können. Letztendlich zählt aber, dass die Softwareteams Software produzieren müssen, und die wichtigste Qualifikation der IT-Entwickler im Unternehmen ist ihre Fähigkeit zur effizienten Zusammenarbeit. Die heutigen „Rockstars“ unter den Entwicklern sind diejenigen, unter deren effizienter Leitung ein Team immer wieder hervorragende Produkte liefern kann.

Manche dieser Trends, die sich in Start-ups und Consumer-IT-Communitys bereits durchgesetzt haben, sind jedoch immer noch nicht durch die dicken Wände vieler Unternehmen und deren IT-Teams gedrungen. Für Entwickler in Unternehmen, in denen die Entwicklungsarbeit weiterhin nach dem Wasserfallprinzip erfolgt, heißt die Devise: Habt Geduld, aber versucht auch, in vielen kleinen Schritten einige dieser agilen Tools in euren Workflow einzubauen. Eine Strategie, die sich in vielen Organisationen bewährt hat, ist die Einführung neuer Sprachen oder Frameworks in kleineren Projekten. Beispielsweise könnte man Scripting- oder Shell-Tools, die wahrscheinlich einen geringeren Stellenwert innerhalb der Organisation haben, durch Ruby oder Ähnliches ersetzen. Hierdurch kann ein Team neue Tools beurteilen, die möglicherweise für eine konkrete Aufgabe besser geeignet sind, ohne größere oder unternehmenskritische Apps in Frage stellen zu müssen.

Sie glauben nicht an die Politik der kleinen Schritte? Bei Abschluss meines Studiums Mitte der 90er Jahre standen Yahoo! und Netscape gerade erst am Anfang – es war die Morgendämmerung des Internets. Ich arbeitete damals für eine IT-Organisation in einem mittelgroßen Unternehmen, in der wir noch Memos auf Papier erhielten und E-Mails sich noch „PROFS“ nannten (Teil des PRofessional OFfice Systems von IBM). Ich erinnere mich an ein Memo von unserem CTO, in dem er das Internet als vorübergehende Modeerscheinung bezeichnete. Wir können heute wohl mit Sicherheit sagen, dass dies nicht der Fall ist. Die Organisation war einfach nicht bereit für den Wandel. Auch die IT-Organisationen in Unternehmen werden zur richtigen Einsicht gelangen. Die Frage ist nicht, ob dies geschieht, sondern allein, wann.

Wie steht es mit der Cloud?

Entwicklertools sind nicht nur Sprachen und Frameworks, mit denen man Apps bauen kann – sie umfassen auch eine Fülle von Cloud-Services, die den Bedarf der Entwickler erfüllen: von Quellcode-Repository-Services wie Bitbucket und GitHub über Software-Collaboration-Tools wie JIRA and Confluence, Lower-Level-Services für Applikationen wie Firebase, Stackmob und Parse sowie eine neue Gruppe von Services, die als BaaS – Backend as a Service – bezeichnet werden, bis hin zu vereinfachten Hosting-Services wie Heroku (alias PaaS).

Bei Verwendung von Frameworks wie Rails stellen diese Cloud-basierten Services für die Entwickler weitere nützliche Tools dar, die den Entwicklungszyklus vereinfachen können. Firebase ist hierfür ein gutes Beispiel. Was auf den ersten Blick wie eine unter vielen Cloud-Datenbank-Services aussieht, entpuppt sich bei näherem Hinsehen als ein schlankes, Echtzeit-/Full-Stack-API zur Vereinfachung der Datenspeicherung, der Echtzeitkommunikation und der Realisierung eines REST API.

Firebase und ähnliche Services zur Verbesserung der Entwicklerproduktivität erlauben heute eine einfachere und schnellere Realisierung von Applikationen als noch vor einem Jahr. Natürlich haben diese zusätzlichen Verbesserungen normalerweise auch ihren Preis: Die meisten dieser neuen Services sind proprietärer Natur, was ihre Einführung im Unternehmen erschwert. Mit steigender Verbreitung von Plattformen wie Amazon Web Services und Heroku dürften diese Hürden aber immer niedriger werden.

Auswirkungen dieser neuen Entwicklerkultur

Noch nie waren die Zeiten für Entwickler so gut wie heute: Sie haben mehr Freiheiten als je zuvor, ihre Tätigkeit kreativ und expressiv zu gestalten. Diese Kultur wird in immer mehr Unternehmen gefördert, die ihrerseits von den Produktivitätssteigerungen profitieren, indem sie mehr innovative Produkte und Lösungen auf ihrem Gebiet auf den Markt bringen.

Im Zuge der Unterstützung dieser neuen Entwicklerkultur in den IT-Organisationen entstehen allerdings auch neue Herausforderungen im Hinblick auf Sicherheit und Governance, die sich in einem Top-down-Modell leichter kontrollieren lassen. Es müssen neue Strategien umgesetzt werden, um die Enterprise-Umgebungen zu managen und abzusichern. Leider gibt es hierfür noch keine Patentlösung. Die meisten Services für IT-Organisationen berücksichtigen jedoch diese Notwendigkeit und bieten mindestens die Möglichkeit an, einen zentralen Account für ihre Teams zu managen.

Generell gilt, dass in IT-Organisationen mit einer heterogeneren Struktur die Problematik des Managements und der Absicherung gegen die potenziellen Vorteile einer erhöhten Produktivität und Innovationskraft abgewogen werden müssen. In den meisten Fällen müssen die einzelnen Teams Managementstrategien entwickeln, damit ihre Produkte sicher und auf dem neuesten Stand bleiben, was vielfach schon der Fall ist. Sicherheit und Governance müssen auch mit einem Bottom-up-Ansatz adressiert werden, wobei ein Security-and-Governance-Team für übergreifende Lenkung sorgt.

Die neue Rolle des Entwicklers

Ganz offensichtlich geht es den Entwicklern heute besser als jemals zuvor: Mit Freiheiten, Auswahlmöglichkeiten und Mitteln zur kreativen Umsetzung ihrer Fähigkeiten können sie erfolgreich und produktiv arbeiten. Dies fördert die Innovationskraft und die Realisierung von immer mehr Softwarelösungen, die uns das Leben angenehmer machen. Und wenn man aus der Vergangenheit Rückschlüsse auf die Zukunft ziehen kann, wird sich dieser Trend sicherlich auch im nächsten Jahrzehnt und darüber hinaus fortsetzen.

Aufmacherbild: BYOD Concept Bring Your own Device children hands holding von Shutterstock / Urheberrecht: Pixsooz

Geschrieben von
Rich Manalang
Rich Manalang
Rich Manalang leitet das Developer-Relations-Team bei Atlassian. Obwohl Softwareentwicklung immer einfacher wird, findet er, dass sie noch immer zu schwierig ist. Den Großteil seiner Entwicklerkarriere hat er damit verbracht, die Entwicklererfahrung zu verbessern. Er glaubt fest daran, dass Entwickler und die Software, die sie schreiben, die Menschheit auf noch nicht vorstellbare Art und Weise voranbringen können.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.