Kontakt
Content
Was wir
tun

Dank unseres flexiblen Software-Lifecycles bieten wir genau den richtigen Rahmen für Ihr Software-Projekt. Wir begleiten den gesamten Prozess, stellen die passenden Instrumente bereit und integrieren Ihr Team an sinnvollen Stellen. Welche Komponenten unseres Angebots Sie nutzen, bestimmen Sie.

Projektdefinition

In freien Workshops mit Ihnen entwickeln wir ein erstes Gesamtkonzept und finden einen Einstieg in die fachliche Domäne. Wir definieren Anwendergruppen (Personas), leiten von deren Zielen Epics ab und erstellen erste User Storys. Gemeinsam mit den Domänen-Experten entsteht die ubiquitäre Sprache, ein gemeinsamer Wortschatz, der sich in alle Bereiche des Projekts erstreckt (Dokumentation, Code, Benutzerschnittstelle). Diese gemeinsame, lebendige Sprache ermöglicht Kommunikation mit minimalem Risiko für Missverständnisse.

In komplexeren Umgebungen definieren wir Systemgrenzen zwischen Einheiten, die unabhängig entwickelt werden können. Anschließend werden Teilsysteme zusammen mit den Experten so weit spezifiziert, dass ein Minimum Viable Product (MVP) umsetzbar ist. Gelegentlich bevorzugen wir ein Minimum Lovable Product (MLP).

Agile Entwicklung

Wir nennen unseren Software-Engineering-Prozess agil, weil wir nach den Prinzipien des Agilen Manifests arbeiten.

Im Projekt mit Ihnen liefern wir — noch während das MVP konstruiert wird — eine erste Version. Wir arbeiten in Sprints von zwei bis vier Wochen. Jeder Sprint endet mit der Auslieferung von nachvollziehbaren Änderungen. Wir stellen Tools zur Verfügung, um Feedback zu den Versionen direkt in den Entwicklungsprozess einfließen zu lassen. Eine der späteren Iterationen führt zu einem öffentlichen Release — Ihre Nutzer arbeiten mit dem Produkt.

Unsere Methodik erlaubt uns, unser agiles Vorgehen mit den Prozessen externer Partner zu synchronisieren, weitgehend unabhängig von deren Vorgehensmodell. Die Zusammenarbeit mit mehreren externen Teams ist bei uns gelebter Alltag.

DevOps

Der Betrieb der von uns entwickelten Anwendungen ist integraler Bestandteil des Entwicklungsprozesses. Da wir im Rahmen von Continuous Delivery von Projektbeginn an auslieferbare Versionen erzeugen, müssen wir auch ab diesem Zeitpunkt die nötige technische Infrastruktur bereitstellen.

Das häufige Bereitstellen vermeidet Verzögerungen beim ersten Release, da der dahinterstehende Prozess mit jeder Iteration verwendet, verifiziert und verbessert wird.

Verteiltes Monitoring stellt sicher, dass unerwartete Fehler an der Quelle mit maximalem Detailgrad erfasst werden (z.B. im Browser oder auf dem Mobilgerät eines App Nutzers, aber auch in einem Backend-Service). Diese Daten werden zusammengeführt und jeder Zwischenfall, insbesondere jeder sicherheitsrelevante, erzeugt ein Ticket, das bewertet und gelöst wird. Hier schließt sich der Kreis zwischen agilem Prozess und DevOps.

Schnelle Entwicklung kann sich keine manuellen Wiederholungen leisten. Wir automatisieren Installation und Konfiguration unserer Produkte. Wir abstrahieren mittels Virtualisierung von Umgebungsfaktoren, um Reproduzierbarkeit zu erreichen. Unsere Produkte verhalten sich bei Ihnen genau so wie bei uns. Die Abstimmung mit umgebenden Systemen (Hardware, Router, Firewalls) erledigen unsere Ingenieure mit Ihnen vor Ort und führen die gewonnenen Informationen in den Entwicklungsprozess zurück.

Technologien

Wir setzen auf Webtechnologien und offene Standards, um den Zugriff auf Daten und Funktionen von überall aus zu ermöglichen. Eine konkrete Technologie steht bei uns nie im Vordergrund. Das Projekt bestimmt die Anforderungen, die Anforderungen bestimmen die Werkzeuge. Dafür bauen wir konstant Wissen über Programmiersprachen, Frameworks und Methoden auf — dies tun wir im Rahmen von Projekten, Workshops, auf Konferenzen und in Online-Trainings. Trägt ein neues Werkzeug wesentlich zur Produktqualität bei, schlagen wir immer einen Austausch vor.

Effiziente Software-Lösungen basieren sowohl auf kreativem Design als auch auf intelligenter Technologie. Während der Planungsphase schlagen wir wesentliche Technologien auf Basis Ihrer bereits eingesetzten Dienste und unserer Erfahrung vor. Damit stellen wir neben dem Erreichen der Projektziele auch eine nahtlose Integration in Ihre IT-Landschaft sicher.

Anwendungs­bereiche

Unsere Arbeit betrifft regelmäßig unterschiedlichste Branchen, verschiedene Fachbereiche und strategische Ziele unserer Kunden. Mit unserer Methodik erhalten Sie mehr Entscheidungsfreiheit bei Integrationspartnern, Technologie und Personal. Denn ein System zu entwickeln — man könnte es als Box betrachten — und effektive lokale Entscheidungen innerhalb dieser Box zu treffen, ist nur möglich, wenn wir über deren Grenzen hinaus denken können.