Beratung

Mit einer Einführung neuer Technologien oder Prozesse geht stets ein Lernprozess einher. In dessen Rahmen gibt es Unsicherheiten und es werden manchmal suboptimale Entscheidungen getroffen, aus denen man lernen muss.

Modellierung

Obwohl Modellierung eine große Rolle in der Softwareentwicklung spielt, wird dieses Thema viel zu oft mit Datenbankschemas oder reinen Datenobjekten gleichgesetzt. UML als Standard ist für viele zu theoretisch oder akademisch und dessen Diagramme haben oft nur Dokumentations-Charakter. Modellierung ist allerdings mehr als nur ein Framework zu benutzen, es geht um eine Methodik und ein andere Sichtweise of Dinge. Verschiedene Hilfsmittel helfen bei der Datentransformation von Modell zu Modell oder Modell zu Text. Wir unterstützen sie gern etwas herauszuarbeiten, das bereits in vielen Köpfen existiert und nur darauf wartet manifestiert und formalisiert zu werden.

Die Einführung ein domänenspezifischen Sprache oder Semantik auf Use-Case Ebene verbessert die Unternehmenskommunikation, insbesondere zwischen technischen und nicht-technischen Bereichen. Modellgetrieben Softwareentwicklung – MDSD – kann die Effizienz in der Entwicklung signifikant erhöhen, sofern, man die richtigen Hilfsmittel beherrscht. Das UML Toolset, kann dabei sehr hilfreich sein. So kann ihr Modell vom ursprünglichen Dokumentations-Charakter einen Übergang zu einer integralen Thema in ihrer Produktentwicklung und technischen Umsetzung vollziehen.

Dank unsere umfangreichen Erfahrungen im Umgang mit UML und dem Eclipse Modeling Framework, sowie dessen Ökosystems bieten wie Expertise in:

  • Workshop und Moderation (Design, Datenmodellierung)
  • Schulung Modellierung im Unternehmen sowie technische Schulung
  • Modell Review
  • Technologische Beratung – MDSD (UML, EMF)

Smart City und Industry 4.0

Diese Themen sind heutzutage omnipräsent. Der Schlüsselfaktor für den Erfolg in diesem Bereichen ist die Behandlung und Verarbeitung von Informationen und Daten. Interessante neu Anwendungsfälle erwachsen aus der Verfügbarkeit von Informationen sowie der Möglichkeit diese einfach und intelligent mit anderen Daten zu kombinieren oder anzureichern.

Dazu ist eine entsprechende System-Architektur Voraussetzung. Modularisierung, Skalierung und Verfügbarkeit von Komponenten und Datenquellen sind unabdingbar. Aber auch wohlspezifizierte Datenmodell und Schnittstell bestimmen über den Erfolg und die Akzeptanz eines solchen Systems.

Bestehende, historisch gewachsenen und etablierte Architekturen bieten aus verschiedensten Gründen keine entsprechende Erweiterungsmöglichkeiten. Aus diesen Gründen ist oft nicht möglich “auf der grünen Wiese” mit neuen Entwicklungen zu beginnen, Mit unserem Know-How, skizzieren wir ihren “Information-Hub”, der so platziert werden kann, um bestehende “alte Welt-Systeme” mittels Protokoll- oder Schnittstellenadaptern trotzdem anzubinden.

Unser technische, betriebswirtschaftliche und soziologische Kompetenz, insbesondere die Fähigkeiten in Schnittstellen und Modellierung, die Erfahrungen mit skalierbaren und verteilten Architekturen kommen Ihnen bei ihren Projekten zu gute.
All diese Projekte haben einen sehr individuellen Charakter. Besonders fehlende Erfahrung auf diesen neuen Gebieten, ist oft für interne Mitarbeiter eine Herausforderung. Wir moderieren gern ihre Workshops und schulen ihre Mitarbeiter um die Einstiegshürden für solche Themen zu reduzieren.

Modulare Architekturen

Jeder spricht aktuell von Microservices.Dies ist ein Paradigma, um eine Modularität zu erreichen, um eine Anwendung flexibler, besser skalierbar und damit effizienter zu machen. Komplexe Prozesse werden in eigene, abgeschlossen Module aufgeteilt. Das reduziert Komplexität und erleichtert dem Team das Verständnis für das System.

