Seit meinem Eintritt in die innoQ habe ich immer wieder vorgeschlagen, dass wir zu einem Systemhaus werden sollten: einem Unternehmen, das nicht beim Kunden vorort in Projekten mitarbeitet, sondern sie für den Kunden im eigenen Haus durchfürt. Ich habe einmal von einem Projektleiter, der nachweislich über 40 Projekte mit durchschnittlich 40 PJ erfolgreich abgeschlossen hat, den Ausspruch gelesen: "Die Welt ist voll von Entwickler-Teams, die sich jeweils für das beste Team der Welt halten."
Es gibt beispielsweise dieses bekannte Open-Source-Projekt, das damit wirbt, dass einige der intelligentesten Menschen unserer Zeit daran mitwirken. Nun, ich kann so etwas nicht glauben. - insbesondere nicht, weil diese Leute nur hinterher programmiert haben. Persönlich finde ich Selbstbeweihräucherung nicht gut. Trotzdem schlage ich nun in die gleiche Bresche: bei aller Bescheidenheit weiss ich, dass jeder einzelne unserer Mitarbeiter seinen Wert in den unterschiedlichsten Projekten bereits unter Beweis gestellt hat. Um so schwerer verständlich, dass wir nicht in der Lage waren, gemeinsam die Projekte intern umzusetzen.
Endlich haben wir eine kleine Korrektur unserer Ausrichtung vorgenommen: innoQ wird sich mittelfristig als der Partner für Rationelle Software-Produktion etablieren. Die Ausrichtung stützt sich weiterhin vollständig auf dem bisherigen Selbstverständnis und den Kernkompetenzen in Technologie und Methodik. Wir sehen enorme Vorteile in der eigenverantwortlichen Umsetzung von Projekten, weil es beispielsweise keine politischen Diskussionen um den Einsatz und die Auswahl von Werkzeugen mehr gibt. Wir haben ein Portfolio an Werkzeugen, die die Software-Entwicklung drastisch verbessern können. Wir kennen die Methoden, mit denen diese Werkzeuge best-möglich eingesetzt werden können. Wir verstehen deren Funktionsweise so genau, dass wir nicht strikt an irgendwelche starren Prozesse gebunden sein müssen.
Die Ausgangsvoraussetzungen sind sehr vielversprechend. Organisatorisch richten wir uns gerade neu aus. - Alles mit der Ruhe und Gelassenheit, dass diese Veränderungen Zeit haben und wir "natürlich rein wachsen" werden. Allerdings zeigt mir die Klarheit einiger Entscheidungen, dass alle wissen, wohin die Reise geht.
Welche Rollen spielen dabei Service-orientierte Architketuren und Model Driven Architecture? Diese Frage ist nicht rhetorisch sondern stellt sich wirklich. Service-orientierte Architekturen als eine Modeform der Software-Technik ist nicht viel anders als das Paradigma der Komponenten-Basierung. Service-orientierte Architekturen erfordern einen anderen Ansatz und einen ganz anderen Fokus, um nicht einfach nur "das Gleiche in grün" zu sein. Für mich persönlich ist der Fokus der Service-Orientierung ist sehr viel weiter weg vom Code als bei der Komponenten-Orientierung. Wie auch immer das funktionieren kann, ist derzeit nur sehr individuell im Unternehmen feststellbar. Das Etablieren von Service-orientierten Architekturen erfordert Weitblick, denn Services sind von der Philosophie her tendenziell "weiter sichtbar" als Komponenten das sein müssen. Dadurch besteht die erhöhte Chance, des starken Zusammenwachsens der System-/Service-Landschaft, welches sich zu einem Wartungsalbtraum entwickeln kann.
Diesem Vorzubeugen, ohne dabei die unmittelbare Handlungsfähigkeit zu verlieren, ist eine der Herausforderungen in der Entwicklung von Service-orientierten Architekturen. Die Problemstellung ist also weniger technisch als eine Frage der Methodik und der Organisation. Um unsere Fähigkeiten in diesem Bereich noch weiter auszubauen, werden wir weiter hin auf die Mitarbeit und Beratungstätigkeit bei (Groß-)Kunden angewiesen sein, weil wir - auch mittelfristig - nicht in der Lage sein werden, eigenverantwortlich entwickelte System selbst service-orientiert zu bauen. (Wir könnten es zwar so nennen, aber de facto gäbe es keinen Unterschied zur komponenten-basierten Entwicklung - ausgenommen vielleicht die technische Infrastruktur.)
Mit der Model Driven Architecture verhält es sich da ganz anders. Wir sehen darin einen wichtigen Baustein für die Rationelle Software-Produktion. Seit Jahren - bereits bevor es den Namen "Model Driven Architecture" gab - haben wir in dem Umfeld der Entwicklung unternehmensweiter, geschäftskritischer Anwendungen den modell-getriebenen generativen Ansatz empfohlen - und eingesetzt, wenn möglich. Der Nutzen bislang immer sehr groß und Investitionen amortisierten sich schnell. Genau aus diesem Grund haben wir in diesen Bereich investiert und werden uns hier noch weiter verstärken. Unsere Erfahrung in diesem Bereich sehen wir als einen zentralen Baustein.
Weitere Bausteine werden folgen.