Einführung
Dieses Prinzip betont, wie wichtig es ist, projektweite Kommunikation zu fördern. Dazu müssen Teams
richtig organisiert und effektive, der Zusammenarbeit förderliche Umgebungen aufgebaut werden.
|
|
Vorteile
|
-
Teamproduktivität
-
Bessere Verbindung zwischen Geschäftsbedürfnissen, Entwicklung und Betrieb von
Softwaresystemen.
|
Muster
|
-
Menschen zu Bestleistung motivieren
-
Selbst verwaltete Teams aufbauen
-
Funktionsübergreifende Zusammenarbeit (z. B. zwischen Analytikern, Entwicklern,
Testern) fördern
-
Effektive, der Zusammenarbeit förderliche Umgebungen bereitstellen
-
Sich weiterentwickelnde Artefakte und Aufgaben verwalten, um die Zusammenarbeit
sowie die Fortschritts- und Qualitätsüberwachung in integrierten Umgebungen zu
verbessern.
-
Teams für Geschäft, Software und Betrieb integrieren
|
Antimuster
|
-
Entwickler dazu bewegen, extrem lang, einschließlich der Wochenenden, zu arbeiten
-
Hochspezialisierte Fachleute mit leistungsstarken Tools ihre Arbeit machen lassen
und die Zusammenarbeit zwischen den Teammitgliedern sowie die Integration zwischen
den verschiedenen Tools begrenzen. Von folgender Annahme ausgehen: Wenn nur jeder
seine Arbeit gut macht, ist auch das Endergebnis gut.
|
|
Diskussion
Software wird im Idealfall von kompetenten und motivierten Personen in enger Zusammenarbeit entwickelt. Viele komplexe
Systeme erfordern die Zusammenarbeit mehrerer Stakeholder mit unterschiedlichem Know-how, und bei den größten Projekten
werden oft geografische und zeitliche Grenzen überschritten, wodurch die Komplexität des Entwicklungsprozesses erhöht
wird. Aus diesem Grunde stehen die Faktoren Mensch und Zusammenarbeit, verschiedentlich auch als "weiches" Element der
Softwareentwicklung bezeichnet, im Mittelpunkt der so genannten agilen Softwareentwicklung. Die Anwendung dieses
Prinzips wirft viele Fragen auf:
-
Wie werden Menschen zu ihrer Bestleistung motiviert?
-
Wie funktioniert die Zusammenarbeit in Softwareteams, die an einem Ort arbeiten, und in verteilten
Softwareteams?
-
Wie funktioniert die teamübergreifende Zusammenarbeit zwischen Teams, die für Geschäft, Softwareentwicklung und
IT-Operationen verantwortlich sind?
Der erste Schritt einer effektiven Zusammenarbeit besteht darin, einzelne Personen zu ihrer besten Leistung zu
motivieren. Der Begriff der selbst verwalteten Teams ist beliebt in der agilen Softwareentwicklung (siehe Konzept: Agile Verfahren und RUP). Er basiert auf dem Konzept, ein Team auf seine
Aufgabe zu verpflichten und ihm dann die Entscheidungsfreiheit für alle das Ergebnis direkt betreffenden Fragen zu
geben. Wenn Menschen das Gefühl haben, dass sie für das Endergebnis wirklich verantwortlich sind, sind sie viel
motivierter, gute Arbeit zu leisten. Das Prinzip der agilen Entwicklung kann man wie folgt formulieren: "Beauftrage
motivierte Menschen mit einem Projekt. Gib ihnen die Umgebung und die Unterstützung, die sie benötigen, und vertraue
darauf, dass sie ihre Arbeit machen."
Der zweite Schritt besteht darin, funktionsübergreifende Zusammenarbeit zu fördern. Softwareentwicklung ist
Teamarbeit. Bei einem iterativen Ansatz erhöht sich die Notwendigkeit, eng als Team zusammenzuarbeiten. Es geht darum,
die Grenzen zwischen Analytikern, Entwicklern und Testern, die es häufig gibt, zu überwinden und die Verantwortlichkeit
dieser Rollen zu erweitern, um eine effektive Zusammenarbeit in einer Umgebung mit kurzen Fertigungszeiten
sicherzustellen. Es muss sichergestellt sein, dass alle Beteiligten Auftrag und Vision des Projekts verstehen.
Wenn Teams wachsen, ist es erforderlich, ihnen effektive Umgebungen für die Zusammenarbeit zur Verfügung zu
stellen. Diese Umgebungen vereinfachen und automatisieren die Erfassung von Messdaten und die Statusmeldungen, und
sie automatisieren das Build-Management und die Buchhaltung im Kontext des Konfigurationsmanagements. Diese Effizienz
bewirkt, dass weniger Zeit für Besprechungen aufgewendet werden muss, d. h., die Teammitglieder haben mehr Zeit für
produktive und kreative Aktivitäten. Diese Umgebungen sind auch in anderer Weise geeignet, eine effektivere
Zusammenarbeit zu gewährleisten, nämlich dadurch, dass sie die Kommunikation vereinfachen und örtliche und zeitliche
Abstände zwischen verschiedenen Teammitgliedern überbrücken. Beispiele für eine solche Umgebung reichen von gemeinsam
genutzten Projekträumen bis hin zu Netz- oder webbasierten Lösungen, wie z. B. Wikis oder integrierten
Entwicklungsumgebungen (IDE).
Je kritischer Software für die geschäftlichen Kernprozesse wird, desto höher ist der Bedarf an effektiver
Zusammenarbeit zwischen Teams. In den meisten Organisationen kommunizieren die Teams, die für die Leitung des
Geschäfts, die Entwicklung der Anwendungen und die Ausführung der Anwendungen verantwortlich sind, nicht ordentlich
miteinander.
Das letztendliche Ziel im Kontext dieses Prinzips ist die integrierte Zusammenarbeit zwischen den Teams für
Geschäft, Software und Betrieb. Da Software immer wichtiger wird für die Art der Geschäftsführung, muss eine enge
Zusammenarbeit zwischen den Teams, die Einfluss auf die aktuelle und künftige Geschäftsführung haben, den Teams, die
unterstützende Softwaresysteme entwickeln, und den Teams, die IT-Operationen ausführen, geschaffen werden. In den
meisten Unternehmen ist die Kommunikation zwischen diesen drei Gruppen unzureichend.
|