Softwareentwicklung

Die Entwicklung individuell an Kundenwünsche angepasste Software ist eines unserer Kerngeschäfte. Seit Januar 2000 wird unser agiles Vorgehen der Softwareentwicklung stetig verbessert und verfeinert. Die Qualität einer Software kann man erst wirklich einschätzen, wenn sie schon mehrere Jahre im produktiven Einsatz ist. Langfristig zählt leichte Wartbarkeit oft ebenso viel wie geringer, initialer Entwicklungsaufwand und Flexibilität.

Seit jeher ist Java eine unserer Schwerpunkt-Technologien im Enterprise-Geschäft. Mit Java entwickeln wir seit unseren Anfängen leistungsfähige und plattformübergreifende Anwendungen primär für Großkunden aus der Banken- und Versicherungsbranche. Und mit J(2)EE realisieren wir sichere und robuste Webanwendungen, die primär im Intranet unserer Kunden zum Einsatz kommen.

Nur wenige Monate, nachdem Rails im Juli 2004 veröffentlicht worden war, hielten wir bereits unseren ersten Rails-Workshop ab – wohl als erstes Unternehmen in Deutschland. Mittlerweile ist Rails ein Framework von hohem Reifegrad, das wiederholt seine Stärken im Produktiveinsatz großer Unternehmen unter Beweis stellen konnte. Begeistert davon, wie sehr die Grundprinzipien von Rails unserer agilen Programmierweise entgegenkommen, setzen wir uns bereits seit 2005 intensiv mit Rails auseinander und können es regelmäßig in Großkundenprojekten, aber auch internen Projekten, erfolgreich zum Einsatz bringen.

Kotlin wird oft als „das bessere Java“ bezeichnet und wir setzen es in neuen Projekten ein. Es ist eine junge, pragmatische Sprache, die aus den Schwächen von Java gelernt hat und moderne Lösungen dafür bietet. Sie läuft nicht nur auf der JVM sondern kann auch nach Javascript und nativ compiliert werden. Beim Einsatz auf einer JVM kann Kotlin bidirektional mit Java interagieren und profitiert so von der Vielfalt an Java Bibliotheken, viele Bibliotheken werden aber auch nach Kotlin portiert.

JRuby on Rails ist die perfekte Synthese aus Ruby on Rails und Java. Hier spielen wir unsere langjährigen Erfahrungen in Rails und Java doppelt aus – und verbinden die Rails-Agilität mit der Performance, Stabilität und Skalierbarkeit von Java.

Tensorflow ist die Basis vieler Lösungen mit Neuronalen Netzen. Wir setzen TF ein, wenn es um Machine Learning und KI geht. Wir sehen in dieser Technik die aktuelle Revolution in der Softwareentwicklung. Indem wir unseren Kunden auch anbieten, die zu lösenden Probleme auch mit dieser Technik anzugehen, bieten wir einen Wissensvorsprung, der für unsere Kunden zu einem Marktvorteil werden kann.

Python ist für  Neuronale Netze (inkl. ML/KI) das Mittel der Wahl. Indem auch wir in diesem Umfeld auf Python setzen, stehen auch uns die jeweils gängigen Bibliotheken zur Verfügung.

Know How

Wenn wir einmal nicht in Projekten bei unseren Kunden arbeiten, verwenden wir sehr viel Zeit auf Weiterbildung. Nicht zuletzt durch besonders anspruchsvolle, interne Projekte gewinnen wir immer neues Wissen anhand praktischer Erfahrungen. Das zahlt sich in den folgenden Kundenprojekten und auch in unseren Workshops sehr schnell aus. Oft entstehen durch unsere internen Projekte neue Fachartikel und auch Open Source Software.

Auf Entwickler-Konferenzen und in regelmäßigen Workshops erarbeiten wir unseren Wissensvorsprung stets auf’s Neue.

Im Entwicklungsprozess befindet sich unsere Software in einer kontinuierlichen Integration, d.h. an der Software vorgenommene Änderungen werden in kurzen Zeitabständen an einen Entwicklungsserver übermittelt. Dieser baut die Anwendung vollständig neu und führt alle Tests aus (Unittests der Models, Funktionstests und Integrationstests der Controller, …). Schlägt einer der Tests fehl, bekommen die Entwickler rotes Licht. Und das im wahrsten Sinne des Wortes: Eine echte Ampel schaltet auf Rot und aus Lautsprechern ertönt eine Hinweismelodie. Erst wenn alle Tests erfolgreich abgeschlossen werden konnten, wird die Ampel grün und Beifall erklingt. Jetzt baut der Entwicklungsserver automatisch ein installierbares Software-Paket auf Basis der brandneuen Aktualisierungen.

Kann ein Buch beeinflussen, wie man programmiert?

Als wir im Jahr 2000 „The Pragmatic Programmer“ gelesen haben, fanden wir uns darin sehr gut wieder. Die Autoren beschreiben genau das, was auch wir unseren Kunden vermitteln. Das Buch liest sich sehr angenehm und beschreibt umfassend und ohne Überheblichkeit, was wirklich alles zum Programmieren gehört. Wir möchten dieses Buch allen empfehlen, die professionell Software entwickeln. Weil aber nicht jeder gern englische Fachliteratur liest, haben wir dieses außergewöhnliche Werk – ganz pragmatisch – übersetzt:

Der Pragmatische Programmierer