Ingenieurbüro Heimann
Softwareentwicklung, Projektmanagement, Arbeitnehmerüberlassung
+49 (7545) 949 98 - 0
kontakt@heimann-online.com


Scrum in der Softwareentwicklung

Scrum ist ein agiles Vorgehensmodell für die Softwareentwicklung, das sich auf iterative und inkrementelle Arbeitsmethoden konzentriert. Es basiert auf den Prinzipien der Transparenz, Inspektion und Anpassung. Im Scrum-Framework gibt es verschiedene Rollen, Artefakte und Veranstaltungen, die zusammenarbeiten, um die Entwicklung von Softwareprodukten zu erleichtern.

Agiles Vorgehen: Big Bang vermeiden

Wie bei allen agilen (lateinisch: flink, beweglich) Vorgehensmodellen versucht man den Big Bang zu vermeiden. Unter einem Big Bang wird verstanden das auf einem Schlag die ideale Lösung entsteht. Alle Komponenten werden unabhänig voneinander erstellt und erst am Ende zusammen­geführt und dann in einem Gesamtsystem getestet und in Betrieb genommen. Erst dann erhält der Auftraggeber die Software. Dieses Vorgehen hat prinzipiell folgende Nachteile:

  • Bei diesem Vorgehen können Fehler oder Inkompatibilitäten zwischen den Modulen erst am Ende identifiziert werden. Dies kann zu umfangreichen Prüfungen am Ende führen, da möglicherweise viele Fehler gleichzeitig auftreten können.
  • Klassische Vorgehensmodelle (V-Modell, RUP) gelten oft als schwergewichtig und bürokratisch. Es gibt die Vermutung, dass je mehr nach Plan gearbeitet wird, desto mehr dabei raus kommt, was geplant worden ist und nicht das was gebraucht wird.
  • Der Auftraggeber sieht erst am Ende das Ergebnis.
  • Wenn zwischen Planung und Fertigstellung viel Zeit liegt können sich der Stand der Technik oder auch die Bedürfnisse des Auftraggebers geändert haben.
  • Die Nutzer haben keine Zeit sich mit der Software langsam vertraut zu machen.
  • Fehler in der Planung können unter Umständen erst am Ende erkannt werden.

Vorgehen mit Scrum

Scrum bassiert auf dem Prinzip von Sprints. Ein Sprint dauert typischerweise zwei bis vier Wochen. Danach erhält der Auftraggeber eine auslieferungsfähige Software. Diese enthält natürlich nicht alle Leistungsmerkmale, aber der Auftraggeber kann zeitnah erkennen wohin die Reise geht und kann zeitnah nachsteuern. Im Idealfall kann diese Software auch schon Teilaufgaben erledigen oder Nutzer bereits eingebunden werden.

Während eines Sprints treffen sich die Entwickler in kurzen, täglichen Besprechnungen, dem sogenannten Daily Scrum. Die Entwickler tauschen ihren Fortschritt aus, besprechen Probleme und planen die nächsten Schritte.

Am Ende eines Sprints stellen die Entwickler den Verantwortlichen in einem sogennanten Sprint Review Meeting ihre Arbeit vor. Das Ergebnis wird begutachtet und die Rückmeldungen werden in einem sogenannten Product Backlog niedergeschrieben um in künftigen Sprints berücksichtigt zu werden.

Intern reflektieren die Entwickler ebenfalls nach einem Sprint ihre Arbeitsweise, Probleme und Hindernisse und suchen nach Möglichkeiten zur Verbesserung. Diese Reflektion wird Sprint Retrospective genannt.

Entwickler sind im Sinne von Scrum nicht nur die Programmierer sondern auch Tester, Qualitäts­sicherer und andere Experten zählen zum Entwicklungsteam, die sich cross-funktional selbst organisieren.

Eine entscheidende Rolle spielt hierbei der Product Owner der für die Definition der Anforderungen und deren Priorisierung verantwortlich ist. Er stellt sicher, dass das Team kontinuierlich an den für den Kunden wertvollsten Funktionen arbeitet und den größten Nutzen generiert.

