Kernidee des Forschungsvorhabens PQ4Agile ist es, agile Entwicklungsprozesse so durch etablierte Aktivitäten des Softwareengineerings anzureichern, dass hierdurch eine ganzheitliche Qualitätsbetrachtung und eine vorhersagbar hohe Produktqualität in agilen Softwareentwicklungsprojekten möglich werden.
Hierfür werden Softwareengineering-Methoden und zusammenhängende Aktivitäten aus den Bereichen Requirements Engineering, Softwarearchitektur und User Experience Engineering in Einzelteile zerlegt, die separat ausführbar sind. Anschließend werden diese Aktivitäten angepasst, so dass sie als Best Practices für einen möglichst einfachen Einsatz in agilen Projekten zur Verfügung stehen:
Für die Anpassung der Best Practices wurden sieben Prinzipien definiert, die auf den Werten bzw. Prinzipien des Agilen Manifests basieren und die als Leitlinien in PQ4Agile dienen sollen. Durch diese Prinzipien wird sichergestellt, dass die Best Practices schnell, effizient und dynamisch ausführbar sind und dass sie selbstbestimmt und nahtlos in den Entwicklungsprozess integriert werden können. Die Prinzipien für agile Softwareengineering-Best-Practices lauten:
- Minimalismus/Simplizität: Eine Softwareengineering-Aktivität soll nur so umfangreich ausgeführt und deren Ergebnisse so umfangreich dokumentiert werden, wie durch die gegebene Projektsituation notwendig ist, damit eine effiziente Weiterbearbeitung und Wartung möglich wird.
- Personennähe: Die Verfügbarkeit und enge Zusammenarbeit mit Stakeholdern des Kun-den und von Teammitgliedern untereinander soll durch Softwareengineering-Aktivitäten genutzt werden können.
- Artefaktnähe: Softwareengineering-Artefakte sollen so produziert und verfügbar gemacht werden, dass sie möglichst effizient von Nachfolgetätigkeiten verwendet werden können und möglichst nahe am Zielprodukt sind.
- Timing: Softwareengineering-Aktivitäten sollen immer genau (spätestens) dann ausgeführt werden, wenn es für den Projektfortschritt am nützlichsten und effizientesten ist.
- Skalierbarkeit: Bei einer Zunahme von Projektfaktoren wie Stakeholdern, Systemkomplexität oder Teamgröße müssen Softwareengineering-Aktivitäten weiterhin so ausführbar sein, dass sie nicht den Grundprinzipien von agilen Vorgehen widersprechen und dennoch genügend Unterstützung zur Erreichung von Qualitätsattributen bieten.
- Änderungsaffinität: Häufige Änderungen werden von agilen Vorgehen als essentieller Teil der Projektdurchführung gesehen. Softwareengineering-Aktivitäten sollen Änderungen ebenso begreifen und Änderungen, die die Bereiche Requirements Engineering, Softwarearchitektur und User Experience Engineering betreffen, effizient ermöglichen und Stakeholder dabei unterstützen.
- Integrierbarkeit: Die Softwareengineering-Aktivitäten müssen so beschaffen sein, dass sie eine möglichst nahtlose Integration in bestehende agile Entwicklungsprozesse erlauben.
Bei der Entwicklung der Best Practices ergibt sich durch die Anwendung dieser Prinzipien eine Reihe von Forschungsfragen. In Abbildung 2 sind diese Forschungsfragen disziplinübergreifend ausformuliert: