Projektmanagement in der Praxis (Teil 1)

SW-Entwicklung ist ebenso Technik- wie Arbeitsgestaltung

06.03.1992

Das Verständnis des besonderen Charakters von Softwareprojekten und der Anforderungen, mit denen sich deren Gestaltung auseinanderzusetzen hat, erschließt sich nicht zuletzt aus dem Anwendungsbezug der entwickelten Produkte. Software liefert nicht nur technische Lösungen, sie strukturiert zugleich das Feld, in dem sie Anwendung findet. Dort, wo die Aufgaben von Menschen wahrgenommen werden - und dies ist ja noch immer zum weitaus größten Teil der Fall - heißt dies: Software-Entwicklung ist zugleich Technikgestaltung und Arbeitsstrukturierung.

Dies alles ist natürlich von Projekt zu Projekt in sehr unterschiedlichem Maße relevant, je nach den möglichen Auswirkungen, den der Einsatz der Software im Anwendungsfeld haben kann. Tendenziell gilt: In dem Maße, wie die Verfahren der Computerunterstützung zugleich umfassender und flexibler nutzbar werden, gewinnt die Anwendungssituation als Gestaltungsdimension an Bedeutung und muß im Prozeß der Software-Entwicklung Berücksichtigung finden.

Die Entwicklung von Software ist ein Prozeß, in den sowohl softwarebezogene als auch aufgabenbezogene Aspekte beziehungsweise Aktivitäten eingehen und aufeinander abgestimmt werden müssen. Dieser Doppelprozeß bezieht sich gleichermaßen auf die Gestaltung des softwaretechnischen Potentials als auch des Anwendungsfeldes.

Die Entwicklung benutzer- und aufgabengerechter Softwarelösungen erfordert also Anpassung von beiden Seiten: von softwaretechnischer Seite die Berücksichtigung der Anforderungen, die sich aus der Arbeitsaufgabe ergeben; auf der Seite der Gestaltung der Arbeitsaufgabe die Berücksichtigung des technischen Unterstützungspotentials.

Dort, wo Software Arbeit im kooperativen Zusammenhang unterstützt - und dies ist faktisch bei allen betrieblichen Anwendungen der Fall -, hat ihr Einsatz meist über den einzelnen Arbeitsplatz hinaus reichende Auswirkungen. Sie kann Arbeitsabläufe, Arbeitsteilungs- und Kompetenzstrukturen verändern. Software ist in diesem Fall nicht nur ein Arbeitsmittel, sondern ein Organisationsinstrument. Ihrer Entwicklung wächst damit eine betriebspolitische Signifikanz zu, das heißt sie berührt in ihrem Anwendungsfeld die bestehenden Einfluß- und Interessenverteilungen.

Diese arbeitsstrukturierende und betriebspolitische Bedeutung von Software hat nun ihrerseits Konsequenzen für den Prozeß der Entwicklung selbst: Sie stellt Anforderungen an die Gestaltung von Softwareprojekten, sie definiert deren Rahmenbedingungen.

Anforderungen ergeben sich etwa bezüglich der Konsensbildung, das heißt des Ausgleichs divergierender Interessen, die mit der Entwicklung und dem Einsatz der Software verbunden sind. Die Notwendigkeit zu solchem Interessenausgleich ergibt sich wie bei allen Entwicklungsprozessen aus den Wünschen, Zielvorstellungen und Erfahrungen, die Entwickler einerseits, Auftraggeber beziehungsweise Nutzer andererseits in den Entwicklungsprozeß einbringen. Bei der Software-Entwicklung stehen tendenziell technikimmanente Aspekte im Vordergrund, etwa geringe Beanspruchung von Speicherkapazität, Kompatibilität, professionelle Qualitätskriterien, Eleganz der Programme, bei den Nutzern dagegen aufgaben- und arbeitsbezogene Aspekte, beispielsweise die Erleichterung bei der Aufgabenerledigung, Belastungsreduzierung, Erweiterung oder Einschränkung des Gestaltungsspielraumes.

Abweichende Interessen können auch innerhalb der Software-Entwicklung bestehen, etwa zwischen hierarchisch übergeordneten und ausführenden Positionen oder zwischen den in den einzelnen Phasen des Entwicklungsprozesses Beschäftigten. Divergenzen entstehen aber vor allem zwischen einzelnen Gruppierungen von Nutzern, Viele Software-Entwicklungen berühren - zumindest potentiell - bestehende Arbeits- und Einflußstrukturen in Unternehmen, und zwar um so mehr, als der Einsatz von Software zu Veränderungen in den Aufgaben- und Arbeitsstrukturen führt beziehungsweise führen könnte. Allein die Möglichkeit solcher Veränderungen verleiht Softwareprodukten eine betriebspolitische Qualität, das heißt sie werden auf Interessenpositionen bezogen.

