Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

12.01.1979

Die Problematik der Projektüberwachung bei der Software-Entwicklung

Software-Entwicklungsprojekte unterscheiden sich von anderen Entwicklungsprozessen. Sie haben ihre eigene Gesetzmäßigkeit, und diese ist nur schwer zu erfassen. Das bekommen wir immer wieder zu hören. Aber einiges haben sie doch mit anderen ingenieurmäßigen Vorhaben gemeinsam, vielleicht mehr als die meisten Software-Entwickler wahrhaben wollen.

Zum einen unterliegen sie dem Zwang der Wirtschaftlichkeit, das heißt, sie müssen mit begrenzten Mitteln in einer vorgegebenen Zeit ein bestimmtes Ergebnis liefern auch wenn das Ergebnis nur schwach umschrieben ist. Zum zweiten sind sie auf die Quantität und Qualität vorhandener Werkzeuge angewiesen. Diese Werkzeuge können Hard oder Soft sein. Der Entwicklungsrechner ist ein hartes Werkzeug, die Programmiersprache ein weiches. Je besser die Werkzeuge, desto leichter und effizienter wird die Arbeit des Entwicklers.

Wie in anderen industriellen Vorhaben kann also Menschenarbeit durch Maschinen erleichtert beziehungsweise reduziert werden. Es dauert viel länger, ein Programm in der Assemblersprache als in COBOL oder PL/1 zu schreiben, ebenso wie es länger dauert, einen Nagel mit einem zu leichten Hammer einzuschlagen. So wie der Zimmermann mit dem richtigen Hammer effektiver ist, wird der Programmierer mit der richtigen Sprache produktiver. Allerdings darf er natürlich nicht der Versuchung unterliegen, alle Arbeiten mit einem Werkzeug erledigen zu wollen, zum Beispiel den Nagel mit einem Schraubenzieher treiben.

Zum dritten verlangt die Software-Entwicklung ab einer bestimmten Größenordnung eine funktionsgerechte Arbeitsteilung. Man braucht Analytiker, Ingenieure, Programmierer, Tester und technische Hilfskräfte - jeder mit einer bestimmten Funktion und jeder auf den anderen angewiesen. Je effizienter die Arbeitsteilung, desto weniger die Reibungsverluste.

Zum vierten braucht die Software-Entwicklung ebenso wie andere Entwicklungsprozesse eine standardisierte Methodik, damit sich alle Beteiligten verständigen können. Der Turm von Babel ist ein abschreckendes Beispiel mangelnder Normierung. Nur eine allgemein anerkannte, normierte Vorgehens- und Ausdrucksweise erlaubt es unseren Architekten, Ingenieuren und Handwerkern, Hochhäuser zu bauen. Also sind normierte Methoden und Kommunikationsformen, sprich Dokumentation, in der Software-Entwicklung ebenso erforderlich wie in anderen Konstruktionsvorhaben.

Software-Systeme haben Kriterien, die unbedingt zu erfüllen sind, zum Beispiel die Programmlogik muß korrekt, die Module testbar und die Daten sicher sein. Darüber hinaus gibt es Kriterien, über die man streiten kann, ob sie einzuhalten sind oder nicht. - Kriterien wie Modalität, Portabilität und Effizienz. Wenn genügend Zeit und Geld vorhanden sind, werden sie vielleicht angestrebt, ansonsten werden sie dem Zwang der Wirtschaftlichkeit geopfert, und später beklagt man die hohen Betriebs- und Wartungskosten. Aber inzwischen hat das System einen Zweck erfüllt, und es ist müßig, darüber zu streiten, ob man sie nicht hätte besser entwickeln sollen.

Das, was die Software-Technologie von anderen Technologien wirklich unterscheidet, ist nur der Stand ihrer Entwicklung, -Während andere Disziplinen schon längst normiert, organisiert, gemessen und mit Werkzeugen versorgt sind, steckt die Software-Technologie noch in den Kinderschuhen. Der Zwang zur Wirtschaftlichkeit ist dort, aber es fehlen adäquate Werkzeuge, es fehlen die Funktionsbeschreibungen, ohne die eine sinnvolle Arbeitsteilung, sprich Organisation, nicht möglich ist, es gibt keine wirklich allgemein akzeptierten Nonnen beziehungsweise Methoden, sonst gäbe es keinen Methodenstreit, und es sind nur wenige, die sich mit der Qualitätsbewertung von Software-Produkten beschäftigen, und sie sind sich darin nicht einig, was genau zu bewerten ist.

Das Problem der Software-Technologie ist, schlicht gesagt, Unreife. Wir befinden uns im Übergang vom reinen Handwerkertum zur Frühindustrialisierung. Einerseits sind die Produkte zu groß, um noch von einzelnen Handwerkern bewerkstelligt zu werden, aber andererseits fehlen die Mittel und die Organisationsformen, um Software industriell zu fertigen. Darin liegen die Ursachen der Software-Krise und zugleich die Schwierigkeiten des Software-Managements:

Der Manager muß Werkzeuge einsetzen, auch wenn sie primitiv oder hinfällig sind und von den bisherigen Handwerkern abgelehnt werden. Er muß Funktionen und Rollen definieren, auch wenn andere seine Definitionen in Frage stellen. Er muß sich für eine Methodik entscheiden und sie konsequent einhalten, auch wenn sie vielleicht nicht die optimalste ist. Die Praxis wird schon beweisen, weiche Methoden lebensfähig sind und welche nicht. Schließlich muß er den Mut haben, Qualitätsmermale zu postulieren und diese zu kontrollieren, auch über den Protest seiner Mitarbeiter hinweg.

Kurz gesagt, was wir brauchen, sind harte Software-Manager, die bereit sind, unpopuläre Maßnahmen zu ergreifen, das heißt das Handwerkertum, sprich freies Programmierertum, durch die Industrialisierung, sprich ingenieurmäßige Software-Herstellung, zu ersetzen. Statt wie früher die Muskelkraft der Menschen zu bändigen und den Maschinen unterzuordnen, geht es jetzt darum, den Intellekt der Menschen zu bändigen und den neuen Werkzeugen und Methoden unterzuordnen. Wenn dies gelingt, wird sich die Anpassung der Software-Technologie an den anderen herkömmlichen Technologien von alleine ergeben, und die Probleme, die das Software-Management heute am meisten plagen, nämlich die Abhängigkeit von einzelnen Individuen, werden ein für allemal verschwinden.

*Harry Sneed ist President of Software Research Ass., San Francisco, und Leiter der "Ersten Software-Testfabrik" in Budapest.