Unsere Arbeitsweise

Wir gehen auf Ihre Bedürfnisse ein.

Da es nicht den einen richtigen Prozess für alle Projekte gibt, besteht ein wesentlicher Teil unserer Arbeit darin, den individuellen Weg zum Erfolg zu finden. Trotzdem haben sich in der Vergangenheit Muster dafür herausgebildet, wie unsere Zusammenarbeit aussehen kann.

Aus der Perspektive des Managers

Wir beginnen stets damit, den Status quo, die Ziele, sowie die Randbedingungen aller am Projekt Beteiligten zu verstehen. Dann schauen wir uns die bestehenden Pläne und Designs an, identifizieren mögliche sinnvolle Maßnahmen – sowohl bestehende als auch neue, die sich aus aktuellen Analysen ergeben – und führen eine Priorisierung durch. Unserer Erfahrung nach erzwingt der Zeitdruck oft einige Sofortmaßnahmen, während die Umsetzung anderer warten kann. Danach führen wir der Priorität nach eine tiefgreifende Analyse der Maßnahmen durch; solange, bis wir genügend Optimierungspotenzial identifiziert haben.

Organisationsstruktur und Softwarearchitektur sind eng aneinander gekoppelt; architektonische Schnittellen sind oft deckungsgleich mit denen in der Organisation. Daher benötigen Veränderungen in den Schnittstellen der Softwarearchitektur häufig das Plazet vieler in der Organisation, schließlich sind auch viele davon betroffen: Softwarearchitekten, Entwickler, Tester, Integratoren und gegebenenfalls auch Kunden. An dieser Stelle verlassen wir uns zwar auf unsere Erfahrung, wir stellen aber immer sicher, dass unsere Vorschläge eine solide Faktenbasis haben. Eine solche erlaubt es allen Projektbeteiligten, alternative Vorschläge zu erarbeiten und zu evaluieren.

Aus der Perspektive des Softwareentwicklers

Es kann durchaus frustrierend sein, wenn ein anderer aufgrund von neuen Gegebenheiten den “eigenen” Code ändert, sei es aufgrund neuer Anforderungen des Kunden oder wegen neuer Randbedingungen für spezifische Softwarekomponenten. Noch frustrierender ist es jedoch, wenn völlig unklar ist wie der Code überhaupt geändert werden müsste, um die Anforderungen zu erfüllen. Aus diesem Grund analysieren wir Ihr System sehr gründlich und entwerfen Lösungen für Ihr spezielles Problem. Wir beschränken uns also nicht auf allgemeine Tipps, wie Sie sie auch online finden würden, z.B. die Wiederverwendung einmal geladener Daten. Im Gegenteil, wir machen Ihnen konkrete, direkt umsetzbare Vorschläge, die auf Ihre Situation zugeschnitten sind.

Aus der Perspektive des Softwarearchitekten

Die Grundlagen einer jeden soliden Designentscheidung sind Daten und Fakten. Allerdings werden moderne Systeme nicht nur zunehmend komplexer, es kommen auch immer mehr Fachthemen dazu, z.B. Sicherheit und zugehörige Verordnungen, Features und Usability, Organisation und Planung, oder auch Effizienz und Kosten. Damit wird es für den einzelnen Softwarearchitekten immer schwerer bis unmöglich, alle relevanten Informationen zuzustellen und in alle Erwägungen miteinzubeziehen.

Wir unterstützen Sie an dieser Stelle. Wir sammeln verlässliche Daten und Fakten zu Hardware, Software und auf der System-Ebene. Damit können Sie grundlegende Fragen beantworten, wie zum Beispiel:

  • Was sind die Kosten eines Aufrufs in den Betriebssystem-Kernel?
  • Wie viele Operationen kann eine spezifische Beschleuniger-Hardware plausibel pro Sekunde ausführen?
  • Ist dieser Algorithmus wirklich die erste Wahl für unser System-on-chip (SoC)?
  • Was passiert, wenn wir mehr oder weniger Threads benutzen?
  • Sind wir aktuell durch die Speicherbandbreite limitiert oder durch die Berechnungseinheiten?

Mit unserer Hilfe bei der Beantwortung dieser Fragen können Sie sich auf das große Ganze fokussieren.