♦️
ICT-BZ: Modul 318 - Objektbasiert programmieren mit Komponenten
  • Intro
  • πŸ—“οΈKursplanung und Organisation
  • πŸ› οΈInfrastruktur und Tools
  • ❓FAQ
    • ❓.NET Desktop Development in Visual Studio nachinstallieren
    • ❓WinForms DataGridView
  • Tag 1
    • πŸ“–C# Grundlagen
    • πŸ’‘Γœbung C# Grundlagen
    • πŸ“–OOP Grundlagen
      • πŸ“–πŸ’‘ Exkurs: Objektdiagramm
    • πŸ’‘Methodik & Prozessmodelle
    • πŸ“–Vorgehensweisen
    • ❓Visual Studio & WinForms
    • πŸ’‘πŸ“– Aufgabensammlung
  • Tag 2
    • πŸ“–UI, UX, Usability
    • πŸ“–Analyse & Design
    • πŸ’‘Projektanforderungen analysieren
    • πŸ’‘Mockup Erstellen
  • Tag 3 - 4
    • πŸ“–Code QualitΓ€t
    • πŸ“–πŸ’‘ Coderichtlinien
    • πŸ“–Testing
      • ❓Testplan: Praxisbeispiel
      • ❓Testprotokoll: Praxisbeispiel
    • ❓Debugging
  • Projektarbeit
    • πŸ’‘Anforderungen und Dokumentation
      • SwissTransport API
    • πŸ› οΈProjektsetup
    • ❓Git Commit und Push in Visual Studio
    • πŸŽ“Bewertungsraster
    • 🚩Projektabgabe
      • πŸš©πŸ“– Binaries, Installer & GitHub Release
Powered by GitBook
On this page
  • Warum gehen IT-Projekte schief?
  • Das KundenverstΓ€ndnis
  • MΓΆgliche Fehlerquellen in Projekten
  • Klassische Phasenmodelle
  • Anforderungen Γ€ndern sich
  • Weitere Probleme der klassischen Vorgehensweise
  • Agile Vorgehensweise (z.B. SCRUM)
  • Iterativ
  • Inkrementell
  • Vorteile
  • Erfolgreiches Beispiel "Pokemon Go"
Export as PDF
  1. Tag 1

Vorgehensweisen

Klassische vs. Agile Vorgehensweise

PreviousMethodik & ProzessmodelleNextVisual Studio & WinForms

Last updated 5 years ago

Warum gehen IT-Projekte schief?

In klassischen Prozessmodellen, wie dem Wasserfallmodell wurde oft zu Beginn eines Projektes ein sogenanntes Pflichtenheft erstellt, wo alle mΓΆglichen Anforderungen aufgeschrieben wurden. Dieses musste dann von Auftraggeber und Auftragnehmer unterschrieben werden und galt als Vereinbarung fΓΌr das Produkt, welches aus dem Projekt entstehen sollte.

Das Problem: Oft, oder gar fast immer, haben Programmierer und Kunden nicht die gleiche Vorstellung von einer LΓΆsung.

Daher kam es oft vor, dass zu Beginn eines Projektes mit dem Kunden dieses Pflichtenheft angeschaut wurde und unterschrieben, und dann nach Monaten der Entwicklung das Programm "fertig" war und dem Kunden ΓΌbergeben wurde. Darauf folgte dann auch immer die ErnΓΌchterung. "Das habe ich so nicht bestellt".

Das KundenverstΓ€ndnis

Eine der schwersten Aufgaben in der Softwareentwicklung ist es, die BedΓΌrfnisse des Kunden zu verstehen. In der Regel sind Kunden technisch nicht versiert und wissen nicht, was technisch mΓΆglich ist.

Der Kunde kennt nur, was er hat. Wenn er sagt, "ich mΓΆchte ein schnelleres Pferd", muss man zuerst das BedΓΌrfnis verstehen. Das schnellere Pferd ist nΓ€mlich nicht wirklich das BedΓΌrfnis, sondern bereits ein LΓΆsungsvorschlag basierend auf den Kenntnissen des Kunden. TatsΓ€chlich will er schneller von A nach B kommen.

Wenn man die WΓΌnsche des Kunden zu wΓΆrtlich nimmt, kann das die LΓΆsungsfindung wesentlich einschrΓ€nken.

MΓΆgliche Fehlerquellen in Projekten

  • Unzureichende Kommunikation

  • Zeitdruck / Zeitmanagement

  • Ressourcen-Planung

  • Ziele falsch gesetzt

  • UnprΓ€zise, stetig Γ€ndernde Anforderungen

  • UngenΓΌgendes Testen

  • Projektstatus ungenΓΌgend verfolgt

