Kompetenzen

Die Arbeit von factis research ruht auf drei wichtigen Pfeilern: hohe technologische Kompetenz, detaillierte Kentnisse der Anwenderdomäne und ein agiler Entwicklungsprozess.

Technologien

Unser breites Wissen in allen Bereichen der Softwareentwicklung ist die Grundlage für erfolgreiche Arbeit. Schwerpunkte unserer technischen Expertise liegen in den Gebieten Programmiersprachen, Betriebssysteme, Netzwerke und Datenbanken. In unserer täglichen Arbeit setzen wir Technologien ein, die es uns erlauben robuste, performante und fehlerfreie Software in kurzer Zeit zu realisieren. Dabei legen wir ein besonderes Augenmerk auf offene Standards und Open Source Lösungen.

Haskell

Das Backend unseres Produkts Checkpad MED ist in der funktionalen Programmiersprache Haskell geschrieben, da Haskell hohe Typsicherheit sowie sehr gute Unterstützung zur Realisierung nebenläufiger Programme bietet. Inzwischen sind so mehr als 200.000 Zeilen Haskell Code zusammengekommen.

Scala / DICOM / HL7

Ebenfalls im Rahmen von Checkpad MED benutzen wir die funktional und objekt-orientierte Sprache Scala um Daten aus verschiedenen Krankenhaussystemen abzugreifen und aufzubereiten. Scala eignet sich hier besonders gut, da die Sprache zum einen hohe Ausdruckskraft und Typsicherheit bietet, zum anderen aber auch die nahtlose Integration von Java Komponenten ermöglicht, was den Einsatz externer Java Bibliotheken zur Realisierung von DICOM oder HL7 Schnittstellen möglich macht.

Objective-C / Swift / iOS

Die iOS Anwendung für Checkpad MED ist selbstverständlich in Objective-C geschrieben. Neue Komponenten werden mit Swift realisiert.

C# / C++ / Windows

Die Windows Anwendung für Checkpad MED ist als Windows Universal App in C#, C++ und C++/CX realisiert.

Typescripts / React / HTML5 / CSS

Moderne Weboberflächen realisieren wir in HTML5 und CSS. Statt Javascript setzen wir auf Typescript, da statische Typen eine bessere Skalierbarkeit bei großen Projekten bieten. Für die Modellierung von Userinterfaces benutzen wir zumeist react.

Python / Bash / PostgreSQL / SQLite / LevelDB

Für systemnahe Skripte verwenden wir Python oder Bash, zur Speicherung von Daten zumeist PostgreSQL, SQLite oder LevelDB.

Linux

Als Betriebssystem für unsere Server setzen wir die Linux Distributionen Ubuntu Server sowie die Virtualisierungslösung docker ein. Linux vereint für uns Quelloffenheit mit Skalierbarkeit und Anpassbarkeit.

Domänenwissen

Nur mit technischer Kompetenz lässt sich noch keine gute Software entwickeln. Dazu bedarf es auch viel Wissen und ein gutes Gespür, welche Probleme mit der Software gelöst werden sollen und wie die Arbeitsabläufe in der Anwendungsdomäne sind. Wir haben daher über viele Jahre hinweg Erfahrungen und umfangsreiches Wissen im Gesundheitswesen gesammelt.

Entwicklungsprozess

Gute Software kann nur dann entstehen, wenn die Entwickler sich mit der Software identifizieren und Spaß daran haben, die Software zu entwerfen, zu entwickeln und zu testen. Daher ist bei uns jeder Entwickler in alle Schritte der Produktentwicklung bzw. eines Projekts eingebunden und kann seine eigene Vorschläge einbringen und umsetzen. Als Vorgehensmodell bei der Entwicklung setzen wir vor allem auf die Scrum Methodik, da wir damit den sich häufig schnell ändernden Anforderungen gerecht werden können und wir ganz allgemein die Werte der agilen Softwareentwicklung teilen:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan