Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Faktor Mensch!

Mehr als die Hälfte aller Softwareprojekte sind nicht erfolgreich [PRO]. Was sind die Gründe dafür? Was zeichnet diese gescheiterten – meist großen – Projekte aus und wie kann man deren Komplexität begegnen? Wie bekommt man Abhängigkeiten in den Griff? Reicht es aus, wenn entsprechende Werkzeuge eingesetzt werden? Oder muss mehr getan werden? Der Artikel zeigt auf, dass der Mensch stets der entscheidende Faktor bei der Komplexitätsbewältigung bleibt und wie wichtig die Organisationskultur und deren Werte in diesem Zusammenhang sind.
Author Image
Marco Hampel

Software Quality Coach


  • 27.11.2020
  • Lesezeit: 9 Minuten
  • 22 Views

Die Größe und Komplexität von Projekten definiert sich nicht nur durch die Anzahl der Teammitglieder oder der eingesetzten Technologien, sondern wird mehrheitlich durch die beteiligten Organisations- und Kommunikationspunkte bestimmt. Eine wissenschaftliche Begründung dafür liefert das Gesetz von Conway, wonach Strukturen von Systemen durch die Kommunikationsstrukturen der umsetzenden Organisationen geprägt sind [CON].

Die Komplexität wird daher ganz wesentlich durch die damit auftretenden Abhängigkeiten bestimmt. Ein entscheidender Erfolgsfaktor für eine erfolgreiche Projektabwicklung ist daher das Management der Abhängigkeiten, die unweigerlich auftreten, wenn mehrere Personen oder Teams zusammenarbeiten.

Zentral versus dezentral

Zentrale Ansätze, bei denen Planung an einer Stelle stattfindet und Entscheidungen von wenigen getroffen werden, sind häufig wenig hilfreich: Viele Dinge werden schlicht übersehen und das schlägt schnell durch ungeplante Mehraufwände und somit zusätzliche Kosten zu Buche. Der aus Kundensicht entscheidende Nachteil ist aber die mangelnde Qualität des gelieferten Produkts, da die Fehlerhäufigkeit steigt.

Wir bevorzugen daher in unseren Projekten den dezentralen Weg. Jeder soll sich in seinem Wirkungsbereich mit seinem speziellen Fachwissen und seinen Erfahrungen einbringen. Das funktioniert aber nur, wenn jeder als Teamplayer agiert, (Selbst-)Verantwortung übernimmt und sich auch als aktiver „Kommunikations-Knotenpunkt” im Projekt versteht. Dieses Bewusstsein ist keine Selbstverständlichkeit. Daher sehen wir die wesentliche Aufgabe unserer Führungskräfte in der strategischen Arbeit, nämlich permanent die dafür nötigen Unternehmenswerte zu fördern und die Mitarbeiter zu diesem Verhalten zu befähigen.

Die Projekte und Herausforderungen

Obwohl unsere Projekte fachlich unterschiedlichen Branchen zugeordnet sind, weisen sie doch Gemeinsamkeiten auf: bestehend aus mehreren Teams, verteilt über zahlreiche Standorte in verschiedenen Ländern, unterschiedlich eingesetzte Technologien, eine Vielzahl externer Zulieferer und ein internationales Projektumfeld. Das stellt die Projektorganisation täglich vor neue Herausforderungen im Bereich Information und Kommunikation.

Eines der Projekte ist inzwischen auf acht interne Teams mit mehr als 70 Mitarbeitern und nochmals rund der doppelten Anzahl an externen Mitarbeitern im Projektumfeld angewachsen.

Während die Hinzunahme eines zweiten Teams meist noch sehr reibungslos erfolgt, funktionieren ab dem dritten Team die vormals erfolgreichen Methoden plötzlich nicht mehr so richtig und die Effizienz im Gesamtprojekt beginnt zu sinken. Beispielsweise kann es passieren, dass Deployments eines Teams immer häufiger Inkonsistenzen und Fehler in einem anderen Team auslösen – klassische, nicht ausreichend bedachte Seiteneffekte. Kostspielige Fehlersuche und Rebuilds sind die Folge. Schnell kann dadurch auch die Stimmung und Motivation im Gesamtprojekt darunter leiden. Das bewirkt wiederum eine stetig abnehmende Qualität, was natürlich auch dem Kunden nicht lange verborgen bleibt.

Um dem entgegenzuwirken, setzen wir verstärkt auf dezentrale Ansätze und appellieren an die Eigenverantwortung der Mitarbeiter. Das hört sich wie eine Selbstverständlichkeit an, oder wie eine „Ausrede” des Managements, welches damit die Verantwortung auf die Leistungsfähigkeit der operativen Arbeitsebene delegiert. Tatsächlich müssen dafür aber die notwendigen organisatorischen Rahmenbedingungen geschaffen werden, die offene Kommunikation und Fehlerkultur erlauben und sogar unterstützen. Diese Kommunikation stellt nicht nur die Basis erfolgreicher Projektarbeit dar, sondern ermöglicht allen Projektbeteiligten eine konstruktive und wertschätzende Zusammenarbeit.

