Qgelm

Agile Softwareentwicklung: Entwickler und Controller gehören an einen Tisch

Originalartikel

Backup

<html> <header class=„article-header“><h1 class=„articleheading“>Agile Softwareentwicklung: Entwickler und Controller geh&#246;ren an einen Tisch</h1><div class=„publish-info“> Stefan Adolf</div></header><figure class=„aufmacherbild“><img src=„https://heise.cloudimg.io/width/700/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/1/4/1/5/8/4/playmobil_Sitzung_Beirat_Gremium_Konferenz-ceb62c78e9b78c28.jpeg“ srcset=„https://heise.cloudimg.io/width/700/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/1/4/1/5/8/4/playmobil_Sitzung_Beirat_Gremium_Konferenz-ceb62c78e9b78c28.jpeg 700w, https://heise.cloudimg.io/width/1050/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/1/4/1/5/8/4/playmobil_Sitzung_Beirat_Gremium_Konferenz-ceb62c78e9b78c28.jpeg 1050w, https://heise.cloudimg.io/width/1500/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/1/4/1/5/8/4/playmobil_Sitzung_Beirat_Gremium_Konferenz-ceb62c78e9b78c28.jpeg 1500w, https://heise.cloudimg.io/width/1920/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/1/4/1/5/8/4/playmobil_Sitzung_Beirat_Gremium_Konferenz-ceb62c78e9b78c28.jpeg 1920w“ alt=„5 Playmobil-Figuren um einen runden Tisch“ class=„img-responsive“ referrerpolicy=„no-referrer“ /></figure><p><strong>Mit agiler Softwareentwicklung und Controlling sollen Projekte reibungslos ablaufen. In der Praxis geht das aber h&#228;ufig schief &#8211; warum eigentlich?</strong></p><p>Klassisches Controlling und agile Development-Methoden entstammen unterschiedlichen Welten, verfolgen aber grunds&#228;tzlich dasselbe Ziel: Softwareentwicklungsprojekte detailliert planen und flexibel aussteuern. In der Praxis erweist sich das Zusammenspiel aufgrund der unterschiedlichen Ans&#228;tze aber h&#228;ufig als schwierig. Viel zu oft laufen Aufwand und Kosten aus dem Ruder, obwohl das Coding in kleinen, agilen Schritten stattfindet und dank regelm&#228;&#223;iger Meetings scheinbar jedes Problem besprochen wird. Was l&#228;uft da schief und wie l&#228;sst sich das verhindern?</p><p>Dass Projekte egal welcher Art und Gr&#246;&#223;e von einer soliden Planung profitieren, wissen sowohl Projektmanager als auch Entwicklerinnen und Entwickler. Jedoch ist die jeweilige Herangehensweise durchaus verschieden. Die Anforderungen kommen aus unterschiedlichen Richtungen, und nicht zuletzt gehen auch die Meinungen dar&#252;ber auseinander, wann ein erreichtes Ergebnis als gut bewertet werden kann. Das f&#252;hrt h&#228;ufig zu einer un&#252;berschaubaren Lage &#8211; ein Blick auf die Details verr&#228;t, warum.</p><h3 class=„subheading“ id=„nav_trotz_agiler0“>Trotz agiler Entwicklung werden Probleme zu sp&#228;t erkannt</h3><p><a href=„https://www.heise.de/thema/Agile-Softwareentwicklung“><strong>Agile Development-Methoden [1]</strong></a> haben die Art und Weise, wie Software entwickelt wird, in den letzten Jahren entscheidend ver&#228;ndert. Auch wenn nicht in jedem Unternehmen ausschlie&#223;lich Scrum Master und Agile Coaches f&#252;r die Strukturierung der Entwicklungsprojekte verantwortlich sind, ist die von Major Releases getriebene Softwareentwicklung in der unternehmerischen Praxis kaum noch anzutreffen. Und das hat gute Gr&#252;nde: Agile Methoden sind effizienter, transparenter und f&#252;hren schneller zu verwertbaren Ergebnissen.</p><p>Im Wesentlichen geht es darum, durch iterative Schritte, Code Reviews und Tests potenzielle Fehlerquellen fr&#252;her zu erkennen und entsprechend gegenzusteuern. So werden zu Beginn Projektvisionen klar ausformuliert, Anforderungen katalogisiert und Aufgaben priorisiert. In regelm&#228;&#223;igen Meetings diskutiert das Team m&#246;glichst alle Details der in kleinere St&#252;cke zerlegten Projekte &#8211; von Akzeptanzkriterien &#252;ber Integrationsanforderungen bis hin zu Umsetzungsschwierigkeiten.</p><p>Wieso passiert es trotzdem, dass die Verantwortlichen oft erst sp&#228;t im Verlauf des Projektes Budget- und Zeitengp&#228;sse erkennen? Das Problem liegt meist nicht bei der Entwicklung, sondern vielmehr an deren ungen&#252;gender Integration ins Gesamtprojekt. Denn w&#228;hrend DevOps-Initiativen versuchen, Entwicklung und Betrieb schon fr&#252;h eng miteinander zu verzahnen, um sp&#228;tere Operations-Anforderungen von Beginn an in den Entwicklungsprozess einflie&#223;en zu lassen, finden sich entsprechende Initiativen auf der Business-Seite eher selten. Mit anderen Worten: Entwicklerinnen und Entwickler gestalten Software heute zumeist mit klar definiertem Scope, ma&#223;geschneidert f&#252;r die Kundenanforderungen. Jedoch sitzen sie in den seltensten F&#228;llen von Beginn an mit am Planungstisch &#8211; obwohl das sinnvoll w&#228;re, denn ihre Einsch&#228;tzungen und bevorzugten Herangehensweisen k&#246;nnen sowohl Zeit- als auch Kostenpl&#228;ne entscheidend beeinflussen. Allzu oft beschr&#228;nkt sich das gew&#252;nschte Feedback auf die Anzahl der ben&#246;tigten Sprints. Das greift allerdings zu kurz, denn die Softwareentwicklung ist ein kreativer Prozess, der sich schwer planen oder in enge Vorgaben pressen l&#228;sst &#8211; zumindest dann nicht, wenn der Anspruch an die Qualit&#228;t der Software hoch ist.</p><header class=„a-boxheader“ data-collapse-trigger=„“>Lesen Sie auch</header><div class=„a-boxtarget a-boxcontent“ data-collapse-target=„“><article class=„a-article-teaser a-article-teaser–horizontal-layout article-teaser–articlebox a-u-no-margin-bottom a-theme“ data-cid=„0“><a class=„a-article-teaserlink“ data-google-interstitial=„false“ href=„https://www.heise.de/ratgeber/Agile-Softwareentwicklung-Auf-welche-Arten-Agilitaet-schiefgehen-kann-5054837.html“ name=„meldung.newsticker.inline.article-teaser.1“ title=„Agile Softwareentwicklung: Auf welche Arten Agilit&#228;t schiefgehen kann“><figure class=„a-article-teaserimage-container“><div><strong><img alt=„“ height=„1031“ src=„https://static.wallabag.it/7862d1b7aff4c3b00f37212fefade4e0e2c4cf00/64656e6965643a646174613a696d6167652f7376672b786d6c2c253343737667253230786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f7376672725323077696474683d273639367078272532306865696768743d2733393170782725323076696577426f783d2730253230302532303639362532303339312725334525334372656374253230783d273027253230793d27302725323077696474683d27363936272532306865696768743d273339312725323066696c6c3d27253233663266326632272533452533432f726563742533452533432f737667253345/“ class=„c1“ width=„1834“ referrerpolicy=„no-referrer“ /></strong></div></figure><div class=„a-article-teasercontent-container“><header><h1 class=„a-article-teasertitle a-u-mb-1“><strong>Agile Softwareentwicklung: Auf welche Arten Agilit&#228;t schiefgehen kann</strong></h1></header></div>[2]</a></article></div><h3 class=„subheading“ id=„nav_technical_debt1“>Technical Debt definieren und einpreisen</h3><p>Es ist unvermeidlich, dass Softwareprojekte im Laufe der Zeit <a href=„https://www.heise.de/developer/artikel/Technische-Schulden-entstehen-einfach-so-3969279.html“><strong>Technical Debt (technische Schulden) anh&#228;ufen [3]</strong></a>. Bedingt durch Projektziel und Geschwindigkeit lassen sich im Prozess trotz &#252;berzeugender Vorteile nicht immer vollst&#228;ndige Testabdeckung, automatisiertes Testing, vollautomatische Main-Deployments und eine clevere Architektur sowie die reibungslose Orchestrierung von Updates aller Komponenten gew&#228;hrleisten. Um ein schnell wachsendes Projekt sp&#228;ter zu stabilisieren, m&#252;ssen solche Aufgaben unweigerlich nachgeholt werden.</p><p>Da sich technische Schulden nicht vermeiden lassen, gilt es f&#252;r das Controlling, sie einzupreisen und bei der regelm&#228;&#223;igen und mittelfristigen Planung zu ber&#252;cksichtigen. Im Idealfall r&#228;umen Projektverantwortliche Entwicklerinnen und Entwicklern regelm&#228;&#223;ige Sprints ein, um den Schuldenberg abzutragen. Wer das nicht tut, riskiert ein zunehmend instabiles System, das sich schwerer ver&#228;ndern und erweitern l&#228;sst. Je konsequenter und liberaler das Controlling technische Schulden behandelt, desto leistungsf&#228;higer agiert das Entwicklerteam im langfristigen Projektverlauf. Auftretende Probleme lassen sich beseitigen, ohne das gesamte Projekt aus der Bahn zu werfen.</p><header class=„a-boxheader“ data-collapse-trigger=„“>Lesen Sie auch</header><div class=„a-boxtarget a-boxcontent“ data-collapse-target=„“><article class=„a-article-teaser a-article-teaser–horizontal-layout article-teaser–articlebox a-u-no-margin-bottom a-theme“ data-cid=„0“><a class=„a-article-teaserlink“ href=„https://www.heise.de/hintergrund/Fachliche-Schulden-als-Kontrapunkt-zu-Technical-Debt-4284588.html“ name=„meldung.newsticker.inline.article-teaser.1“ title=„Fachliche Schulden als Kontrapunkt zu &quot;Technical Debt&quot;“><figure class=„a-article-teaserimage-container“><div><strong><img alt=„Fachliche Schulden als Kontrapunkt zu &quot;Technical Debt&quot;“ height=„1726“ src=„https://static.wallabag.it/7862d1b7aff4c3b00f37212fefade4e0e2c4cf00/64656e6965643a646174613a696d6167652f7376672b786d6c2c253343737667253230786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f7376672725323077696474683d273639367078272532306865696768743d2733393170782725323076696577426f783d2730253230302532303639362532303339312725334525334372656374253230783d273027253230793d27302725323077696474683d27363936272532306865696768743d273339312725323066696c6c3d27253233663266326632272533452533432f726563742533452533432f737667253345/“ class=„c2“ width=„3071“ referrerpolicy=„no-referrer“ /></strong></div></figure><div class=„a-article-teasercontent-container“><header><h1 class=„a-article-teasertitle a-u-mb-1“><strong>Fachliche Schulden als Kontrapunkt zu „Technical Debt“</strong></h1></header></div>[4]</a></article></div><h3 class=„subheading“ id=„nav_developer2“>Developer geh&#246;ren ins Planungsteam</h3><p>Entwicklerinnen und Entwickler sind l&#228;ngst mit daf&#252;r verantwortlich, dass Kunden die gew&#252;nschten Features in der Form bekommen, die sie m&#246;chten. Der agile Ansatz umfasst die fr&#252;he und kontinuierliche Auslieferung von Software, Offenheit gegen&#252;ber &#196;nderungsw&#252;nschen in jeder Projektphase &#8211; wenn diese vorteilhaft f&#252;r die Kunden sind &#8211;, st&#228;ndige R&#252;cksprache mit allen Beteiligten, wie beispielsweise den Fachabteilungen, die die Software als Kunden in Auftrag gegeben haben.</p><p>In der Praxis werden Entwicklerteams meist aber erst sp&#228;ter im Prozess eingebunden, sodass bei ihnen h&#228;ufig das Gef&#252;hl aufkommt, die Planung erfolge von oben herab und die Kunden k&#246;nnten sich w&#252;nschen, was sie wollen &#8211; weil sie ja schlie&#223;lich daf&#252;r bezahlen. Unter solchen Bedingungen neigen auch Entwicklerinnen und Entwickler, die sich agile Methoden auf die Fahnen geschrieben haben, dazu, nur noch Dienst nach Vorschrift zu leisten und stumpf alle Aufgaben abzuarbeiten. Das f&#252;hrt in der Regel zu Frustration und wenig zufriedenstellenden Ergebnissen.</p><p>Die wichtigste Konsequenz aus diesen &#220;berlegungen ist, das Development-Team von Beginn an vollst&#228;ndig miteinzubeziehen. Wenn diejenigen, die das Projekt ma&#223;geblich umsetzen sollen, bereits Zeit- und Budgetplanung mitverantworten, ergeben sich klarere Rahmenbedingungen f&#252;r die Umsetzungsphase. So k&#246;nnen au&#223;erdem die Erkenntnisse der agilen Meetings des Dev-Teams in die Gesamtplanung zur&#252;ckflie&#223;en. Wenn sich beispielsweise die Herausforderung ergibt, weitere Sprints oder Code Reviews einzuf&#252;gen oder unvorhergesehene Inkompatibilit&#228;ten aufl&#246;sen zu m&#252;ssen, kann sich das gesamte Projekt verz&#246;gern. Erfolgt jedoch die R&#252;ckkopplung aus dem Entwicklerteam direkt mit den Business-Verantwortlichen, l&#228;sst sich unmittelbarer nachsteuern oder zumindest rechtzeitig umplanen.</p><h3 class=„subheading“ id=„nav_was_kann3“>Was kann Controlling und was nicht?</h3><p>Die R&#252;ckkopplung sollte fachlicher Natur sein: Wo muss beispielsweise nachgebessert werden, damit sich die Anforderungen der Kunden effizient umsetzen lassen? Welche technischen Spezifikationen sind zu &#252;berdenken? Softwareprojekte unterliegen allerdings wie andere Projekte dem anfangs definierten Zeit- und Budgetrahmen. Dessen Einhaltung zu gew&#228;hrleisten, ist die Kernaufgabe des Controllings, die &#252;blicherweise &#252;ber die reine „Kontrolle“ hinausgeht. Viele Unternehmen verstehen Controlling jedoch nur als Kontrollmechanismus, der an bestimmten Meilensteinen pr&#252;ft, wie viel Budget das Projekt bereits verschlungen hat und ob der Zeitplan eingehalten werden kann. Das ist jedoch zu kurz gedacht, denn Controlling kann mehr.</p><p>Projektbeteiligte sollte das Controlling eher als Steuerungsfunktion verstehen und nutzen. Nach der Anfangsplanung geh&#246;rt es zu den Aufgaben des Controllers, den Projektfortgang laufend zu analysieren und, falls sich generelle Engp&#228;sse oder Ver&#228;nderungen ergeben, entgegenwirkende Ma&#223;nahmen vorzuschlagen. Wichtig dabei ist, nicht nur den Status quo des Budget- und Zeitverbrauchs zu betrachten, sondern auch weitere Informationen zu sammeln. Hier schlie&#223;t sich der Kreis: Je enger das Entwicklerteam und alle anderen Projektbeteiligten mit dem Controlling zusammenarbeiten, umso effizienter l&#228;sst sich der Projektverlauf steuern.</p><p>Ist beispielsweise fr&#252;hzeitig absehbar, dass die Entwicklung wegen untersch&#228;tztem Integrationsaufwand l&#228;nger dauert als geplant, muss dies nicht zwingend in mehr Zeitdruck f&#252;r die Entwicklerinnen und Entwickler oder gar eine Verschiebung der Auslieferung m&#252;nden. Das Controlling k&#246;nnte auch zu dem Ergebnis kommen, dass es insgesamt vorteilhafter ist, zus&#228;tzliche Entwicklerkr&#228;fte in das Projekt einzubeziehen &#8211; oder andere Projekte mit geringerer Priorit&#228;t vor&#252;bergehend zur&#252;ckzustellen. Auch lassen sich die Kosten f&#252;r ein ben&#246;tigtes Tool gegebenenfalls als Effizienz-Ma&#223;nahme begreifen, die das gesamte Projekt voranbringt, und nicht als zus&#228;tzlichen Kostenaufwand. Solche Entscheidungen k&#246;nnen Controller aber nur treffen, wenn sie fr&#252;hzeitig und umfassend informiert sind.</p><h3 class=„subheading“ id=„nav_microcontrolling4“>Microcontrolling, ohne den kreativen Raum einzuengen</h3><p>Wie kleinteilig muss das Controlling sein? Es gilt, die Balance zwischen harten Zahlen, Fakten und Steuerungsma&#223;nahmen auf der einen Seite und kreativem Freiraum f&#252;r die <a href=„https://www.heise.de/thema/Softwareentwicklung“><strong>Softwareentwicklung [5]</strong></a> auf der anderen Seite zu wahren. W&#228;hrend zu viel Planung behindert, engt zu viel Standardisierung ein. Manche Probleme lassen sich nur mit kreativem Coding und flexiblen Methoden l&#246;sen. Die Bereitschaft, Dinge auch auf andere Weise anzugehen, geh&#246;rt zum modernen Software-Engineering. Gerade in Zeiten der Containerisierung und des Cloud Deployments stehen viele Tools, Optionen und Workarounds zur Verf&#252;gung. Warum nicht auch einmal in der Gruppe vor dem Bildschirm sitzen und &#252;ber Einzelheiten im Quellcode oder die richtige Interpretation von StackOverflow-Antworten diskutieren &#8211; wie es beim Mob-Programming vorgesehen ist. Den daf&#252;r n&#246;tigen Freiraum d&#252;rfen Controlling-Kriterien nicht zu stark einengen oder gar ausschlie&#223;en.</p><p>In den agilen Entwicklungsprozess integriertes Microcontrolling empfiehlt sich als praktikabler L&#246;sungsansatz. Die Idee dabei ist, die Variablen, die insbesondere f&#252;r das Controlling wichtig sind, beim t&#228;glichen Ausbalancieren des Entwicklungsprozesses einzubeziehen. Wenn also das Dev-Team im Scrum-Meeting Sprints umplant oder &#196;nderungen am Product-Backlog vornehmen muss, sollten auch die Auswirkungen auf die Zeit- und Kostenplanung beziffert werden &#8211; und zwar m&#246;glichst genauso kleinteilig, wie es f&#252;r den Coding-Prozess erfolgt. Denn wenn sich im Sprint-Review ergibt, dass ein zus&#228;tzlicher Sprint angeh&#228;ngt oder weitere Anpassungen umgesetzt werden m&#252;ssen, dann verschiebt sich alles Nachfolgende. Sobald es Entwicklerinnen und Entwicklern gelingt, solche Aspekte standardm&#228;&#223;ig in ihre Planung zu integrieren und mit dem Controlling abzustimmen, lassen sich Abweichungen fr&#252;her erkennen. Das wiederum erleichtert sinnvolles Gegensteuern, ohne die gesamte Planung &#252;ber den Haufen werfen zu m&#252;ssen.</p><h3 class=„subheading“ id=„nav_erwartungs_und5“>Erwartungs- und Anforderungsmanagement: den Auftraggeber st&#228;rker einbinden</h3><p>Sprint-Reviews sind eine Gelegenheit &#8211; und im Sinne der Methode auch daf&#252;r vorgesehen &#8211;, s&#228;mtliche Stakeholder eines Projektes an einen Tisch zu bringen. Auftraggeber und Nutzer k&#246;nnen Features testen und ihre Funktionalit&#228;t sowie praktische Anwendbarkeit beurteilen. In den Reviews treten regelm&#228;&#223;ig gerade jene Probleme zutage, die nur im Zusammentreffen der verschiedenen Disziplinen entdeckt werden. Ein typisches Beispiel daf&#252;r ist eine Funktion in der Software, die auf dem Papier alle definierten Kriterien erf&#252;llt, bei Anwenderinnen und Anwendern aber durchf&#228;llt, weil sie den entsprechenden Button nicht finden. Denn den hat das Entwicklerteam zwar an einer technisch sinnvollen, aber aus Sicht einer optimalen User Experience (UX) wenig geeigneten Stelle platziert. Dann entscheidet das Feedback in den Sprint-Reviews dar&#252;ber, wie es weitergeht &#8211; mit den beschriebenen Auswirkungen auf die Dauer und die Kosten des Gesamtprojekts.</p><header class=„a-boxheader“ data-collapse-trigger=„“>Lesen Sie auch</header><div class=„a-boxtarget a-boxcontent“ data-collapse-target=„“><article class=„a-article-teaser a-article-teaser–horizontal-layout article-teaser–articlebox a-u-no-margin-bottom a-theme“ data-cid=„0“><a class=„a-article-teaserlink“ data-google-interstitial=„false“ href=„https://www.heise.de/hintergrund/Requirements-Engineering-in-der-agilen-Softwareentwicklung-4617665.html“ name=„meldung.newsticker.inline.article-teaser.1“ title=„Requirements Engineering in der agilen Softwareentwicklung“><figure class=„a-article-teaserimage-container“><div><strong><img alt=„Requirements Engineering im agilen Umfeld“ height=„2104“ src=„https://static.wallabag.it/7862d1b7aff4c3b00f37212fefade4e0e2c4cf00/64656e6965643a646174613a696d6167652f7376672b786d6c2c253343737667253230786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f7376672725323077696474683d273639367078272532306865696768743d2733393170782725323076696577426f783d2730253230302532303639362532303339312725334525334372656374253230783d273027253230793d27302725323077696474683d27363936272532306865696768743d273339312725323066696c6c3d27253233663266326632272533452533432f726563742533452533432f737667253345/“ class=„c3“ width=„3744“ referrerpolicy=„no-referrer“ /></strong></div></figure><div class=„a-article-teasercontent-container“><header><h1 class=„a-article-teasertitle a-u-mb-1“><strong>Requirements Engineering in der agilen Softwareentwicklung</strong></h1></header></div>[6]</a></article></div><p>Andererseits haben dadurch auch Entwicklerinnen und Entwickler die M&#246;glichkeit, ihrerseits auf erforderliche Anpassungen aufmerksam zu machen. Nicht selten schlie&#223;en technische Notwendigkeiten bestimmte Funktionen g&#228;nzlich aus oder ver&#228;ndern sie so stark, dass die Nutzer unzufrieden sind. In der gemeinsamen Diskussion l&#228;sst sich Verst&#228;ndnis aufbauen und &#8211; in den meisten F&#228;llen &#8211; eine angemessene oder sogar bessere, neue L&#246;sung finden. Beinahe automatisch entwickelt sich dabei ein aktiv gelebtes Erwartungs- und Anforderungsmanagement: eine Balance zwischen dem Gew&#252;nschten und dem M&#246;glichen &#8211; stets unter der Beobachtung des Controllings.</p><h3 class=„subheading“ id=„nav_so_fr&#252;h_wie6“>So fr&#252;h wie m&#246;glich „positiv entt&#228;uschen“: Softwareprojekte wieder auf Kurs bringen</h3><p>Dabei m&#252;ssen Controller vor allem im Auge behalten, dass das <a href=„https://www.heise.de/thema/Projektmanagement“><strong>Projektmanagement [7]</strong></a> nicht zu agil &#252;ber alle Planungsgrenzen hinweg arbeitet, damit sich die Auswirkungen von &#196;nderungen im Projekt m&#246;glichst fr&#252;hzeitig quantifizieren und mit der Gesamtplanung in Einklang bringen lassen. Unumg&#228;nglich ist, dass das Controlling auch bremsend eingreift. Wenn beispielsweise der Aufwand f&#252;r eine neue, erweiterte Funktion im Verh&#228;ltnis zum Nutzen zu gro&#223; wird, muss es die M&#246;glichkeit geben, abzubrechen und einen neuen Ansatz zu entwerfen.</p><p>Je fr&#252;her im Projektverlauf das geschieht, umso besser: Auch wenn solche Einschnitte sich im ersten Moment wie eine Entt&#228;uschung oder Einschr&#228;nkung anf&#252;hlen, bewahren sie das Gesamtprojekt h&#228;ufig vor schlimmeren Folgen. Oft treten im Projektalltag Probleme erst zutage, wenn sie bereits hohen Aufwand und entsprechende Kosten verursacht haben. H&#228;ufig ist es dann zu sp&#228;t, die Dinge zur&#252;ckzurollen. Viel Arbeit ist vergebens getan, schlimmstenfalls muss das Projekt eingestellt werden. Fr&#252;hes &#8222;positives Entt&#228;uschen&#8220; kann das verhindern. Mit geeigneten strategischen, organisatorischen und technischen Ma&#223;nahmen &#8211; von der Anpassung der Anforderungen &#252;ber die Aufstockung der Ressourcen bis hin zum Erwerb weiterer Tools oder geeigneter Infrastruktur &#8211; l&#228;sst sich das Projekt besser aussteuern.</p><h3 class=„subheading“ id=„nav_gemeinsam7“>Gemeinsam st&#228;rker</h3><p>Agile Entwicklungsmethoden eignen sich gut, um das Projekt-Controlling granular und praxisnah umzusetzen. Voraussetzung ist allerdings, dass alle Stakeholder von Beginn an an einem Tisch sitzen und gemeinsam die Anforderungen und die Aufwandsplanung unter einen Hut bringen.</p><ul class=„rtelist rtelist–unordered“><li>Entwicklerinnen und Entwickler geh&#246;ren ebenso wie die Fachabteilungen (beziehungsweise die Kunden) und Vertreter des Controllings ins Kernteam f&#252;r die Planung und Budgetierung.</li><li>Microcontrolling bedeutet, Controlling in die einzelnen Teilphasen des Entwicklungsprozesses einzubinden: Wenn in jedem Entwickler-Meeting die Auswirkungen auf Kosten und Ressourcen bedacht und geplant werden, lassen sich fr&#252;hzeitig steuernde Ma&#223;nahmen ergreifen.</li><li>Die technischen Schulden des Projekts m&#252;ssen in der Planungsphase erhoben, eingeplant und budgetiert werden, damit sie nicht das Projekt in Verzug bringen.</li><li>Die in der Praxis &#252;blichen Zeitr&#228;ume zwischen definierten Meilensteinen sind f&#252;r ein sinnvolles Microcontrolling zu lang. Sinnvoller ist es, t&#228;gliche Status-Updates zu erstellen, um den Zeit- und Kostenaufwand f&#252;r alle Teil- und Unteraufgaben zu erfassen und den Restaufwand zu kalkulieren.</li><li>Auftraggeber sollten ebenso eng in alle Phasen eingebunden sein. Das schafft Verst&#228;ndnis f&#252;r die Abh&#228;ngigkeiten des jeweils anderen, vermeidet Missverst&#228;ndnisse und erleichtert Anpassungen des Produkts.</li><li>Eingefahrene Kommunikationsprozesse gilt es regelm&#228;&#223;ig kritisch zu hinterfragen. Kollaborations-Tools sind in der Praxis oft weniger sinnvoll als gedacht. Es lohnt sich, zu &#252;berpr&#252;fen, ob die bestehenden Prozesse effizient sind, und ob sich Tools so nutzen lassen, dass sie Zeit sparen, statt zus&#228;tzliche Kosten zu verursachen.</li></ul><p>Ein agiler Prozess ist immer nur so agil wie sein am wenigsten dynamischer Teilnehmer. Der Sinn hinter <a href=„https://www.heise.de/thema/Scrum“><strong>Werkzeugen wie Scrum [8]</strong></a> ist es nicht, aus Entwicklerarbeit Burndown-Charts zu erstellen. Es geht vielmehr um die Beteiligung aller Stakeholder, mit R&#252;cksicht auf die jeweiligen Bed&#252;rfnisse und Aufgaben: Entwicklerinnen und Entwickler brauchen Freir&#228;ume, um schwierige Probleme zu l&#246;sen &#8211; sowohl im zeitlichen Ablauf als auch bei der Wahl ihrer Werkzeuge.</p><p>Softwareentwicklung bleibt bei allem notwendigen Controlling eine kreative, schwer planbare Aufgabe. Zugleich m&#252;ssen Auftraggeber und Projektcontroller in der Lage sein, Zwischenergebnisse detailliert nachzuvollziehen, um Anforderungen gegebenenfalls zu &#252;berdenken und neu zu priorisieren. Dann gelingt es, gemeinsam eine Software zu entwickeln, die ein bestm&#246;glicher Kompromiss aus Erwartetem und technisch Machbarem ist und die weder den Zeit- noch den Budgetrahmen sprengt.</p><p><em>Stefan Adolf<br />ist Developer Ambassador bei Turbine Kreuzberg. Als Fullstack-Entwickler mit Schwerpunkt auf Applikationen, IoT und Integration ist die Kommunikation mit der Developer-Community seine prim&#228;re Aufgabe.</em></p><p>() </p><hr /><p><strong>URL dieses Artikels:</strong><br /><small>

