Softwareentwicklung - Anwendungen und Automatisierung für individuelle Prozesse

Wir entwickeln Software um Ideen umzusetzen, fehlende Individualität in Standardsoftware auszugleichen, Datenlücken zu schließen, lose Systeme zu verbinden, die Automatisierung von Datenverarbeitungen zu etablieren und eigene, souveräne, sowie langlebige Infrastruktur für Anwendungen, Datenbanken und Dienste aufzubauen.

Unser Schwerpunkt liegt auf Daten-Schnittstellen und Automatisierung zur Verbindung von Anwendungen und Systemen, sowie Datenanalyse, Optimierung und Datenpräsentation für anspruchsvolle Prozesse.

Von uns entwickelte Software lässt sich leicht auf einem Server betreiben, egal ob Web (gehostet), im Intranet oder Cloud (private, public).

Ablauf - So arbeiten Sie mit uns

1. Kostenfreies Erstgespräch

Ein erstes kostenfreies Erstgespräch (Dauer üblicherweise 30 - 60 Minuten), ohne Verbindlichkeit und Risiko für Sie, zur Einschätzung Ihrer Sachlage. In dieser Phase finden Sie heraus, ob wir die richtigen Partner für Ihr Anliegen sind. Sie bekommen eine Rückmeldung mit konkreten nächsten Schritten.

2. Analyse und MVP Konzept mit Festpreisvorschlag

In der Analyse ermitteln wir den Umfang, Bedingungen und Gegebenheiten des Projektes und entwerfen einen Plan mit Meilensteinen für eine minimal funktionierende Lösung (eng. "minimal viable product", MVP). Wir halten mit Ihnen Rücksprache zu Details, bis alles klar ist. Zu dem Plan machen wir eine Festpreisvorschlag zur Umsetzung. Selbst wenn Sie sich für einen anderen Dienstleister zur Umsetzung entscheiden, haben Sie schon einen Handlungsablauf mit Ergebnisorientierung und Zeitfenster, sowie zu erwartenden Kostenrahmen.

3. Entwicklung des MVP nach Plan

Umsetzung des entworfenen Meilensteinplans für ein minimal funktionierendes, produktiv wirksames Ergebnis (Infrastruktur) bzw. verwendbare Anwendung (Software). Mit diesem Vorgehen, erhalten sie Klarheit über Anforderungen und Vorstellungen. Sich spontan ergebende Ergänzungen oder Änderungen können zügig berücksichtigt werden. Damit bleibt der Verlauf funktional und agil zugleich.

4. Iterative, agile Entwicklung zum Endergebnis

Iterative Weiterführung der in der dritten Phase umgesetzten Erstausführung zum fertigen Endergebnis, mit Ihnen gemeinsam, in prüfbaren konkreten Schritten. Die Unterteilung in weitere Abschnitte und Meilensteine bringt zeitlich bessere, als auch finanziell effektivere Planbarkeit.

Kostenmodell

Unterschiedliche Projektphasen, Ausgangslagen und Bedingungen, daraus resultierende Komplexität, sowie agile Änderungen und eventuelle Konsequenzen auf die Gesamtarchitektur eines Projektes machen eine vorab Kostenschätzung für Softwareentwicklung oft schwierig. Um Transparenz, Planbarkeit und Verlässlichkeit für alle Beteiligten zu garantieren, wenden wir 3 Kostenmodelle innerhalb eines Projektzyklus an.

Festpreis

Festpreise vereinbaren wir zu klaren Sachverhalten, die sich gut einschätzen lassen. Dazu gehört die Erstentwicklung eines Prototypen (MVP). Im Anschluss versuchen wir alle weiteren Projektphasen bis zur Fertigstellung soweit möglich zu Festpreisen einzuschätzen.
Einflüsse, die aus Sondersituationen (beschrieben bei den anderen Preisarten), welche die für Festpreise vorangehende Kalkulation nichtig machen, werden von uns zusätzlich berechnet.

Tagessatz

Findet Anwendung bei der Erstanalyse von Projektvorstellungen (Punkt 2. im Ablauf) und dem Entwurf eines Meilensteinkonzeptes, sowie schwer abschätzbaren Projektphasen und Aufgaben. Solche entstehen beispielsweise, wenn bisher nicht existente Lösungen zu Aufgaben gefunden werden müssen, oder unbekannte Komponenten dritter Hersteller eingebunden werden müssen, deren Funktionalität und Arbeitsweise vorab nicht bekannt ist.
Agile Änderungen im Verlauf eines Projektes, welche tiefgreifende Änderungen der bisherigen Anwendung zu Folge haben, sind hier anteilig ebenfalls betroffen, weil durch die Änderungen zwar das Endziel abschätzbar ist (und eventuell mit Festpreis versehen werden kann), aber selten der Aufwand, den es benötigt, die bisherige Lösung umzubauen, dass die neuen Funktionalitäten überhaupt integriert werden können.
Bei Beteiligung Dritter, im Sinne von Leistungszulieferern als Teilprojekte trifft ein vergleichbarer Sachverhalt wie mit den Herstellern unbekannter Komponenten zu.

Stundensatz