Der monetäre Erfolg und die kundenseitige Zufriedenheit lassen sich auch an den folgenden Auswirkungen festmachen:

  • Da ausreichendes Wissen über Abhängigkeiten vorhanden und sichtbar ist, können wir das aktiv beim Testen und der Qualitätssicherung berücksichtigen.
  • Brüche in der Software können damit rechtzeitig erkannt und beseitigt werden. Damit ist es uns auch gelungen, die kundenseitig gemeldete Fehlerrate deutlich zu reduzieren.
  • Durch signifikantes Reduzieren von Nacharbeiten sparen wir uns nicht nur Zeit und Geld, auch die Motivation und Zufriedenheit im Team wird dadurch spürbar erhöht.

Kultur, Kommunikation und Organisation

Wie kann man nun in großen Projekten dafür sorgen, dass jeder stets zu den Informationen kommt, die für erfolgreiches Arbeiten benötigt werden? Mit zunehmender Anzahl der Projektbeteiligten steigen die Komplexität und der Kommunikationsaufwand exponentiell, sodass es immer schwieriger wird, den Überblick zu bewahren. Agile Methoden, wie etwa Scrum, haben sich in der Praxis zwar bewährt, trotzdem ist es nicht einfach, die gewünschte Planungs- und Umsetzungsqualität einzuhalten.

Die folgenden drei Verfahren kommen bei uns situationsbezogen zum Einsatz:

Ein gängiger Ansatz liegt in einer Erweiterung der Projektorganisation, indem eine zusätzliche Ebene eingezogen wird. Diese kann aus übergeordneten Rollen bestehen. Hierbei ist „übergeordnet” nicht notwendigerweise hierarchisch zu verstehen. Es kann sich dabei auch um bestehende Teammitglieder handeln, die sich über die aktuellen Themen abstimmen. Eine solche Vorgehensweise ist mit der Idee von Scrum-of-Scrum vergleichbar (siehe Abbildung 1).

Abb. 1: Scrum-of-Scrum

Als Alternative können einzelne Teammitglieder ausgewählt werden, die regelmäßig an den Grooming-, Planungs- sowie den Daily Stand-up-Meetings der jeweils anderen Teams teilnehmen. Als eine Art Botschafter sind sie dann für den Wissenstransfer zuständig. Das funktioniert aber nur bei Projekten mit wenigen Teams und ist für große Projekte mit vielen Teams nur schwer skalierbar.
Eine weitere Möglichkeit liegt in der Team- Rotation. Teammitglieder werden zyklisch (zeitlich begrenzt) in jeweils anderen Teams eingesetzt und dienen danach als Wissensträger. Ebenfalls können auch Pair-Programming sowie Code Reviews über Teamgrenzen hinweg in Betracht gezogen werden.

Bei allen Verfahren ist es nicht nur wichtig, dass kommuniziert wird, sondern auch wie diese Kommunikation erfolgt (siehe Abbildung 2). Die Herausforderungen sowie mögliche Lösungsansätze sollen stets objektiv und sachlich dargestellt und behandelt werden, um einen Mehrwert für die beteiligten Organisationen zu generieren. Diese Herangehensweise inkludiert auch eine entsprechende Vorbereitung der Themen, um dem Gegenüber die Wertschätzung auszudrücken (Harvard-Konzept, s. [HAR]).

Abb. 2: Vernetzte Kommunikation

Abhängigkeiten managen

Wir verstehen eine Organisation als (komplexes, neuronales) Netzwerk, an dessen Knoten die Menschen stehen. Jeder Akteur ist gleichzeitig Sender und Empfänger. Wir haben es also mit einem gerichteten Graphen zu tun, in dem jeder Knoten von den Vorgängerknoten abhängt und seinerseits die nachfolgenden Knoten beeinflusst (siehe Abbildung 3).

Abb. 3: Kommunikationsknoten und Ausrichtung

Natürlich handelt es sich dabei immer um eine bidirektionale Kommunikation. Allerdings wollen wir deutlich machen, dass es die „aktive” Verantwortung des „Senders” ist, dass seine „Botschaft” von den Nachfolgern gehört, verstanden und auch zu einem späteren Zeitpunkt wieder aufgefunden werden kann.