Spiralmodel
Phasen im Scrum

Die wichtigsten Begriffe in Scrum sind:

  • Product Owner
    Die Person, die die Anforderungen definiert und die Verantwortung für die Produktvision trägt.
  • Scrum Master
    Die Person, die das Scrum-Team unterstützt, Hindernisse beseitigt und den Scrum-Prozess überwacht.
  • Entwicklungsteam
    Die Gruppe von Fachleuten, die für die Entwicklung und Bereitstellung des Produkts verantwortlich sind.
  • Sprints
    Die festgelegten Zeitintervalle, in denen die Entwicklung stattfindet. Ein Sprint dauert typischerweise zwei bis vier Wochen.
  • Product Backlog
    Eine Liste von Anforderungen, die priorisiert und kontinuierlich aktualisiert wird.
  • Sprint Backlog
    Eine Liste von Aufgaben, die während eines Sprints erledigt werden müssen.
  • Daily Scrum
    Eine kurze tägliche Besprechung, bei der das Team den Fortschritt, die Herausforderungen und die Pläne für den Tag bespricht.
  • Retrospektive
    Eine Sitzung am Ende eines Sprints, bei der das Team den abgeschlossenen Sprint reflektiert und Verbesserungen für zukünftige Sprints identifiziert.
  • Review-Meeting
    Eine Veranstaltung am Ende eines Sprints, bei der das Team die abgeschlossene Arbeit demonstriert und Feedback erhält.

Herausforderungen und Schwierigkeiten

Obwohl Scrum viele Vorteile bietet, gibt es auch Herausforderungen und Schwierigkeiten bei der Implementierung:

  • Mangelnde Erfahrung mit agilen Methoden
    Die Einführung von Scrum erfordert oft eine Veränderung der Denkweise und Arbeitsweise, was für Teams, die zuvor traditionelle Methoden verwendet haben, eine Heraus­forderung sein kann.
  • Komplexität der Aufgaben
    Bei komplexen Projekten können die Anforderungen und die Umgebung schnell ändern, was die Planung und Prio­risierung der Arbeit erschwert.
  • Kommunikation und Zusammenarbeit
    Eine effektive Kommunikation und Zusammenarbeit zwischen den Teammitgliedern, dem Product Owner und den Stakeholdern sind entscheidend für den Erfolg von Scrum. Schwierigkeiten in der Kommunikation können den Projektablauf beeinträchtigen.
  • Skalierung
    Bei größeren Projekten oder in Unternehmen mit mehreren Scrum-Teams kann die Skalierung von Scrum eine Herausforderung darstellen. Die Koordination und Integration der Arbeit zwischen den Teams erfordert zusätzliche Planung und Abstimmung.
  • Managementunterstützung
    Eine erfolgreiche Umsetzung von Scrum erfordert die Unterstützung des Managements und eine Kultur, die Veränderungen und kontinuierliches Lernen fördert.

Erfolgsfaktoren in Scrum

Um erfolgreich mit Scrum zu sein, sind verschiedene Erfolgsfaktoren zu beachten:

Erfolgsfaktor 1
Klar definierte Produktvision und Ziele, um das Team auf einen gemeinsamen Zweck auszurichten.

Erfolgsfaktor 2
Effektive Kommunikation und Zusammenarbeit zwischen den Team­mitgliedern und den Stakeholdern, um Missverständnisse zu vermeiden und das Produkt kontinuierlich zu verbessern.

Erfolgsfaktor 3
Kontinuierliche Priorisierung und Anpassung des Product Backlogs, um sicherzustellen, dass die wichtigsten Anforderungen zuerst umgesetzt werden.

Erfolgsfaktor 4
Transparente und regelmäßige Berichterstattung über den Fortschritt des Projekts, um alle Beteiligten auf dem Laufenden zu halten.