Kommt zu Anwendung bei schnellen, spontanen, kleinen Änderungswünschen, die im Aufwand keine Konzeption vorab erfordern. Betrifft z.B. häufig visuelle Feinschliffe oder Mini-Features.
Bei agiler Beteiligung Dritter an einem Projekt, deren Handeln und Auswirkung dessen auf den Projektfortlauf haben, sind für uns nicht einschätzbar, deshalb werden entstehende Zusatzaufwendungen von uns separat nach Stundensatz abgerechnet.
Wenn unklare Abhängigkeiten vorliegen, oder Sachlagen sich ändern, die erst später im Projektverlauf zu Tage kommen, weil uns vorab wichtige Informationen nicht mitgeteilt wurden. In derartigen Fällen entscheidet der Aufwand, ob Stundensatz oder Tagessatz.

Ideen und Eindrücke

Sie haben eine Projektidee - sprechen sie gern mit uns, unverbindlich in einem kostenfreien Erstgespräch oder per E-Mail.

Wann Sie sich unsicher sind, ob Sie überhaupt eigene Software oder Infrastruktur gebrauchen können, hilft Ihnen der folgende Guide:

Wann ist es sinnvoll über eigene Softwareentwicklung nachzudenken? - Nachstehende Fragen stellen eine Hilfe zur Einschätzung dar und gelten auch für Infrastruktur Vorhaben.

  • Was wünschten Sie sich, würde sich von selbst erledigen?
  • Welche Verbindungen fehlen, die Prozesse an der Fähigkeit zur Automatisierung hindern?
  • Welche Aufgaben erledigen sich unter Frustration?

  • Welche Prozesse laufen nicht rund?
  • Über welche Vorgänge hätten Sie gern mehr Kontrolle?

  • An welchen Stellen fehlen Informationen?
  • Was würden Sie gern sehen, dass Ihnen bisher verborgen bleibt?
  • Welche Informationen oder Daten fehlen, um sichere Entscheidungen zu treffen?
  • Welche Daten müssten zusammengefasst werden, um besseren Überblick zu haben ?

  • Welche Aufgaben kosten unnötig viel Zeit?
  • Gibt es Vorgänge die zu unnötigen, fehlerbehafteten oder wiederholten Handlungen führen?
  • An welchen stellen entstehen Ungenauigkeiten?

Anregungen

Software Arten und Einsatzzwecke

Softwarearten die wir entwickeln lässt sich in Kategorien und Verwendungszecke unterteilen.

Automatismen (Ablaufroutinen) - Wiederkehrende Ablauflogiken zur Ausführung von Aufgaben und Datentransporten

Middleware - Datenverarbeitung oder Prozessverwaltung von Fremdsystemen in einer unabhängigen Umgebung

Schnittstellen (APIs) - Systemkopplung, Datenübertragung, Fremdintegration. Oft Teil von CLI Tool, Anwendung oder Automatisierung

CLI Tools - (Teil-) Automatisierung von nicht visuellen Datenprozessen, kann Komponente einer Anwendung sein

Einzelnutzer-Anwendungen - Visuelle Datenverarbeitung, Verwaltung oder Prozessmanagement (kann auch Middleware sein)

Mehrnutzer-Anwendungen - (Rechte abhängige) Anmeldungsgekoppelte Anwendung mit Nutzerverwaltung und nutzerabhängiger Darstellung

Tabellenkalkulation - Schnellverarbeitung und Darstellung einbindbarer Daten mit fester Struktur

Einsatzbeispiele

Was macht uns speziell?

Wenn ihr Projekt herausfordernde Themen wie Strukturerkennung in Daten oder algorithmische Verarbeitung (z.B. Analyse, Optimierung), stark vernetzte (verzweigte) Abläufe oder Simulationen beinhaltet, sprechen Sie uns darauf gern an.

Komponenten und Zwecke die wir beispielsweise integriert haben:

Bots - selbständige Agentenprozesse

Parser / Compiler - Text, Vorlagen und Dokumentengeneration bzw.- Extraktion, Prozess- und Ablaufgestaltung

Graphenalgorithmen - Datenanalyse - Pfade, Verknüpfungen, Erreichbarkeit, kürzeste Wege, topologische Sortierung

Data Miner - Datenanalyse, Berechnungen

Zustandsautomaten - Prozess- und Ablaufgestaltung, Bot-Design

Dynamische Programmierung und Heuristiken (z.B. genetische Algorithmen) - Lösen von Optimierungsproblemen, Approximation

Support Vector Machines (SVM) und k-Means Clustering - Datenanalyse / -vorhersage, Strukturerkennung

Verwendete Technologien

Build-Tools

  • clang / LLVM
  • QT / CMake
  • npm / deno
  • Spago
  • Cabal
  • Nix
  • Neutralinojs
  • WebAssembly (wasm)

Code / Sprachen

  • bash / shell
  • C++
  • Haskell
  • JavaScript
  • Nix
  • Node.js
  • php
  • PureScript
  • python

Komponenten

  • Apache
  • Nginx
  • ZeroMQ / RabbitMQ
  • Redis
  • MySQL / MariaDB
  • PostgresSQL
  • DGraph

Web

  • Responsive (css / flex grid)
  • SEO
  • REST / GraphQL
  • cytoscape
  • plotly
  • Chart.js
  • Tabulator
  • Three.js / WebGL
  • fullcalendar
  • cke editor / summernote