Die Entwicklung aufgabengerechter Software setzt die Berücksichtigung dieser unterschiedlichen Interessen voraus. Der Prozeß der Entwicklung von Software muß daher immer auch ein, Prozeß der Konsensbildung sein.

Vor dem Hintergrund dieser Interessendivergenzen sind nun wiederum die Lernprozesse zu sehen, die faktisch in jedem Software-Entwicklungsprojekt notwendig sind. Die Entwicklung aufgaben- und nutzungsgerechter Software setzt Wissen voraus:

- bei den Software-Entwicklern vor allem über die Aufgaben, die Bedingungen und Anforderungen der Arbeitssituation, die durch Softwareprodukte zu unterstützen sind;

- bei den Auftraggebern beziehungsweise Nutzern vor allem über das Leistungspotential und die Leistungsbeschränkungen der Software sowie über die sich daraus ergebenden Möglichkeiten und Konsequenzen für die Gestaltung ihrer Aufgaben.

Dieses Wissen ist im Regelfall nur unvollständig vorhanden, Lernprozesse sind erforderlich. Wesentlich ist dabei, daß diese Lernprozesse meist die Grenzen des eigenen Fachwissens überschreiten müssen. Informationsvermittlung spielt also eine große Rolle: aus dem Anwendungsbereich in den Entwicklungsbereich und umgekehrt sowie im Entwicklungsbereich selbst.

Solche Informationsvermittlung stößt auf strukturelle Schwierigkeiten, etwa das jeweilige Fachwissen und den Fachjargon auf beiden Seiten, Zeitmangel, Unterschätzung der Wissensanforderungen und interessengesteuerte Informationsvermittlung.

Im Regelfall spielen in diesen Lernprozessen die jeweiligen Kontrahenten eine zentrale Rolle. Für die Software-Entwickler sind die Auftraggeber beziehungsweise Nutzer wesentliche Informationsquelle und vice versa. Der (potentielle) Informant bringt spezifische Interessen ein, ist Partei. Der Systementwickler mag an einer bestimmten Hard- oder Softwarekonfiguration interessiert sein, der Nutzer an bestimmten arbeitsorganisatorischen Lösungen (häufig Beibehaltung des Status quo). Dies bedeutet, daß zu den allgemeinen Schwierigkeiten, die in diesen Lernprozessen überwunden werden müssen, zum Beispiel die Komplexitäten technischer Details, noch erschwerend hinzukommt, daß die Lernprozesse eingebettet sind in das Feld divergierender Interessen, in das faktisch jede Software-Entwicklung stößt. Diesen Schwierigkeiten gegenüber erweisen sich die formalisierten Instrumente der Wissensvermittlung, also Ist-Analysen, meist als inadäquat.

Erschwert werden diese Lernprozesse auch durch die Abstraktheit des Gestaltungsgegenstandes. Darin besteht ein wesentlicher Unterschied der Software-Entwicklung zu anderen Entwicklungsprozessen. Das Produkt, sein Leistungsprofil, die Anforderung, die daran gestellt wird, sind nur in abstrakten Termini beschreibbar. Diese lassen sich meist nicht nur vielfältig interpretieren, sie haben unter Umständen für einzelne Beteiligte gar keine oder sogar eine falsche Bedeutung. Natürlich stellt sich dieses Problem in gewisser Weise in allen Entwicklungsprozessen in ihren Frühphasen. Anders als im Software-Entwicklungsprozeß allerdings besteht meist die Möglichkeit, relativ rasch diese Abstraktheit - etwa durch Skizzen, Vorentwürfe etc. zu reduzieren und damit auch den Spielraum des Mißverstehens, unterschiedlicher Interpretationen etc. zu verringern.

Der Wunsch noch eindeutigen Vorgeben

