Agiler Entwicklungsprozess/Agiles Entwicklungsvorgehen
Auf der Grundlage des Agilen Manifests bzw. seiner Werte und Prinzipien entstanden zahlreiche Ansätze mit dem Ziel, den Prozess der Softwareentwicklung durch Abbau von Bürokratie und stärkere Berücksichtigung menschlicher Aspekte effizienter zu gestalten. Es gibt keine klaren Kriterien, wann ein Softwareentwicklungsprozess als agil gelten kann, jedoch zeichnen sich viele Entwicklungsvorgehen durch diese Eigenschaften aus:
- iterativ. Die Phasen der Softwareentwicklung werden mehrfach durchlaufen, um das Produkt schrittweise zu entwickeln und hierbei Erfahrungen aus vorangegangenen Entwicklungsschritten zu nutzen.
- inkrementell. In jedem Durchlauf wird die Software um weitere Funktionen ergänzt; das Ergebnis ist ein Software-Inkrement, das prinzipiell für den produktiven Einsatz geeignet ist.
- leichtgewichtig. Neben der Software entstehen nur wenige zusätzliche Artefakte.
- kundennah. Der Kunde wird direkt in die Produktentwicklung einbezogen und hat die Bereitschaft, die Verantwortung für Entscheidungen und Risiken zu teilen.
Agiles Manifest
Im Februar 2001 wurde von der Agile Alliance, einem Zusammenschluss 17 führender Vertreter der agilen Bewegung, das Agile Manifest (Manifest für Agile Softwareentwicklung, engl. Manifesto for Agile Software Development) verabschiedet. Es formulierte ein Wertesystem und „Zwölf Prinzipien Agiler Softwareentwicklung“.
Artefakt
Die Ergebnisse der verschiedenen Phasen eines Softwareengineering-Prozesses werden als Artefakte (von lat.: „ars“ Kunst; „factum“ das Gemachte) bezeichnet. Der Begriff umfasst z.B. Anforderungsspezifikationen, Entwurfsdokumente, Diagramme, Programmcode und Testdokumente.
Best Practice
Der Begriff Best Practice, ursprünglich aus der angloamerikanischen Betriebswirtschaftslehre, bezeichnet die bestmögliche [bereits erprobte] Methode oder Maßnahme zur Durchführung von etwas.
Nichtfunktionale Produktqualität
Neben dem Funktionsumfang eines Produkts, der beschreibt, was dieses Produkt leistet, gibt es zahlreiche nichtfunktionale Qualitätsattribute, mit denen beschrieben werden kann, wie gut das Produkt dies leistet. Die nichtfunktionale Produktqualität eines Softwareprodukts umfasst z.B. Qualitätsdimensionen wie Performanz, Usability, Sicherheit, Zuverlässigkeit, Wartbarkeit, Übertragbarkeit oder Flexibilität.
Requirements Engineering
Der Begriff Requirements Engineering beschreibt die Spezifikation und das Management von Anforderungen an ein zu erstellendes System (z.B. Softwareprodukt). Neben dem Erheben und Prüfen der Anforderungen umfasst dies das Herstellen von Konsens unter den betroffenen Stakeholdern, das adäquate [standardkonforme] Dokumentieren sowie die systematische Verwaltung der Anforderungen über den gesamten Entwicklungsprozess des Systems.
Softwarearchitektur
Die Softwarearchitektur beschreibt die Strukturen eines Softwaresystems, dessen Komponenten und Schnittstellen sowie deren Zusammenspiel. Zur Beschreibung von Softwarearchitekturen werden verschiedene textuelle oder graphische Notationen eingesetzt.
Softwareengineering
Das Softwareengineering beschäftigt sich mit der ingenieurmäßigen Entwicklung von Software. Es umfasst Methoden, Techniken und Instrumente zur Erstellung von Software, das Management von Entwicklungsprojekten für Software sowie die Inbetriebnahme, den Betrieb und die Wartung von Software. Ziele des Softwareengineerings sind die Vermeidung von Fehlern, die Reduktion von Aufwänden und die Erhöhung des Kundennutzens von Software.
Stakeholder
Der Begriff Stakeholder (svw. Interessenvertreter, von engl. stake: Anteil) bezeichnet alle Personen oder Gruppen, die von der Entwicklung und vom Betrieb eines Systems in irgendeiner Weise betroffen sind, die also ein berechtigtes Interesse an diesem System haben.
User Experience
Der Begriff User Experience (kurz: UX, deutsch: Nutzererfahrung, Nutzererlebnis) beschreibt die Wahrnehmungen und die emotionalen, psychologischen sowie physiologischen Reaktionen einer Person, die sich bei bzw. nach der Benutzung oder durch die erwartete Benutzung eines Produktes ergeben. Diese Wahrnehmungen und Reaktionen werden beeinflusst von der Gestaltung, der Funktionalität und den Leistungsmerkmalen des Produktes, von den Vorkenntnissen und Eigenschaften des jeweiligen Nutzers sowie von der Markenwahrnehmung und dem Kontext der Nutzung. Der Begriff User Experience wird insbesondere in Zusammenhang mit Websites oder Apps verwendet, bezieht sich aber auch auf nichtdigitale Produkte.
User Experience Engineering
User Experience Engineering bezeichnet die systematische Verwendung von Prinzipien, Methoden und Werkzeugen, mit denen eine positive User Experience bei den späteren Nutzern eines Produkts erzeugt werden soll. Das User Experience Engineering findet parallel zur klassischen Planungs- und Entwicklungsarbeit des Produkts statt.