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?
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
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