Diese Abstraktheit erschwert den Austausch der notwendigen Informationen zwischen Software-Entwicklern und Anwendern, und zwar in beiden Richtungen. Nicht nur für die Anwender ist es schwierig, den besonderen Charakter der Anforderung, die an die Technik gestellt werden, dem Software-Entwickler zu vermitteln, auch umgekehrt bereitet es Schwierigkeiten, das Leistungspotential der Technik in vollem Maße anschaulich und nachvollziehbar darzustellen. Vor allem dürfte die Abstraktheit des Gestaltungsgegenstandes die systematische Ermittlung aller Interdependenzen, Besonderheiten und Abhängigkeiten, die bei der jeweiligen Anwendung der im Technik zu berücksichtigen sind, ebenso wie auch den Wunsch der Umwandlung von allgemeinen Zielen und Wünschen in präzise, eindeutige Vorgaben für die Software-Entwicklung erschweren.

All dies schlägt um so mehr zu Buche, als Softwareprodukte zunehmend komplex werden: durch ihren Umfang, durch die Zahl der zu berücksichtigenden Variablen, durch die Integration von Teilsystemen, durch die Bedeutung der Kompatibilität mit bereits eingesetzter Hard- und Software, Entsprechend wird auch die Durchführung von Entwicklungsprojekten zunehmend komplexen.

Man könnte von einer strukturellen Komplexität sprechen: Software-immanente Gegebenheiten, das technische Umfeld, die qualifikatorischen und motivationalen Voraussetzungen bei den Nutzern sowie die Struktur des Anwendungsfeldes und der Aufgaben müssen gleichermaßen berücksichtigt und aufeinander bezogen werden.

Die Anforderungen, die sich aus dieser strukturellen Komplexität ergeben, werden durch die prozessuale Komplexität des Software-Entwicklungsprozesses verstärkt. Diese ergibt sich vor allem aus der Notwendigkeit zu ständigen Feedback-Prozessen und Korrekturschleifen. Es gilt, die im fortschreitenden Entwicklungsprozeß gemachten Erfahrungen auf die vorangegangenen. Entwicklungsschritte zurückzubeziehen, was möglicherweise zu retrospektiven Korrekturen, etwa in der Definition der Zielvorgaben, führen kann.

Aus dieser Komplexität ergeben sich Anforderungen an die Gestaltung des Software-Entwicklungsprozesses, an die Regelung der Arbeitsteilung, der Kooperationsbezüge und auch ihres Ablaufs. Dies gilt sowohl innerhalb des Entwicklungsbereiches als auch für die Beziehung zum Anwendungsfeld. Dabei zeichnet sich ein Spannungsverhältnis ab zwischen der Notwendigkeit einer zunehmenden Arbeitsteiligkeit in der Organisation der Entwicklungsprozesse und der Notwendigkeit zur Integration. Fragen der Verteilung und Abgrenzung der Zuständigkeiten und Aufgaben sowohl im Entwicklungsbereich als auch zwischen Entwicklungs- und Anwendungsbereich bekommen zentrales Gewicht. Ein Spannungsverhältnis besteht auch in der prozessualen Dimension zwischen der Notwendigkeit zu verbindlichen Zielsetzungen und Vorgaben sowie der Notwendigkeit ständiger Korrekturen im Laufe des Entwicklungsprozesses. Und schließlich steht die Gestaltung von Software-Entwicklungsprojekten unter der Zielsetzung der Entwicklung menschen- und aufgabengerechter Software vor der Anforderung, einerseits der effektiven Organisation des technischen Entwicklungsprozesses, andererseits der wechselseitigen Abstimmung vom Potential der Technik und der Möglichkeiten zur Umgestaltung der Arbeit, gerecht zu werden.

Wie lassen sich in der Praxis diese Anforderungen bewältigen? Mit dieser Frage werden sich die folgenden Beiträge auseinandersetzen: Was bedeutet dies für die Bestimmung der Zielsetzungen, der Anforderungsspezifikation und des voraussichtlichen Projektvolumens; welche Konsequenzen hat dies für Projektorganisation und Projekt-Management, für Qualitätssicherung und Personaleinsatz? Was wird getan, um die notwendigen Qualifikationen in dem Entwicklungsteam zu gewährleisten? Wie werden auftretende Konflikte verarbeitet? Und schließlich: Wie tragen diese Maßnahmen zum Erfolg der Softwareprojekte bei? (wird fortgesetzt)

*Professor Friedrich Weltz ist Geschäftsführer der Sozialwissenschaftlichen Projektgruppe, München, und Honorarprofessor an der Universität Göttingen; Rolf Ortmann ist Mitarbeiter der Sozialwissenschaftlichen Projektgruppe, München.