Erfolgsfaktor 5
Lernorientierte und flexible Einstellung, um aus Fehlern zu lernen und den Prozess kontinuierlich zu verbessern.

Best Practices in Scrum

Um die Vorteile von Scrum optimal zu nutzen, können folgende Best Practices angewendet werden:

Best Practice 1
Regelmäßige und kurze Feedback-Schleifen, um frühzeitig Rückmeldungen von den Stakeholdern zu erhalten.

Best Practice 2
Klare Definition von Aufgaben und Verantwortlichkeiten, um sicherzustellen, dass jeder im Team weiß, was von ihm erwartet wird.

Best Practice 3
Einsatz von Tools und Technologien zur Unterstützung des Scrum-Prozesses, wie z. B. Kollaborationstools, Task-Management-Systeme oder Projektmanagement-Software.

Best Practice 4
Regelmäßige Retrospektiven, um den Prozess zu evaluieren und Verbesserungen zu identifizieren.

Best Practice 5
Aktive Einbindung aller Teammitglieder in Entscheidungsprozesse und kontinuierliches Lernen, um das Engagement und die Motivation zu fördern.

Aktuelles

Das Crowdstrike-Fiasko --- Ursachenforschung und erste Lehren

24. Juli 2024
Ein fehlerhaftes Update für Crowdstrikes Agent-Software führte dazu, dass weltweit rund 8,5 Millionen Windows-PCs abstürzten – viele davon in Produktivumgebungen in Firmen. Der Fehler war so hartnäckig, dass ein Neustart nicht möglich war: Windows fraß sich immer wieder an derselben Stelle fest. Das Problem gilt vielen bereits als der größte Ausfall der IT-Geschichte.

Betrugserkennung durch Künstliche Inteligenz

8. Juli 2024

In einer Zeit, in der digitale Betrugsfälle immer raffinierter und schwerer zu erkennen werden, bietet die Künstliche Intelligenz (KI) innovative Lösungen zur Betrugserkennung und -prävention.

Erfahren Sie, wie KI-Systeme durch maschinelles Lernen Muster und Anomalien in Daten erkennen, welche Vorteile sie bieten und wie sie in verschiedenen Branchen erfolgreich eingesetzt werden. Entdecken Sie die Herausforderungen und die Zukunftsaussichten der KI-gestützten Betrugserkennung in unserem umfassenden Artikel.

Künstliche Intelligenz im Mittelstand

1. Juli 2024

Der Mittelstand kann Künstliche Intelligenz (KI) in vielen Bereichen einsetzen, um Effizienz zu steigern, Kosten zu senken und die Wettbewerbsfähigkeit zu erhöhen.

Hier sind 10 Einsatzgebiete, in denen der Mittelstand KI aktuell nutzen kann:

Vorsprung durch Klassifikationen mit Künstlicher Inteligenz

12. September 2023

Künstliche Intelligenz (KI) ist in vielen Bereichen des Lebens allgegenwärtig geworden, von der Unterhaltung bis zur Medizin. Eine der wichtigsten Anwendungen von KI ist die Klassifikation von Daten. Klassifikation bedeutet, dass Daten in verschiedene Kategorien eingeteilt werden. Dies kann zum Beispiel für die Erkennung von Objekten in Bildern, die Textanalyse oder die Vorhersage von Ereignissen verwendet werden.

KI-basierte Klassifikationen bieten Unternehmen zahlreiche Vorteile. Sie können dazu beitragen, die Effizienz zu steigern, die Qualität zu verbessern und neue Möglichkeiten zu erschließen. Mit dem Ingeneiurbüro Heimann können auch mittelständige Unternehmen diese Technologie gewinnbringend nutzen.

Bei Cybersicherheit geht es nicht um Computer – sondern um unsere tägliche Sicherheit

11. September 2023
Cyberangriffe können für Unternehmen existenzbedrohend sein und werden oft unterschätzt. Cybersicherheit sollte deswegen selbstverständlich sein.