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.

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. Starre Vorgehensweisen können zu aufwändigen nachträglichen Anpassungen führen, während durch agile Prinzipien veränderte Anforderungen bereits im laufenden Prozess berücksichtigt werden können.

Gabler Wirtschaftslexikon: Agile Softwareentwicklung

Im Jahr 2001 veräffentlichte die Agile Alliance im Rahmen des Agilen Manifests vier Leitsätze der agilen Entwicklung. Sie lauten:

  • Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge
  • Funktionierende Software ist wichtiger als umfassende Dokumentationen
  • Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlungen
  • Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans

Basierend auf den Leitsätzen enthält das Agile Manifest außerdem 12 Agile Entwicklungs-Prinzipien.

The Agile Manifesto Authors 2001-1019
Agile Alliance


Agilität im Projektkontext

  • unterschiedliche Stakeholder-Gruppen (Assistenznehmer*innen, Assistent*innen, Teamleitungen Assistenzfirmen)
  • vielfältige Rollen-Anforderungen (Requirements-Engineering, Software-Architektin, Projektmanagerin, Frontend-Entwicklerin, App-Entwicklerin mit Schwerpunkt Backend, Stakeholder-Kommunikatorin)
  • Iterative Entwicklungsphasen, in denen Methodiken ausgewählt, abgewogen und wieder verworfen werden
  • laufende Optimierung des Prozesses mit hoher Flexibilität, ohne starre Vorgehensweise

Methoden und Techniken

  • Scrum (angepasst): Sprints & Sprint-Planning, insb. in der Anforderungsanalyse, bei den UML-Modellierungen und in der Implementierung
  • **Kanban: ** Kanban-Boards auf GitHub Projects
  • Stakeholder Mapping: Regelmäßiger Einbezug der relevanten Stakeholder, Anpassen der Anforderungen, Personas etc.
  • Design Thinking & Prototyping: Schnelles Entwickeln von Prototypen, interaktive Mockups für frühe Feedbacks zu User Flows, Navigation und Inhalten
  • Flexibles Rollenmanagement: Dynamische Anpassung der eigenen Rolle je nach Kommunikationspartner*in, Kontext und Zwischenziel

Nächstes Kapitel: Human Centered Design