Software-Engineering braucht Arbeitsteilung

Effektive Arbeitsteilung  ist ein zentrale Anfordung an zukünftiges Software-Engineering: So lautet ein wesentliches Ergebnis der Capgemini-Diskussionsveranstaltung expedITion 2001 in München.

Vergleicht man heutige Mobiltelefone mit Modellen von vor zehn Jahren, erscheint der technologische Fortschritt enorm. Dabei sind die Geräte nicht wesentlich teurer geworden, bieten aber beispielsweise mit Kamera, MP3-Player und Internetfähigkeit deutlich mehr Funktionen.

Diese ständige Verbesserung des Preis-Leistungs-Verhältnisses ist eine eine natürliche Folge des Wettbewerbs. Betrachtet man die Entwicklung von Computern und Software in den letzen Jahrzehnten, ist diese rasante Entwicklung jedoch nicht auszumachen.

Informatik und Software-Engineering haben in den letzten 15 bis 20 Jahren keine großen Neuentwicklungen hervorgerufen, sondern eher eine schleppende Weiterentwicklung durchgemacht. Sicherlich gibt es regelmäßig neue Softwarelösungen, beispielsweise von Windows NT zu Windows 7, doch beim Endanwender kommen keine bedeutenden Fortschritte an – Bedienung und Grundfunktionen des Betriebssystems beispielsweise sind im Kern gleichgeblieben.

Die Informatik neigt dazu, Dinge, die es bereits seit den 70er Jahren gibt, unter neuem Namen neu zu erfinden. Zu diesen Hypes zählen beispielsweise die 4th Generation Languages, SOA oder auch Cloud Computing. Hier muss ein Reifeprozess stattfinden und die Branche an den Stellen weitermachen, an denen sie bereits vor einiger Zeit angekommen ist.

Die stetige Verbesserung des Preis-Leistungs-Verhältnisses bewirkt, dass bei gleichbleibender Leistung der Preis sinkt. Dies schlägt sich in sinkenden Tagessätzen und dem Trend zum Offshoring auch in der IT-Industrie nieder.

Dabei gilt für Informatik und Software-Engineering das gleiche Prinzip wie bei allen Hochtechnologie-Unternehmen: Primäres Ziel muss es sein, die Leistung zu verbessern; sekundäres, Einspareffekte sinnvoll zu nutzen. Um dies zu erreichen, bieten folgende drei Bereiche die richtigen Ansatzpunkte: 1. Werkzeuge und Standards, 2. Engineering-Prozesse und 3. Arbeitsteilung und Fertigungstiefe.

Werkzeuge können dabei sowohl Entwicklungsumgebungen und GUI-Builder als auch Programmiersprachen sein. Die Herausforderung dabei ist es, wirksame Standards zu etablieren, die einen stärkeren Werkzeugeinsatz und eine höhere Industrialisierung erlauben. So mangelt es etwa bis heute an einem verbindlichen Ressourcen-Format für GUIs in der Java-Welt.

Die Engineering-Prozesse umfassen insbesondere die vorgelagerten Phasen der Softwareerstellung, also die Anforderungsanalyse und die fachliche und technische Konzeption eines Systems.

Hierfür ist es elementar, die richtigen Aspekte, die im Rahmen agiler Verfahren erkannt wurden, mit den etablierten Verfahren zu kombinieren. Diese Aspekte können sich selbst steuernde Teams, exploratives Arbeiten und eine optimierte Nutzerabstimmung umfassen. Das Ziel ist es letztlich, die Engineering-Prozesse effektiver zu machen und zu besseren Ergebnissen zu führen.

Im Vergleich zur Automobilindustrie, bei der viele Teile von Spezialherstellern kommen, tendieren IT-Dienstleister noch immer dazu, alles selbst zu erstellen. Als Folge kann es zu Abstrichen bei der Qualität und zu einer geringeren Effizienz bei der Softwareerstellung kommen. Außerdem limitiert dies in gewissem Maße die technologische Entwicklung.

Um eine effektive Arbeitsteilung zu erreichen, ist primär eine Standardisierung in der Architektur notwendig. Es ist also eine anspruchsvolle Aufgabe, eine Arbeitsteilung zu identifizieren, die das Verbauen großer, vorgefertigter Teilkomponenten in Systemen erlaubt.

Diese Ziele in den Bereichen Werkzeuge, Prozesse und Fertigungstiefe anzugehen, ist die Herausforderung für das Software-Engineering in den nächsten Jahren.


Ähnliche Beiträge