Die folgenden Punkte sind wesentliche Bestandteile unserer Unternehmenskultur. Dabei erfordert es allerdings ständiger Anstrengungen aller Beteiligten, damit dieses Wissen und Verhalten auch in den Köpfen der Mitarbeiter verankert bleibt, und stellt eine der Hauptaufgaben unserer Führungskräfte dar:

  • Stelle organisatorisch sicher, dass (möglichst) alle Abhängigkeiten und Abweichungen dokumentiert werden.
  • Sorge dafür, dass sich die Mitarbeiter jederzeit darüber bewusst sind, welche Konsequenzen ihre Arbeit auf andere haben kann. Auswirkungen werden daher nicht einfach nur dokumentiert, sondern das Wissen auch aktiv verteilt.
  • Stelle die notwendigen Werkzeuge zur Verfügung, sodass sich jeder leicht ein Bild davon machen kann, wovon seine aktuelle Arbeit abhängt (Visualisierung).

In unserem Unternehmen ermöglichen wir unseren Mitarbeitern, Kommunikation offen zu leben. Das beinhaltet nicht nur Kommunikation innerhalb der Organisation, sondern auch gegenüber unseren Kunden und Partnern. Eigenverantwortung ist dabei nur eine Säule des Erfolgs, ebenso wie Unterstützung und Training.

Besonders im Bereich Testen und Qualität ist es von entscheidender Bedeutung, Kommunikation zu beherrschen, da hier oftmals nicht nur „gute” Nachrichten überbracht werden. Dabei spielt es keine Rolle, ob hier im Team, über Teamgrenzen oder mit einem Kunden kommuniziert wird – die Kommunikation muss stets konstruktiv erfolgen.

Zusammengefasst ergibt sich daraus der folgende Grundsatz für unsere Arbeitsweise, den jeder einzelne Mitarbeiter verinnerlicht haben muss:

  • Meine Arbeit basiert auf der Arbeit von anderen <=> Meine Arbeit ist die Basis für andere

Unser Fazit

Fortlaufendes Wachstum mit der Erweiterung um zusätzliche Teams in einem Projekt führt rasch zu immer größeren Qualitätsproblemen. Diese beschränkten sich nicht nur auf die Software, sondern beginnen häufig schon bei der Anforderungsanalyse/-erhebung (Requirements Engineering). Unvollständige, falsche oder inkonsistente Anforderungen setzen sich dann über den gesamten Umsetzungsprozess fort und wirken wie ein Multiplikator in der finalen Fehlerrate.

Damit ein Projekt gemeinsam erfolgreich abgeschlossen werden kann, muss die Erwartungshaltung von Anfang an klar kommuniziert werden. Das betrifft hier nicht nur niedergeschriebene Anforderungen, die relativ einfach validiert und verifiziert werden können, sondern auch sehr viele gefühlte (weiche) Qualitätskriterien, die bereits im Laufe der Entwicklung zutage treten. Hierbei geht es vor allem darum, wie das „finale” Produkt (Potentially Shippable Product [PSP]) vom Kunden wahrgenommen wird. Oftmals werden mögliche Abweichungen (häufig nur durch Unwissenheit oder Verunsicherung ausgelöst) schon durch schnelle und konstruktive Kommunikation einfach aus der Welt geschafft.

Wir wollen noch einmal klar hervorheben, dass ganz wesentlich für den Erfolg die innere Einstellung (das „Mindset”) der Mitarbeiter ist: nämlich sich stets eigenverantwortlich im Kommunikationsprozess zu sehen. Um das auch dauerhaft zu gewährleisten, muss seitens der Organisation permanent investiert werden. Dabei ist es wichtig, diese Kommunikation zielgerichtet anzubringen (siehe Kasten 1). Damit hat sich für uns
auch die Regel bewahrheitet: „80 Prozent am Erfolg trägt die Organisation bei, 20 Prozent kommen vom richtigen Werkzeug!”

Kasten 1: Empfehlungen zur innerbetrieblichen Kommunikationskultur

Referenzen

[CON]
Mel Conway‘s Law, siehe:
https://www.melconway.com/Home/Conways_Law.html

[HAR]
R. Fisher, W. Ury, B. M. Patton, Das Harvard-Konzept, DVA, 3. Aufl., 2018

[PRO]
https://vitalitychicago.com/blog/agile-projects-are-more-successful-traditional-projects/

[PSP]
Potentially Shippable Product, siehe:
https://www.mountaingoatsoftware.com/blog/what-does-it-mean-to-be-potentially-releasable

. . .

Author Image

Marco Hampel

Software Quality Coach
Zu Inhalten

Marco Hampel unterstützt in seiner Rolle als Software Quality Coach agile Entwicklungsteams dabei, qualitativ hochwertige Softwareprodukte zu liefern. Seit mehr als eineinhalb Jahrzehnten sind erstklassige Softwareprojekte und eine hohe Kundenzufriedenheit sein Anliegen.

Author Image
Zu Inhalten
st Testmanager bei Cloudflight. Er arbeitet seit über zwei Jahrzehnten als Projektmanager, Requirements Engineer und Product Owner an IT-Projekten und Unternehmensentwicklungen.

Artikel teilen

Nächster Artikel
Reguläre Ausdrücke in Java