So verbessert man Prozesse, um ineffizientes Arbeiten, Legacy-Code und Frust zu vermeiden.

Der Ausreden-Katalog in der Webentwicklung: 6 Tipps gegen den inneren Schweinehund
Kommentare

Schlechte Software-Qualität macht krank – das ist keine Neuigkeit. Doch der Ausreden-Katalog, gerade auch bei Entwicklern, ist groß. Was kann man also tun, um für eine Verbesserung der Prozesse und effizienteres Arbeiten zu sorgen?

Das Tagesgeschäft im Webdevelopment fordert oftmals einen hohen Tribut: die technische Schuld. Wird diese nicht abgebaut, hat das schlimme Folgen – auch für die Entwickler selbst. Denn neben den explodierenden Kosten kann schlechte Software-Qualität sogar Erkrankungen nach sich ziehen. Das ist hinlänglich bekannt. Doch der „Ausreden-Katalog“ in der Entwicklung ist groß und stets gut gefüllt. Hier daher ein paar Tipps, wie man seine Prozesse verbessern und sich gegen den inneren Schweinehund durchsetzen kann, um ineffizientes Arbeiten, Legacy-Code und Frust zu vermeiden.

Ausrede Nr. 1: „Automatisierte Tests lohnen sich nicht“

Effektive und kosteneffiziente Webentwicklung ist nur mit automatisierten Tests möglich. Diese sind sehr viel schneller und zuverlässiger als manuelle Tests, und anfangs reicht auch erst einmal ein minimales Test-Set-up. Handelt es sich dabei um eine Webanwendung, kann man mit Unit- und Acceptance-Tests recht zügig an den Start gehen – mit etwas Übung lassen sie sich in weniger als einer Stunde aufsetzen.

In diesem Bereich Know-how aufzubauen, ist aber nicht nur für das Projekt und den Kunden wichtig. Vielmehr werden diese Skills auch im Arbeitsmarkt mehr und mehr geschätzt. Verfügen Entwickler hingegen über keinerlei Erfahrung mit automatisierten Tests, sinken die Chancen im Bewerbungsgespräch ganz beträchtlich. Auch gute Senior Webdeveloper kann dies treffen, und ehe man sich‘s versieht, ist man verheizt. Da Test-Know-how aber kein Selbstläufer ist, gilt es, sich ständig weiterzuentwickeln. Das Testing-Framework Codeception etwa bietet sehr gute Möglichkeiten für PHP-Applikationen. Es unterstützt Unit-, Acceptance-, Integration-, Functional- und API-Tests.

Es lohnt sich auf jeden Fall, konsequent mit Tests zu arbeiten.

Klar ist: Tests sind äußerst hilfreiche Werkzeuge im Entwickleralltag. Hat man dies einmal erkannt, möchte man nicht mehr darauf verzichten. Sie schützen vor Bugs und wehren diese ab. Somit lässt sich viel Zeit sparen, was große Vorteile mit sich bringt. Außerdem versetzen Tests Entwickler in die Lage, auch völlig alleine bzw. selbstständig an Projekten zu entwickeln. Komplexe und professionelle Entwicklung ohne Tests ist demgegenüber nicht möglich. Es lohnt sich also auf jeden Fall, konsequent mit Tests zu arbeiten, da sie ein Fundament bilden, auf das man aufbauen kann.

Kommende Bugs können so direkt im Test-Szenario abgedeckt werden und tauchen später nicht mehr auf. Das schafft Vertrauen und ermöglicht einen guten und entspannten Arbeitsalltag.

Ausrede Nr. 2: „Automatisierte Deployments sind vom Set-up her zu teuer“

Deployment-Prozesse sind sehr zeitintensiv und erfordern jede Menge Erfahrung und Know-how. In der Regel werden nur die erfahrensten Entwickler damit betraut. Das bedeutet aber auch, dass in diesem Fall weniger Code von ihnen produziert wird, da sie im Projektalltag vergleichsweise selten zum Programmieren kommen.

