
Scrum verbessert die Qualität der Softwareentwicklung
Nach der Implementierung von Scrum für Dropticas Drupal-Entwickler, haben wir herausragende Ergebnisse in Bezug auf die Qualität unserer Projekte beobachtet. Unserer Meinung nach hilft Scrum nicht nur, die Qualität zu wahren – es erzwingt sie schlichtweg. Wie macht es das? Es legt den Fokus darauf, so früh wie möglich zu testen. Gute, weiterentwickelbare Code zu schreiben, wird zur Notwendigkeit. Es unterstützt automatisierte Tests und die Automatisierung des Entwicklungsprozesses. Es reduziert unnötige Kosten und erhöht die Flexibilität des Geschäfts. Sie glauben es nicht? Lesen Sie unbedingt diesen Artikel und teilen Sie uns Ihre Meinung mit!
Qualität
Wenn wir eine große Gruppe von Menschen fragen würden, was sie mit der Qualität eines Projekts assoziieren, würden wir sicherlich viele verschiedene Antworten erhalten. Persönlich gefällt mir die Definition von Joseph Phillips am besten, da er glaubt, dass „Qualität das Potenzial eines Projekts ist, die vom Kunden erwarteten und definierten Anforderungen zu erfüllen. Qualität ist ein Vermögenswert, ein Wert und eine Quelle des Gewinns, der aus der korrekten Durchführung des Projekts gezogen wird.“
Diese Aussage mag recht allgemein sein, aber im Wesentlichen geht es um Folgendes – hochwertige Software sollte genau das tun, was der Kunde und der Endbenutzer von ihr erwarten. Wir können diese Definitionen erweitern und sagen, dass Qualitätssoftware auch nichts Unerwartetes tun sollte.
Was ist Scrum?
Scrum ist eine iterative und inkrementelle Methode zur Durchführung eines Projekts, basierend auf den Prinzipien, die im Agilen Manifest enthalten sind, nämlich:
- Individuen und Interaktionen stehen über Prozessen und Werkzeugen.
- Funktionierende Software steht über umfassender Dokumentation.
- Kundenzusammenarbeit steht über Vertragsverhandlungen.
- Reagieren auf Veränderungen steht über dem Befolgen eines Plans.
Wenn Sie mehr über Scrum erfahren möchten, empfehle ich, den Scrum Guide zu lesen oder unserem Blog zu folgen, da es wahrscheinlich in naher Zukunft noch einige Artikel darüber geben wird.
Wie hilft Scrum, die Qualität zu wahren?
In Scrum, wie auch in anderen agilen Methoden, wird viel Wert auf Qualität gelegt. Aber hilft es wirklich, die Qualität zu verbessern? Ich hoffe, dass die folgenden Argumente Sie davon überzeugen werden, dass dem so ist.
Häufige Releases erfordern guten Code
Am Ende jeder Periode muss es eine Version geben, die bereitgestellt und dem Endbenutzer gezeigt werden kann. Stellen Sie sich vor, Sie schreiben Code von schlechter Qualität. Nach einer Anzahl von Releases beginnt die technische Schuld immer größer zu werden, bis die Aufrechterhaltung einer solchen Architektur zum Hindernis für die Weiterentwicklung wird – Sie können sicher sein, dass Ihr Kunde darüber nicht erfreut sein wird. Das Scrum-Modell erfordert, dass Sie einen Code schreiben, der leicht zu warten und zu entwickeln ist.
Testen vom Beginn des Projekts an
In Scrum wird das Projekt in Sprints unterteilt (wöchentliche bis maximal monatliche Zeiträume), die mit der Lieferung eines funktionsfähigen Codes enden. Dies erfordert, dass vom allerersten Sprint an getestet wird, um eine bewährte Lösung für den Kunden präsentieren zu können. Dies ändert die Rolle eines Testers, der nicht mehr ein Türsteher ist, der am letzten Tor steht und hässliche Lösungen ablehnt. Stattdessen wird er zu einem Spieler im Entwicklungsteam, den er bei der Sicherung der Qualität des Projekts unterstützt. Tester hören auf, eine separate Rolle zu sein, stattdessen sind sie Teil eines Teams, das das endgültige Ziel eines gegebenen Sprints anstrebt, bevor es endet.
Selbst bei der Sprint-Planung kann die Perspektive der Tester auf das Projekt und ihr Verständnis dafür, wie sich das System in bestimmten Situationen verhalten wird, sehr nützlich sein.
Eine weitere interessante Lösung könnte das Schreiben von Tests sein, noch bevor der Code erstellt wird, das die Tester dazu zwingt, über Anwendungsfälle nachzudenken und nach solchen zu fragen, die der Entwickler beim Entwickeln eines gegebenen Features nicht vorhersehen konnte.
Weniger kostspielige Fehler
Im traditionellen Geschäftsmodell wird dem Entwicklungsteam eine Spezifikation zur Verfügung gestellt, nach der das Projekt entwickelt wird. Es ist leicht vorstellbar, dass eine gut ausgearbeitete Spezifikation verwendet wird, um ein Projekt zu entwickeln, das vollständig mit allen dort aufgeführten Anforderungen übereinstimmt. Die Entwicklung dauert sechs Monate und danach wird es dem Endbenutzer präsentiert, der alles hasst, was sich die Designer ausgedacht haben. Es scheint, dass die Qualität des gelieferten Projekts ausgezeichnet ist, da es den Wünschen des Kunden entsprach; jedoch wird sich der Markt nicht daran erinnern als einen Ihrer Erfolge.
In Scrum liefern wir am Ende jedes Sprints ein funktionierendes Feature, das – wenn der Kunde es wünscht – implementiert und dem Endbenutzer gezeigt werden kann. Dank dessen, wenn wir in die falsche Richtung gehen, verlieren wir höchstens den Umfang eines Sprints an Arbeit.
Schnelle Lieferung unterstützt die Automatisierung
Einerseits muss jeder Sprint in einem neuen Fragment einer funktionierenden Website resultieren, andererseits dürfen neue Features nicht die bereits vorhandenen Funktionen zerstören. Dadurch wächst die Anzahl der zu testenden Dinge so stark, dass wir ohne die Automatisierung des Prozesses die Anzahl der Personen erhöhen müssten, die die Website überprüfen, bevor sie bereitgestellt wird. Da die Verantwortung für die Qualität des Projekts nicht nur bei den Testern liegt, sondern beim gesamten Team, sind Entwickler eher bereit, zu helfen und ein Testframework zu implementieren.
Kommunikation, Kommunikation, Kommunikation
Tägliche Meetings des Entwicklungsteams, einschließlich der Tester, unterstützen die Kommunikation innerhalb des Teams. Wenn ein Fehler gefunden wird, ist das gesamte Team darüber informiert und kann schnell reagieren.
In Scrum muss sich das Team nicht nur untereinander abstimmen – es ist auch notwendig, mit dem Kundenvertreter (Product Owner) zu sprechen. Das ist wichtig, weil das Team ihm nicht nur über den Fortschritt ihrer Arbeit informiert, sondern auch Antworten auf Unklarheiten und Zweifel erhält, zum Beispiel darüber, wie eine spezifische Funktion arbeiten soll.
Natürlich spricht der Kunde normalerweise die Geschäftssprache, während die Entwickler technisch sprechen, aber unsere Erfahrung zeigt, dass sie während der nachfolgenden Treffen immer besser zu kommunizieren beginnen. Dies beseitigt Fälle, in denen die Entwickler raten müssen, wie das System funktionieren soll, und Fälle, in denen der Kunde etwas über den Fortschritt der Arbeit wissen möchte, aber nicht weiß, wen er fragen soll.
Schnell reagieren und Chancen ergreifen
Wie bereits erwähnt, versuchen wir in agilen (und damit auch Scrum-) Projekten, Versionen der Projekte zu liefern, die so oft wie möglich bereitgestellt und dem Endbenutzer gezeigt werden können. Dies ermöglicht es uns, unsere Geschäftskonzepte schneller als mit den traditionellen Methoden zu testen und die Vorteile daraus früher zu nutzen.
Dasselbe gilt für die Veränderungen, die der Markt uns auferlegt. Da unser Projekt so gestaltet sein muss, dass es einfacher modifiziert werden kann, können wir unser Projekt schnell an neue Bedingungen anpassen.
Ich denke, dass die hier gegebenen Argumente ausreichen, um Sie darüber nachdenken zu lassen, ob es sich lohnt, einmal ein Scrum-Projekt zu versuchen. Wenn Sie mehr über Scrum erfahren möchten, sollten Sie unbedingt unsere anderen Artikel zu diesem Thema prüfen:
- Remote Scrum Team
- Modelle der Zusammenarbeit zwischen dem Entwicklungsteam und dem Kunden
- Wie funktioniert die Sprint-Retrospektive?
Ich empfehle Ihnen auch, unserem Blog zu folgen, denn dies ist sicherlich nicht unser letzter Artikel zu diesem Thema.
Ich möchte diesen Artikel mit dem Motto der Gucci-Familie abschließen: „Qualität wird lange in Erinnerung bleiben, nachdem der Preis vergessen ist“. Dies soll nicht bedeuten, dass nur teure Projekte gut sind – vielmehr soll es Sie daran erinnern, dass, wenn Sie sich nicht um die Qualität des Projekts kümmern, Ihre Nutzer es nicht so schnell vergessen werden. Lassen Sie uns also immer versuchen, im Kontext Ihrer Projekte über gute Qualität nachzudenken, und Ihre Kunden werden diesen Ansatz sicherlich zu schätzen wissen.