Software

Softwaredesign

Gutes Softwaredesign sorgt für gute Qualität. Durch eine konzeptionelle Planung nach den Prinzipien des Domain Driven Design stellen wir sicher, dass die Softwarearchitektur höchsten Ansprüchen genügt. Diese Art der Modellierung schafft es selbst komplexeste Projekte in deren fachlichen Anforderungen einzeln aufzutrennen. Sie unterstützt außerdem den Übergang von der Fachsprache des Kunden hin zu der technischen Umsetzung und sorgt dafür, dass der Kunde sich in einer fertigen Lösung sofort zurechtfindet.

 

Auf dieser Basis entstehen Microservices, die sowohl eine Hochverfügbarkeit, eine Skalierung der Systeme als auch eine einfachere Weiterentwicklung und Wartung sicherstellen. Durch eine Vermeidung von technischer Schuld können die Produkte auch nach Abschluss des Projekts schnell und mit überschaubaren Aufwand erweitert und gepflegt werden. Das Design legt somit den Grundstein für eine lange Verwendbarkeit der Produkte.

GoBD

Die von uns erstellten Produkte erfüllen bei Bedarf die „Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern, Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff“ (GoBD). Dies bedeutet, dass Datenzugriffe und Veränderungen genau geregelt sind und nachvollzogen werden können.

Agile Softwareentwicklung

Da die meisten Softwareprodukte eine längere Entwicklungszeit benötigen und komplexe Anforderungen stellen, entwickeln wir seit vielen Jahren unsere Software mit agilen Methoden. Vorzugsweise Scrum hilft uns dabei in kurzen Iterationen das Produkt zu erstellen, was der Kunde benötigt. Dabei verlieren wir den zeitlichen Rahmen und die Kosten nicht aus dem Blick, da durch ständige mit dem Kunden gemeinsame Reflexionen der aktuelle Fortschritt präsentiert wird.

 

Die Qualität der Software wird dabei sehr früh im Projekt durch testgetriebene Entwicklung, ständige Code Optimierungen (Refactorings) und Pair Programming optimiert und sichergestellt. Eine Entwicklung im Team und täglichen Stand Up Meetings sorgen für eine hervorragende Planbarkeit und Wissensverteilung. Nicht zuletzt die automatisierte ständige Integration (Continuous Integration) der Produkte gewährleistet, dass immer einsatzfähige Produkte ausgeliefert werden können.

Qualitätssicherung

Damit ein hoher Qualitätsstandard sichergestellt werden kann und dabei möglichst wenig manuelles Testing notwendig ist, werden bei der CodeFabrik automatisierte Integrationstest eingesetzt. Diese basieren auf den zuvor mit dem Kunden zusammen analysierten Use-Cases. Dadurch wird sichergestellt, dass bereits fertiggestellte Features auch in Zukunft weiterhin reibungslos funktionieren. Manuelle Regressionstests werden nahezu überflüssig und der Testaufwand reduziert sich. Dies bedeutet eine stabilere schnellere Entwicklung von neuen Features und geringere Kosten für unsere Kunden.

Zielplattformen

Neben der Umsetzung des Back-Ends bieten wir die Umsetzung von Clients für unterschiedliche Plattformen an. Dazu entwerfen wir eng abgesprochen mit den Kunden ein Design, dass sich an den Grundsätzen der moderner Usability orientiert. Dazu wird je nach Zielplattform und Anwendungsfall die optimale Bedienung entworfen.

Dazu gehört die Entwicklung von responsiven Webanwendungen als auch die Entwicklung nativer Clients für iOS und Android Geräte.

Datenbanken

Die falsche Datenbank zu wählen kann ebenso eine technische Schuld bedeuten, wie der Einsatz falscher oder unpassender Softwarearchitektur.

Ob SQL oder NoSQL, wir sind geübt in der Handhabung diverser Datenbanken. Die richtige Trennung der Tabellen und Schemata sind für uns eine Fingerübung.

Rollen und Rechte

Nahezu jede Anwendung mit Oberfläche benötigt ein Rechtekonzept. Ein flexibles Rechtesystem hilft dabei einfache Lösungen zu finden. Wir helfen unseren Kunden dabei.