Beim Set-up eines Projekts fallen im Grunde genommen immer die gleichen Schritte an – je nach Projekt können diese es aber auch in sich haben. Ein automatisierter Deployment-Prozess dokumentiert das alles und kann versioniert werden. Das muss nicht nur für neue Features getan werden, sondern auch für kleine Änderungen im HTML oder CSS.

Ein Beispiel dafür ist meine Seite „Never Code Alone“. Da es hier noch kein CMS gibt, muss jede Änderung über Git deployed werden. Es handelt sich um ein Symfony-Projekt, das über Jenkins und deployer live gebracht wird. Das spart sehr viel Zeit und schont die Nerven. Neben deployer gibt es noch roboli und eine Vielzahl weiterer Deployment-Tools und -Möglichkeiten. Am Ende wird der Prozess in einer Art Deployment-Script abgebildet und ausgeführt. Deployer ist sehr schnell und einfach aufgesetzt und bietet verschiedene Möglichkeiten für unterschiedliche

Deployment-Methoden sowie Rezepte für Systeme wie TYPO3, Drupal, Laravel, Yii und vieles mehr. Das alles von Hand zu machen, ist zeitaufwändig und teuer. Ein einfaches Set-up dagegen ist schnell eingerichtet. Das lohnt sich in jedem Projekt.

Ausrede Nr. 3: „Das gibt die Infrastruktur nicht her“

Bei Kunden werden häufig billige Hosting-Lösungen genutzt, die weniger als zehn Euro im Monat kosten und frühestens nach einem Jahr gekündigt werden können. Eine solche Infrastruktur ist keine gute Grundlage für zeitgemäßes Webdevelopment! Es gibt keinerlei Grund, diese mit hohem zeitlichen und finanziellen Aufwand am Leben zu erhalten. Schließlich gibt es gerade im Bereich der Virtualisierung professionelle Lösungen für relativ kleines Geld. Die Preisdifferenz ist durch die eingesparten Stunden schnell wieder wettgemacht – das Entwicklungsbudget kann somit in Summe deutlich niedriger angesetzt werden. Außerdem sind solche Lösungen sehr viel besser für die Nerven aller Beteiligten. Leider lässt hier jedoch oftmals die Aufklärung des Kunden und der Entscheider zu wünschen übrig.

Kunde und Dienstleister haben ein gemeinsames Interesse an einer soliden Lösung.

Ich persönlich hoste Kunden daher ausschließlich auf eigenen Servern und mache ihnen einen fairen Preis. Immerhin spare ich dadurch viel Zeit, die ich dann an anderer Stelle bzw. in anderen Projekten nutzen kann. Das ist allemal besser, als mir in umständlich gehosteten Projekten jede einzelne Stunde bezahlen zu lassen, dafür aber meine sonstigen Tasks nicht abgearbeitet bekomme. Ich will ja etwas schaffen und am Ende des Tages aufs Sonnendeck. Kunde und Dienstleister haben also ein gemeinsames Interesse an einer soliden Lösung. Daher sollte man hier auf sinnvolle Weise zusammenarbeiten. Consulting ist bekanntlich auch Verkauf.

Ausrede Nr. 4: „Der Kunde ist zu klein dafür“

Es gibt Kunden mit Budgets, die an der Grenze der Gefälligkeit liegen. Und natürlich gibt es auch soziale Projekte, die ehrenamtlich unterstützt werden. Aber das darf nicht die Messgröße in der Kalkulation sein. Die Frage ist, ab wann es sich für ein Projekt rentiert. Und das ist ganz einfach: Sobald die Zeit, die für manuelle Deployments benötigt wird, die Zeit für die Einrichtung von Tests und Deployments übersteigt.

Mit ausreichend Projekterfahrung beim Thema Continuous Integration dauert ein Setup etwa einen halben Tag. Man kann hier auch großzügiger rechnen und je nach Special Case einen ganzen Tag einplanen. Im Vergleich dazu lässt sich der Aufwand für ein manuelles Deployment und Testing beim Projekt natürlich nicht pauschal schätzen – die Zeit für einen vollständigen Deployment-Vorgang hingegen ist leichter zu messen und hochzurechnen. Dann kann man sagen, ab wie vielen Änderungen sich ein professionelles Setup lohnt. Zu bedenken ist auch, dass dieses weitaus zuverlässiger ist und von jedem ausgeführt werden kann.