Keiner dieser GrΓΌnde ist technischer Natur! Es geht um: Planung, Vorgehensweise, Management, Kommunikation

Klassische Phasenmodelle

Im klassischen Wasserfallmodell haben die AktivitΓ€ten eine klare Reihenfolge.

  • Analyse: Projektplan, Offerte, Kalkulation, Pflichtenheft

  • Design: Technische Dokumentation, GUI-Styleguide

  • Codierung: Umsetzung der Software

  • Test: Testdokumentation (Testszenarien), Testumgebung/-einrichtung

  • Integration: Benutzerhandbuch , fertiges System

Anforderungen Γ€ndern sich

Die Welt, die Leute und damit auch die Anforderungen Γ€ndern sich laufend. In einem klassischen Projektvorgehen hat man aber nicht die MΓΆglichkeit, sich an neue Gegebenheiten, Erkenntnisse oder WΓΌnsche anzupassen.

Weitere Probleme der klassischen Vorgehensweise

  • Fehler werden spΓ€t erkannt. (spΓ€te Entdeckung von Anforderungs-, Analyse- und Designfehlern, oft erst wΓ€hrend Integrationstest)

  • Risiken werden lange mitgeschleppt (Β«weil jetzt noch nicht codiert/getestet werden darfΒ»)

  • NachtrΓ€gliche Anforderungen kΓΆnnen nicht berΓΌcksichtigt werden.

  • Projektfortschritt ist ΓΌber lange Zeit nicht messbar.

Agile Vorgehensweise (z.B. SCRUM)

Mit einer agilen Vorgehensweise kann man diese Probleme grΓΆsstenteils umgehen.

Das Team von Softwareentwicklern arbeitet in kleinen Iterationen von 2 bis 4 Wochen. Nach jeder Iteration (auch Sprint genant), findet ein Release der funktionsfΓ€higen Software statt, welcher getestet und dem Kunden zur VerfΓΌgung gestellt werden oder sogar bereits verΓΆffentlicht werden kann.

Dadurch kann der Kunde von Beginn an der Entwicklung des Produktes teilnehmen und aktiv einschreiten. So werden MissverstΓ€ndnisse sehr schnell erkannt und kΓΆnnen korrigiert werden.

Wenn wir das Bild oben nochmal betrachten, kann man auf der Fahrradtour mit einer agilen Vorgehensweise jede Etappe separat planen und sich den neuen Gegebenheiten anpassen.

Iterativ

Die Entwicklung findet in Iterationen / Sprints statt. Die AktivitΓ€ten des Entwicklungszyklus werden in jeder Iteration von neuem durchlaufen. Analyse, Design, Implementierung, Test, Validation, (Release).

Inkrementell

Durch die iterative Vorgehensweise entsteht am Ende jeder Iteration ein Produkt. Die FunktionalitΓ€t der Software nimmt somit inkrementell zu.

Vorteile

Wird eine neue Software entwickelt, kann nach jeder Iteration geprΓΌft werden, ob die Software bereits verΓΆffentlicht und kommerziell genutzt werden kann. So kann ein Produkt potentiell viel frΓΌher finanzielle Einnahmen generieren und mit den Einnahmen weiterentwickelt werden.

Potentiell hat man in einer agilen Vorgehensweise also schon früher etwas brauchbares und am Ende durch die stÀndige Reflexion und Überarbeitung vielleicht sogar ein besseres Resultat.

Weitere Vorteile sind:

  • Fortlaufendes Kundenfeedback -> verbesserte Kommunikation

  • Probleme / Risiken werden frΓΌher erkannt

  • Greatest Risk first: Reduktion von Projektrisiken: wenn das Projekt scheitert, dann wenigstens frΓΌh (bevor viel Geld ausgegeben wurde)

Erfolgreiches Beispiel "Pokemon Go"

Im Sommer 2016 verΓΆffentlichte Nintendo gemeinsam mit Niantic das Smartphone Game "Pokemon Go", wobei die Entwickler agil vorgingen.

Die erste Version, die im FrΓΌhsommer 2016 erschien, war alles andere als "fertig". Viele Features, die beworben wurden, waren gar nicht vorhanden und kamen spΓ€ter mit regelmΓ€ssigen Software-Updates nach.

Erst am Ende kommt das Resultat zum Kunden. Es liegt auf der Hand, dass das Resultat meist nicht den Erwartungen des Kunden entsprach ().

Trotzdem hat das Spiel bereits 30 Tage nach VerΓΆffentlichung 100 Millionen Downloads im Google Play Store verzeichnet und den Entwicklern durch In-App-KΓ€ufe rund $160 Millionen eingebracht (Quelle: ).

πŸ“–
siehe Grafik oben
Wikipedia
VerstΓ€ndnis von Anforderungen
Das Wasserfallmodell