Allerdings ist Modularität kein Konzept, das schnell zu erlernen ist. Auch die Verteilung mehrerer Dienste innerhalb einer Infrastruktur unterscheidet sich von der altbekannten Methodik der lokalen Aufrufe. Entwickler, die langjährige Erfahrung in der Entwicklung monolithischer Systeme haben, werden einige Zeit benötigen, um sich mit den geändertenSituationen und Konzepten zurechtzufinden und diese zu adaptieren. Oftmals gehen diese Konzepte über das offensichtliche hinaus, sollten aber für eine zukünftige, gut wartbare Architektur berücksichtigt werden. Unsere Erfahrungen können helfen, Sie an entsprechenden Stellen hinzuweisen und gegebenenfalls vor teuren Fehlern zu bewahren.

Einführung der Modularität ist ein nicht rein technischer Prozess. Die Produktmanager und Entwickler müssen ihre alte Denkweisen bei Seite legen, um diese neuen Methoden und Herangehensweisen zu verinnerlichen. Nur dann steigt die Akzeptanz und das Verständnis für diese neuen Prozesse und Herangehensweisen:

  • Hilfe beim Übergang/Migration vom Monolithen zu Modularen Systemen
  • Architekturunterstützung bei “grüne Wiese” Projekten
  • Mitarbeiterschulung
  • Prototyping
  • Architekturreview

Entwicklungsprozess-Optimierung

Softwareprodukte und -projekte wachsen in der Regel über Jahre. Im selben Maßstab wächst der Entwicklungsprozess. Dies kann schnell zu Setups führen die fragil sind, die zwar funktionieren allerdings auch zu Skepsis und Vorsicht im Entwicklerteam führt. Auch hier helfen modulare Architekturen und Prozesse einen “Frankenbuild” zu vermeiden.

Wir helfen ihnen einen Schritt zurückzutreten und ihre Buildprozesse aus einer anderen Perspektive zu betrachten. Gemeinsam helfen wir ihre Problemstellen zu identifizieren und mit entsprechenden Hilfsmitteln zu restrukturieren, dass sie für jeden Entwickler wartbar werden.

Unsere Erfahrungen beschränken sich nicht nur auf Buildtools wie Maven oder Gradle. Wir unterstützen sie auch bei Architektur und Migrationen von Buildprozessen, Optimierungen hinsichtlich Versionierung oder Einführung von API-Baselining. Wir bieten zudem professionellen BND Support und unterstützen sie bei ihren Build von Eclipse RCP Anwendungen mit bspw. Maven Tycho:

  • Migration von Eclipse IDE PDE oder Tycho zu BND
  • Build von Eclipse RCP mitcBND
  • Build Infrastrukturen und CI mit BND und GRadle oder Maven

Agile Entwicklungsprozesse

Die Einführung agiler Entwicklungsprozesse kann Teams vor neue Herausforderungen stellen. Besonders die Methoden agiler Softwareentwicklung mit SCRUM werden oft missverstanden. Wichtig ist das alle betroffenen Parteien involviert werden und was agile Softwareentwicklung tatsächlich bedeutet. Jedes Unternehmen muss sich aus den Hilfsmitteln, die SCRUM bietet, diejenigen aussuchen, die sich optimal in dessen Prozesswelt einfügen.

Es gibt viele unscheinbaren Aspekte, die nicht sofort offensichtlich und bekannt sind, allerdings einen wesentlichen Einfluss auf Prozesse haben können. So bedingt eine Einführung semantischer Versionierung signifikante Änderungen in Entwicklungsprozessen.
Wir helfen ihnen die verschiedenen Hilfsmittel aus der agilen Toolbox zu erläutern und die ihrem Unternehmen entsprechenden zu identifizieren. Begleitend unterstützen wir als SCRUM Master die agilen Methoden als Motto zu leben anstatt als rigiden Prozess zu sehen.

Unsere Projekterfahrung haben uns gelehrt zu erkennen, wie sich agile Methoden mit existierenden, manchmal auch von extern vorgegebenen Vorgehensmodellen vereinbaren zu können. Gern zeigen wir in Schulung auf, wie auch andere Unternehmensbereiche von agilen Methoden profitieren können.

Back to top