Aber ganz egal, wie man deployed: Acceptance-Tests, also automatisierte Frontend-Tests, rentieren sich auch bei kleinen Projekten und Kunden. Das Know-how aus den Setups kommt dann auch allen zukünftigen Projekten und Kunden zugute. Das kann man gerne in die Rechnung mit einfließen lassen.

International JavaScript Conference 2017

The Vue of Search Engine Optimization – How to make your Single-Page App rank well

mit Dennis Schaaf (futurice) & André Scharf (DigitasLBi)

Von 0 auf 100 – Performance im Web

mit Sebastian Springer (MaibornWolff GmbH)

I didn’t know the Browser could do that

mit Sam Bellen (madewithlove)

Ausrede Nr. 5: „Wir haben keine Zeit dafür“

Keine Zeit, kein Personal und kein Geld. Die Folge: Nicht mehr lauffähige Projekte werden unter immensem Aufwand künstlich am Leben gehalten. Das ist nichts Anderes, als unwirtschaftliche Kesselflickerei, zumal an den vielen undichten Stellen im Projekt ständig wertvolle Zeit verloren geht – und zwar vom ersten Anruf des Kunden bis zum Roll-out. Ob also in der Kommunikation oder durch schlechte Tickets und schlechte Planung für die anstehende Entwicklung: Überall wird Zeit verschwendet, die dann woanders – etwa für Clean Code – fehlt. Dabei ist doch hinreichend bekannt, dass hierbei 90 Prozent für das Lesen und nur zehn Prozent für das Schreiben anfallen. Trotzdem wird nicht in bessere Lesbarkeit und Code-Struktur investiert. Stattdessen spart man an sinnvollen und rentablen Maßnahmen wie Tests und Deployments. Warum …?

Als Consultant und leitender Entwickler habe ich in vielen Projekten und Teams unterschiedlichster Konstellationen und verschiedenster Voraussetzungen gearbeitet und gelernt, dass Know-how sehr viel wert und alles in allem leicht zugänglich ist. Fehlendes Know-how dagegen wird rasch zum Kostenfaktor. Hier hilft nur der Blick über den Tellerrand – und für den braucht es eine entsprechende Motivation.

Raus aus dem Keller und rein in die Führungsetage!

Das heißt: Wir Entwickler haben es letztlich selbst in der Hand, die jeden Tag vor uns liegenden großen Chancen zu nutzen. Legt einfach mal vor und alle werden davon profitieren und mitmachen. Wartet nicht auf das Go von oben. Es wird nicht kommen. Verbesserungen und Innovationen werden erst wahrgenommen, wenn sie sichtbare Erfolge zeigen. Ihr müsst eure Ideen wirtschaftlich verkaufen. Die gesamte IT muss sich besser verkaufen und viel mehr Verantwortung in Entscheidungsprozessen übernehmen. Also raus aus dem Keller und rein in die Führungsetage! Zieht es durch und sucht euch Befürworter. Hierzu empfehle ich die Beschäftigung mit dem sogenannten Pinguin-Prinzip.

Ausrede Nr. 6: „Wir haben keine Lust darauf“

Da der Mut zur Wahrheit fehlt, gibt es viele Lügen in der Software-Entwicklung –auch Selbstlügen. Unter den Entwicklern gibt es nur sehr wenige gute und engagierte. Webdevelopment wird nicht einfacher. Steigende Ansprüche auf Seiten der User müssen immer schneller bedient werden. Der Nachwuchs bleibt aber leider noch aus. Ein einsamer Kampf beginnt, während der Druck weiter steigt. Führungsetagen sehen die Lösung nur in der Erhöhung der Manpower – die aber auf sich warten lässt. „Wir haben eine Stellenausschreibung geschaltet.“ Wow. Doch bis dahin: „Mach, dass es läuft!“

