Technologien & Konzepte

Wir probieren neueste Ideen, Konzepte und Technologien aus, weil es uns Spaß macht und wir uns gerne weiterentwickeln und dazulernen.

Aber wenn man schon ein paar Jahrzehnte beruflich in der IT und auch in der Softwareentwicklung sein zu Hause hat, wird man irgendwann erkannt haben, dass zwar regelmäßig die "nächste Sau durchs Dorf" getrieben wird, aber vieles davon nur eine Modeerscheinung ist, die nach kurzer Zeit wieder verschwindet.

Deswegen versuchen wir immer, Substanz und echte Verbesserung hinter einem Hype zu erkennen und für unsere Kunden und uns zu nutzen.

Denn wir denken pragmatisch und sind der Meinung, dass in Kundenprojekten nur Techniken eingesetzt werden sollten, die für die Anforderungen des jeweiligen Projektes die bestmöglichen Ergebnisse versprechen.

Um unser technologisches Umfeld, in dem wir arbeiten, kennenzulernen, finden Sie auf dieser Seite einige Begriffe, in denen wir denken, und einige Themen, die wir für Kundenprojekte nutzen.

Klingt unser Themenfeld und unsere Denkweise für Sie interessant? Dann freuen wir uns über Ihre Kontaktaufnahme.

Agile Softwareentwicklung

Wir arbeiten und denken nach den Prinzipien der agilen Softwareentwicklung und stehen zu den Werten und Prinzipien des "Agilen Manifesto". Denn wir haben die Erfahrung gemacht, dass man mit menschlichem Umgang und respektvoller Zusammenarbeit bessere Software entwickeln und schneller auf Veränderungen reagieren kann.

Damit meinen wir aber nicht, dass wir uns auf bestimmte Methoden, die gerade als "in" und "agil" angesehen werden, in unserer Arbeitsweise beschränken oder Kunden zwingen z.B. "Scrum" zu lernen.

Wasserfall Modell

Das Wasserfall-Modell ist eine Methode des Projektmanagements, die in den letzten Jahren einen schlechten Ruf bekommen hat. Denn viele öffentliche Großprojekte, die es nutzten, haben sich über Jahre verzögert und wurden erheblich teurer als ursprünglich geplant.

Doch die Ursachen des Scheiterns jener Projekte liegen nicht in der Nutzung des Wasserfall-Modells, sondern in starren und unflexiblen Verträgen der Projektbeteiligten.

Denn, wenig beachtet, beinhaltet das Wasserfall-Modell auch einen iterativen Ansatz.

Als Hauptunterschied zwischen Wasserfall und agiler Entwicklung wird oft der Gegensatz zwischen "vorausschauender Planung" (Wasserfall) und "Anpassungsfähigkeit" (Agil) genannt.

Tatsächlich sehen wir das nicht als Gegensatz an, denn für uns sind sowohl vorausschauende Planung als auch Anpassungsfähigkeit während der Entwicklung wichtig und umsetzbar.

Wir setzen pragmatisch die Projektmanagementtechniken ein, die für Sie und Ihr Projekt am besten geeignet sind.

Microservices

Microservices sind beliebt, weil dadurch verschiedene Entwicklerteams unabhängig voneinander Teilbereiche einer Anwendung entwickeln können, statt dass alle Entwickler an der gleichen Software (einem sogenanten "Monolithen") arbeiten.

Microservices können die Flexibilität und Geschwindigkeit für Softwareänderungen erhöhen, um auf geänderte Anforderungen schneller einzugehen.

Doch Microservices kommen mit einem Preis: Höhere Komplexität sowohl bei der Softwareentwicklung als auch dem späteren Betrieb der Anwendung.

Auch muss man Probleme beim Betrieb einer Microservice-Anwendung lösen, die man beim Betrieb eines "Monolithen" so nicht hätte. Was zu einem immer größer werdenden Zoo an Tools und Dienstleistern (die alle nicht umsonst arbeiten) führt, die diese neuen Probleme lösen wollen.

Daher lautet auch hier unsere Devise: Microservices ja, aber nur, wenn es Sinn macht.

DevOps

DevOps ist im Kern eine Kultur der partnerschaftlichen Zusammenarbeit zwischen Softwareentwicklung (Dev) und IT-Betrieb/Systemadministration (Ops) für eine bessere Kundenorientierung über den gesamten Softwarelebenszyklus.

Wir leben und atmen diese Kultur seit über 20 Jahren, weil wir den Nutzen für unsere eigene Leistungsfähigkeit und die Vorteile für unsere Kunden in unserer praktischen Arbeit früh erkannt haben. Auch wenn wir es früher nicht DevOps genannt haben (den Begriff selbst gibt es erst seit ca. 2009).

Aus der DevOps Idee haben sich verschiedene praktische Methoden und Arbeitsweisen ergeben, wie z.B. automatisierte Tests, automatisierte Bereitstellung von Softwareupdates und Installationen (CI/CD, Continuous-Integration- und Continuous-Delivery), Microservices, nachvollziehbare Versionierungen, GitOps (nachvollziehbare Festlegung von Anwendungsanforderungen und Konfigurationen, Infrastruktur als Code) etc. etc.

Wir nutzen diese Methoden täglich für unsere eigene Arbeit und können sie, je nach Kundenanforderung, auch in Kundenprojekten einsetzen.

Cloud, Anwendungsvirtualisierung mit Docker, Podman, Kubernetes & Co.

Wenn man über Cloud spricht, werden zuerst die Kostenvorteile und die hohe Flexibilität genannt, weil man z.B. bei Lastspitzen oder Ausfällen schnell zusätzliche Ressourcen bereitstellen kann, statt diese Reserven ständig bereithalten (und bezahlen) zu müssen. Ganz falsch ist das nicht, aber nicht jedes Kundenprojekt kann davon gleichermaßen profitieren. Bei falscher Konzeption können sicht statt vermeintlichen Kostenvorteilen im späteren Betrieb erhebliche Mehrkosten ergeben.

Als DevOps-Entwickler nutzen wir die Anwendungsvirtualisierung auch, um zeitnah Änderungen und Software-Updates nach automatisierten Tests im produktiven Regelbetrieb ohne Ausfallzeiten zum Kundennutzen bereitstellen zu können.

Auch Projekte, die weder Cloud noch Kubernetes nutzen, können davon profitieren.

PHP, Javascript, Rust und der ganze Rest

Entwicklung in PHP für das Backend und Javascript für das Frontend ist unser Schwerpunkt und unsere Passion. Auch das INS-Framework basiert darauf.

Seit noch nicht langer Zeit scheint sich bei uns mit Rust, einer noch relativ jungen Programmiersprache, die besonders für ihre eingebaute Sicherheit gelobt wird, ein weiterer Schwerpunkt zu entwickeln.

Aber es wäre nicht möglich, gute Webanwendungen zu bauen, ohne Kenntnisse von vielen anderen Dingen wie z.B. Apache, NGINX, React/Angular/Vue, Node.js, MySQL, PostgreSQL, C/C++, RabbitMQ, Redis, Redshift und vielen vielen anderen zu haben.

Sind PHP (oder Rust) für Ihr Projekt passend? Dann freuen wir uns über Ihre Kontaktaufnahme.