Experiences & best practices on nearshoring, offshoring & global IT staffing

Qualitativ hochwertige Software durch “Agile” Programmierer-Teams

 

Agile Teams haben in der Vergangenheit gezeigt, dass sie ein guter Schritt sind um erstklassige Software zu programmieren. Der Hauptwert der agilen Programmierung ist Qualität und es gibt mehrere Praktiken, die von Teams angewendet wurden, um ausgezeichnete Software zu entwickeln.

Was bedeutet Qualität?

Meine Definition für Qualitäts-Software entspricht einer Software, die die Bedürfnisse der Kunden und Nutzer komplett erfüllt und ihnen einen entscheidenden Mehrwert bringt. Qualität liegt jedoch im Auge des Betrachters, denn es sind die Nutzer die entscheiden, ob ein Produkt oder eine Dienstleistung ihren Anforderungen an Qualitätsstandards entsprechen und nicht das „Agile“-Team. Die Teams können die Qualität nur liefern, wenn sie die Anforderungen kennen und von den Bedürfnissen des Kunden angetrieben werden. Bei agilen Teams erfolgt dies durch die Werte und intensive Zusammenarbeit mit den Kunden. 

Agile Werte

Das Manifest von Agile-Programmierung beschreibt die Werte, die für die agile Methode für wichtig erachtet werden. Meiner Meinung nach unterstützen diese Werte das Endergebnis hochwertiger Software immens. „Funktionierende Software steht über umfassender Dokumentation“, welche sich auf die Bereitstellung für den Nutzer konzentriert. Es ermutigt zu früh und zu häufig zu liefern, damit die Anwender die Software nutzen um einen Mehrwert für ihre Kunden zu erzielen. Auch die Devise „Einen Plan zu ändern als sich an diesem festzuhalten“ führt zu höherer Qualität und ist für Agile Teams von Bedeutung, denn abgekupferte Software befriedigt nicht die Bedürfnisse der Anwender. 

Kundenzusammenarbeit

Die Zusammenarbeit mit den potentiellen Nutzern der Software ist entscheidend, um deren Verständnis von Qualität zu verstehen und diese in die Software zu implementieren. Scrum erkennt die Rolle des Produktmanagers, der die Bedürfnisse der Nutzer definiert und sich auf den Kundenwert fokussiert. Während der Planungsphase arbeiten Produktmanager und Agile-Team  eng zusammen, definieren und priorisieren die Bedürfnisse der Nutzer anhand von Kundengeschichten. 

Beispiele Agile-Programmierung

Da die Werte die Qualität von Agile-Teams bereits unterstützen und diese Teams sehr kooperativ arbeiten, ist es nicht verwunderlich, dass erstklassige Software für den Kunden programmiert wird. Die Frage, die dabei aufkommt ist: Wie diese Teams dies bewerkstelligen? Hierfür schauen wir uns einige Vorgehensweise agiler Teams an und wie diese angewendet werden.

1.       Paar-Programmierung wird von zwei Entwicklern mit nur einer Tastatur und einem Bildschirm durchgeführt. Während Programmierer A den Code schreibt, überprüft Programmierer B diesen Code am Bildschirm, schreitet bei Fehlern ein und gibt Verbesserungsvorschläge. Der Vorteil dieses Stiels ist die frühe Rückmeldung an den Programmierer, so dass Mängel direkt verbessert werden können.

2.       Ein weiteres Beispiel, welches die Produktqualität erhöhte ist das Test Driven Design (TDD)- Konzept. Vor der Programmierung werden Testbeispiele niedergeschrieben und anhand dieser die Funktionalität überprüft.  Während der Programmierung wissen dann die Programmierer, dass die Software richtig arbeitet.

3.       Refactoring ist ein Konzept, um bestehende Codes anzupassen, damit die aktuellen Bedürfnisse zufrieden gestellt werden. Es wird benutzt, um die Leistung der Software zu erhöhen oder neue Funktionen hinzuzufügen. Wichtig ist, dass die Programmierer Fähigkeiten besitzen, bestehende Codes effektiv anzupassen ohne die Qualität der Software zu gefährden.

4.       Agile-Teams verbessern kontinuierlich ihre Arbeitsweisen mit Retrospektiven. Durch das Reflektieren am Ende festgelegter Phasen blickt das Team gemeinsam auf Dinge, die gut gelaufen sind, verbesserungswürdig sind, und evaluieren was sie während dieser Zeit gelernt haben. Agile hat Verbesserungen in der Art zu arbeiten herbeigeführt, so dass diese kontinuierlich lernen und besser werden in dem was sie tun und dadurch ihre Effektivität und Effizienz steigern. 

Schlussfolgerung

Agile-Teams werden durch Werte, Qualität, intensive Zusammenarbeit mit den Anwendern der Software und den verwendeten Methoden zur Herstellung von Qualitäts-Software angetrieben. Genau aus diesen Gründen ist es nicht verwunderlich, dass Agile-Teams qualitativ erstklassige Software und Dienstleistungen für ihre Nutzer liefern. 

Mehr Informationen

Viele Artikel welche die oben beschrieben Themen ebenfalls behandeln sind online verfügbar unter:

·         Getting Business Value out of Retrospectives

·         What Drives Quality: Coding

·         Improving Code Quality with Pair Programming

·         A Customer is a Customer 

Über den Autor

Ben Linders hat eine breite internationale Erfahrung, ist spezialisiert auf Qualitäts-, Prozessoptimierung und Organisationsentwicklung. Er ist Teamarbeiter, unterstützend, pragmatisch und sehr fokussiert. Qualität verpflichtet Resultate stets zum vereinbarten Zeitpunkt zu liefern.

Agile, Scrum, Lean, Six Sigma, Retrospectives, Kanban, CMMI, People-CMM, Root Cause Analysis, Lean Startup

Email: info@benlinders.com

Twitter: @BenLinders

Website: http://www.benlinders.com/

 

Other articles you may also like:

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>