Eine gesunde Entscheidung erfordert Mut. Aber viele Entwickler sagen sich, dass sie schon einen Job in ihrem Tempo finden werden. Sie möchten sich nicht mehr anstecken und verheizen lassen. Es fehlt auch Dankbarkeit und Anerkennung für die Leistungen der Vergangenheit – soll man dem Unternehmer dann trotzdem noch in immer kürzeren Zeitzyklen den Arsch retten und dabei alles aus sich rausholen …? Das Eingeständnis ist der erste Schritt zu Besserung. Es muss einem aber zunächst einmal selbst klar werden, dass man tatsächlich keinen Bock mehr hat. Dann erst kann die Suche nach den Ursachen beginnen, und hier wird man meist mehrere Probleme ausfindig machen. Diese gilt es abzubilden und zu priorisieren.

Lasst euch nicht verheizen!

Genau wie bei der Software-Entwicklung müssen wir also die Probleme identifizieren, in Tasks umsetzen und lösen. Entwickler werden schlecht gemacht und sind es sicher nicht von Anfang an. Sonst wären sie keine geworden. Meine Bitte an die Entwickler: Lasst euch nicht verheizen! Die Folgen sind schlimm für euch und für euer Umfeld.

Die Lösung: Runter vom Sofa und die Welt entdecken!

Weiterbildungen und Schulungen sind sehr teuer und kommen leider nur selten im Tagesgeschäft an. Das Investment verpufft meist also total, und die Schulungszeit hätte dann besser für die Entwicklung genutzt werden können. Auch hier spielt am Ende des Tages Geld eine Rolle. Hinzu kommt, dass das Tagesgeschäft ohnehin völlig außer Kontrolle geraten ist. Und selbst wenn man mal Zeit für Innovationen bekommt, so braucht man doch erst einmal eine Inspiration als Impuls. Dafür muss man sich unter Gleichgesinnte begeben, denn ein gutes Fundament sollte nicht nur auf eigenen experimentellen Erfahrungen beruhen, sondern solide  sein.

Hier bieten sich die zahlreichen Usergroups, Barcamps, Events, Meet-ups etc. an, denn dort ist ein direkter Austausch möglich. Das kann ungemein motivierend wirken. In ganz Deutschland gibt es zahlreiche professionell organisierte Veranstaltungen, die eben deswegen längst ihr nerdiges Image verloren haben. Tolle Locations, Catering, professionelle Speaker und das gesamten Drumherum schaffen eine tolle Atmosphäre. Geht raus vor die Türe und holt euch das Wissen!

Übrigens sind auch alle bekannten Speaker in der Szene immer wieder auf kostenlosen Usergroups an der Basis aktiv. Und alleine schon im Bereich der PHP-Usergroups gibt es ein großes und tolles Angebot. Nutzt diese Chance, nehmt Wissen mit und baut neue Kontakte auf – und bringt das alles dann in euren Arbeitsalltag ein. So kommt ihr weiter und holt Spaß und Motivation zurück in euer Leben.

Auch interessant: Deutschland – ein Webentwicklungsland?!

Fazit

„Too busy to improve“, hoher Druck, Überstunden und Frust. Neben Sofa-Ecke, Club-Mate und dem Kicker-Tisch ist die IT kein Ort für zarte Gemüter. Das Image, nicht kreativ zu sein, muss die IT noch in einem langen Prozess loswerden – und dann Kreativität nachdrücklich und ganz zu Recht für sich reklamieren. Wir brauchen Innovationen und Success-Stories. Die Symptome sind ja alle bekannt.

Wir müssen gemeinsam den Mut aufbringen und an die Ursachen gehen. Sonst verlieren wir im Web den Anschluss. Das gefährdet den wichtigen Mittelstand und damit den Wirtschaftsstandort Deutschland. Dafür tragen wir alle einen Teil Verantwortung. Also auf geht‘s – bleibt grün und stark.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -