Sven Wächli
15.02.2020

Professionelle Software-Entwicklung

Gute Software entsteht in der Regel nicht monolithisch, sondern modular. Iterativ-inkrementelle Verbesserungen bringen nach unserer Erfahrung langfristig die besten Resultate. Dazu muss Software aber so gebaut werden, dass sie auch kontinuierlich verbessert werden kann.

Test driven Development

Code welcher immer weiter verbessert werden soll, muss mit automatisierten Tests abgesichert werden. Über die reine Implementation von Tests hinaus steht beim so genannten Test driven Development die konkrete Funktionalität, sowie die Frage, wie diese überprüft werden kann, ganz im Fokus: Zuerst werden die Tests geschrieben, und erst dann entsteht der Code, welcher eine Problemstellung effektiv löst. Der etwas höhere Initialaufwand ist gerechtfertigt, denn je komplexer eine Programmierung ist, oder in Zukunft werden wird, umso wichtiger sind umfassende automatisierte Test, welche auf Knopfdruck überprüfen ob die Software genau das macht, was sie machen soll.

Für Kunden wichtig: Die Art wie programmiert wird, hat einen massgeblichen Einfluss auf die Sicherheit, Erweiterbarkeit und Wartbarkeit einer Software Lösung.

Teamarbeit: Gemeinsam besser werden

Bei der Entwicklung von digitalen Anwendungen, ist ein gut eingespieltes, und mit den nötigen Werkzeugen ausgerüstetes Team die Voraussetzung für langfristigen Projekterfolg. Gute Arbeit im Team – zu welchem auch der Kunde gehört – hat viele Vorteile:

  • Weiterentwicklung, Unterhalt und Support sind breit abgestützt und somit auch gewährleistet, wenn einmal ein Programmierer ausfallen sollte
  • Das Vieraugenprinzip – beispielsweise beim mergen von Commits ­– funktioniert einerseits als Kontrolle und fördert andererseits auch den konstruktiven Austauch über Code Qualität.
  • Spezialiserte Teammitglieder wie zum Beispiel Frontend-oder Backenddeveloper setzen die in Ihrem Fachgebiet aktuellste Technologie sinnvoll ein
  • Der Einbezug des Auftraggebers in die Teamarbeit verhindert, dass an den konkreten Bedürfnissen vorbei programmiert wird
  • Durch den Einbezug des Auftraggebers in den Entwicklungsprozess können massgeschneiderte innovative Lösungen entwickelt werden

Technische Voraussetzungen von Software Qualität

Um im Team effizient und sicher arbeiten zu können, ist eine zuverlässige Versionsverwaltung unabdingbar. Damit wird die technische Entwicklung eines Projekts bis hinunter zu jeder einzelnen Codeänderung dokumentiert und gespeichert. Notfalls kann so auf frühere Systemzustände umgeschaltet werden. Zusammen mit einem Issue Tracking System, über welches bei uns auch die Stundenerfassung stattfindet, wird für alle am Projekt Beteiligten grösstmögliche Transparenz hergestellt.

Qualität und Effizienz werden zusätzlich unterstützt durch einen mehrstufigen Veröffentlichungs- bzw. Deployment Prozess: Vor der Live Schaltung einer Codeänderung werden automatisierte Tests durchlaufen. Es findet zudem eine Vorveröffentlichung auf Test oder Staging Servern statt. Änderungen können sowohl automatisiert wie auch manuell überprüft werden, bevor eine Live-Schaltung stattfindet.

 

Test Driven Development, Automatisiertes Testing, Continuous Deployment, Delivery & Integration sind technische Schlüsselfaktoren für nachhaltige Software Qualität. Werden diese Aspekte vernachlässigt, ist das Chaos im wahrsten Sinn des Wortes vorprogrammiert.

State-of-the-Art der Web Softwareentwicklung

Bei den erwähnten Werkzeugen, Strategien und Prozessen ist es wichtig, auf allgemein anerkannte Standards zu setzen, um offen für neue Teammitglieder, Freelancer und künftige Entwicklungen zu bleiben.  

Wir legen darum grossen Wert auf aktuelle Software Standards und entwickeln die entsprechenden automatisierten Prozesse an vorderster Front mit. Ein Beispiel ist unsere Entwicklung eines Deployment Tools (builder) zur Automatisierung der Tests und Code Veröffentlichungen, welche in der TYPO3 Community sehr gut aufgenommen wurde.

Continuous Upgrading

Noch einen Schritt weiter gehen wir mit dem von uns entwickleten Continuous Upgrading. Hier sind die Deployment Prozesse so aufgesetzt, dass jede Codeänderung gegen die jeweils aktuellste Version des verwendeten Content Management Systems oder Frameworks getestet werden kann. Diese Strategie ermöglicht unterbruchsfreie Upgrades auf Knopfdruck.

Mehr zu diesem Angebot

 

- Über den Autor -

Sven Wächli

Sven Wächli ist Gründungspartner der zdreicom AG und Geschäftsführer der zdreicom Schweiz GmbH in Zürich. Er ist dipl. Multimedia Producer SAE, arbeitet seit 2008 mit TYPO3 und war in der Lehrlingsausbildung sowie als Prüfungsexperte ICT Schweiz tätig.

Rückrufservice

Mit dem Absenden akzeptieren Sie die Datenschutzbestimmungen.


Köln

Am Gleisdreieck 1, D-50823 Köln

Goch

Tichelweg 6, D-47574 Goch

Zürich

Mainaustrasse 21, CH-8008 Zürich

Tokio

104-0031 Chūō-ku, Kyōbashi 2−8−4