Methodik

1. Übersicht und Formales

Moderne Softwareentwicklung Das Projekt wird durch ein agiles, modellgeleitetes Vorgehen mit iterativen und inkrementellen Entwicklungsschritten geleitet und schließt die kontinuierliche Interaktion mit realen Stakeholdern ein. Es besteht während sämtlicher Entwicklungsphasen enger Kontakt zu Assistenznehmer*innen im Arbeitgebermodell, Mitarbeiter*innen von Assistenzdienstleistungsfirmen und Assistent*innen. Neben den Stakeholder-Interviews dienen Beobachtungen, die während realer Dienstplanungen und Teamgespräche gemacht wurden, als Grundlage für die Anforderungsanalyse. Schlüsselszenarien und umfangreiche Anwendungsfälle determinieren die Systemanforderungen. Ihre Identifikation folgt zunächst einem deskriptiven Ansatz mit Fokus auf die Benutzer*innen-Perspektive und wird anschließend mittels UML-Modellierungen in ein Software-Konzept überführt.

2. Agile Entwicklung

Flexibilität und schnelle Reaktionen auf geänderte Anforderungen “Agile Softwareentwicklung bezeichnet Ansätze im Softwareentwicklungsprozess, die die Transparenz und Flexibilität erhöhen und zu einem schnelleren Einsatz der entwickelten Systeme führen sollen, um so Risiken im Entwicklungsprozess zu minimieren. Die Kernidee besteht darin, Teilprozesse möglichst einfach und somit beweglich (=agil) zu halten.” (Siepermann/ Gabler 2018) Die agile Softwareentwicklung ist in Abgrenzung zu klassischen Softwareentwicklungsmethoden wie dem Wasserfall oder V-Modell entwickelt worden. Zugrunde liegt die Feststellung, dass sich Anforderungen und Wünsche von Kund*innen laufend ändern und Softwareprojekte nicht im Voraus detailliert planbar sind.

3. Human Centered Design

Im Mittelpunkt der Anforderungsanalyse stehen die Nutzer*innen Die menschzentrierte Softwarentwicklung geht aus dem Fachgebiet Mensch-Computer-Interaktion (MCI), auf Englisch Human Computer Interaction (HCI), hervor. Sie beschäftigt sich - vereinfacht gesagt - mit der Kontaktzone zwischen Mensch und Maschine. Warum Human Centered Design? Ziel ist es, interaktive Systeme zu entwickeln, die eine möglichst gute User Experience erzielen. Diese ist definiert als die „Wahrnehmungen und Reaktionen einer Person, die aus der tatsächlichen und/ oder der erwarteten Benutzung eines Systems, eines Produkts oder einer Dienstleistung resultieren” (ISO-Norm 9241-210 2019: 10)

4. Modellgeleitetes Vorgehen

Inhalte folgen → Nächstes Kapitel: Projektmanagement

5. Projektmanagement

Inhalte folgen → Nächses Kapitel: Stack

6. Stack

Ein Überblick über Tools und Ressourcen, die im Laufe des Projekt zum Einsatz kamen.

7. Ressourcen

Interview-Partner*innen Durch meine langjährige Arbeit als Persönliche Assistentin mit Erfahrung im Arbeitgeber- und Assistenzdienstmodell konnte ich umfangreiche Kontakte zu Assistenznehmer*innen, Assistent*innen sowie Teamleitungen und Mitarbeiter*innen aus der Verwaltung knüpfen. Für die Umsetzung des Projekts habe ich mich mit sieben Personen über ihre Erfahrungen unterhalten, darunter Assistenznehmer*innen im Arbeitgebermodell, Assistenznehmer*innen im Dienstleistungsmodell, Teamleitungen von Assistenzfirmen und Assistent*innen. Drei der Interviewpartner*innen - zwei Assistenznehmer*innen im Arbeitgebermodell und ein Assistent mit Dienstplanungsbefugnissen - sind eng in regelmäßige Feedbacks eingebunden.

1. Übersicht und Formales

Moderne Softwareentwicklung

Das Projekt wird durch ein agiles, modellgeleitetes Vorgehen mit iterativen und inkrementellen Entwicklungsschritten geleitet und schließt die kontinuierliche Interaktion mit realen Stakeholdern ein.

Es besteht während sämtlicher Entwicklungsphasen enger Kontakt zu Assistenznehmer*innen im Arbeitgebermodell, Mitarbeiter*innen von Assistenzdienstleistungsfirmen und Assistent*innen. Neben den Stakeholder-Interviews dienen Beobachtungen, die während realer Dienstplanungen und Teamgespräche gemacht wurden, als Grundlage für die Anforderungsanalyse.