https://www.heise.de/-6144036

</small></p><p><strong>Links in diesem Artikel:</strong><br /><small>

<strong>[1]</strong>&#160;https://www.heise.de/thema/Agile-Softwareentwicklung

</small><br /><small>

<strong>[2]</strong>&#160;https://www.heise.de/ratgeber/Agile-Softwareentwicklung-Auf-welche-Arten-Agilitaet-schiefgehen-kann-5054837.html

</small><br /><small>

<strong>[3]</strong>&#160;https://www.heise.de/developer/artikel/Technische-Schulden-entstehen-einfach-so-3969279.html

</small><br /><small>

<strong>[4]</strong>&#160;https://www.heise.de/hintergrund/Fachliche-Schulden-als-Kontrapunkt-zu-Technical-Debt-4284588.html

</small><br /><small>

<strong>[5]</strong>&#160;https://www.heise.de/thema/Softwareentwicklung

</small><br /><small>

<strong>[6]</strong>&#160;https://www.heise.de/hintergrund/Requirements-Engineering-in-der-agilen-Softwareentwicklung-4617665.html

</small><br /><small>

<strong>[7]</strong>&#160;https://www.heise.de/thema/Projektmanagement

</small><br /><small>

<strong>[8]</strong>&#160;https://www.heise.de/thema/Scrum

</small><br /><small>

<strong>[9]</strong>&#160;mailto:map@ix.de

</small><br /></p><p class=„printversion__copyright“><em>Copyright &#169; 2021 Heise Medien</em></p> </html>

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information