Schlüsselszenarien und umfangreiche Anwendungsfälle determinieren die Systemanforderungen. Ihre Identifikation folgt zunächst einem deskriptiven Ansatz mit Fokus auf die Benutzer*innen-Perspektive und wird anschließend mittels UML-Modellierungen in ein Software-Konzept überführt.


Hinweise zur formalen Gestaltung

Formale Klarheit

Die Dokumentation legt besonderen Wert auf formale Klarheit und eine wissenschaftliche Arbeitsweise. Dazu zählen umfangreiche Literaturrecherchen und Quellennachweise, der Einsatz einer präzisen und eindeutige Sprache und die konsequente Anwendung von Fachterminologie. So werden beispielsweise bei der Formalisierung der Anforderungen eindeutige Prozesswörter definiert, um interpretative Spielräume und Bedeutungsverschiebungen zu minimieren. Formale Klarheit unterstützt eine effektive Kommunikation zwischen allen Projektbeteiligten und reduziert das Risiko von Missverständnissen.

Quellennachweise

Für Literaturreferenzen wird in Fällen von nachweispflichtigen Tatsachenbehauptungen und Zitaten (direkt oder indirekt) die Oxford-Zitierweise verwendet. Das heißt, dass Quellennachweise - wo nötig - mittels Klammernotation im Text eingebunden werden. Zusätzlich werden referenzierte Quellen am Ende der entsprechenden Textblöcke verlinkt und im Kapitel Ressourcen unter Literatur gesammelt aufgeführt. Dies gilt auch für weiterführende Informationsangebote, die nicht direkt im Text referenziert werden.

Diskriminierungssensible Sprache

Diskriminierende Ausdrücke werden zugunsten inklusiver Formulierungen, die unterschiedliche Perspektiven berücksichtigen, vermieden. Für die gleichberechtigte Ansprache aller Geschlechter wird der sogenannte Genderstern verwendet, der neben Frauen und Männern auch nicht-binäre Personen einschließt.

Deutsch und Englisch

Der Assistenzplaner wird für den deutschsprachigen Raum entwickelt. Deshalb ist Deutsch die vorherrschende Sprache für die Kommunikation mit den Stakeholdern, die Anforderungsanalyse, die Dokumentation und den Product-Pitch. Bei den Modellierungen zur Anforderungs- und Softwarespezifikation sind diejenigen Modelle, die zur Stakeholder-Kommunikation verwendet werden, in deutscher Sprache verfasst.

Im weiteren Verlauf der technischen Spezifizierung, bei der Implementierung der Webseiten und der App sowie in der Projektorganisation mittels GitHub Project Kanban Boards wird hingegen vorwiegend auf Englisch gearbeitet.


Entwicklungsphasen

Die Timeline zeigt die Phasen des Projekts und ist an den Ablauf klassischer Softwareentwicklungs-Projekte angelehnt. Der tatsächliche Ablauf ist jedoch nicht linear, sondern explizit agil und iterativ. Artefakte aus früheren Entwicklungsphasen werden laufend verbessert und Ergebnisse iterativ an das Feedback der Stakeholder angepasst.

1

RECHERCHE

  • Themenfeldanalyse
  • Stakeholder-Interviews
  • Literaturrecherche
  • Domänenmodell
  • Beobachtung der Dienstplan-Erstellung
  • Deskriptive HTA der Dienstplan-Erstellung
  • Identifikation von (Teil-)Problemen

2

ANALYSE

  • Stakeholder-Analyse
  • Identifikation und Darstellung relevanter Szenarien (narrativ und als Experience Map)
  • Identifikation relevanter Erfordernisse
  • User-Profiles und Personas

3

ZIELSPEZIFIKATION

  • Fokus festlegen (Dienstplan-Erstellung)
  • Konkurrenzanalyse
  • Selektieren und Verfeinern relevanter Erfordernisse aus der Analyse
  • Erste Mockups
  • Vorbereitung des Product-Pitch
  • Stakeholder-Feedback

4

ENTWURF

  • Festhalten und Formalisieren funktionaler Anforderungen
  • Identifikation globaler und inkludierter Anwendungsfälle
  • UML-Anwendungsfalldiagramme
  • UML-Aktivitätsdiagramme
  • UML-Domänenklassenmodell

5

DESIGN

  • Identifikation und Formalisierung nicht-funktionaler Anforderungen
  • CRUD-Matrix
  • UML-Klassendiagramm der Softwarespezifikation
  • UML-Sequenzdiagramme
  • UML-Zustandsdiagramm

6

IMPLEMENTIERUNG

  • Definition der technischen Anforderungen
  • Technologie-Auswahl
  • Sprint-Ziele für Produktinkremente
  • Abnahme- und Erfolskriterien

7

QUALITÄTSSICHERUNG

  • Qualitätskriterien
  • Vorstellung der funktionalen Prototypen
  • Usability-Tests
  • Stakeholder-Feedback