Quality Software with Agile TeamsKwaliteitssoftware met Agile Teams Mjukvara med hög kvalitet med hjälp av agila team.Qualitativ hochwertige Software durch “Agile” Programmierer-Teams
Agile teams have shown to be a great way to deliver high quality software products. The agile values favore quality, and there are several agile practices that are applied by agile teams to develop high quality software.
What is Quality?
My definition of quality software is software that satifies the needs of the users, and delivers value to them. Quality is in the eye of the beholder, it is the user who decides if a software product or service has is quality, not the agile team. So teams can only deliver quality if they are driven by the needs of the users. In agile, this is supported by the agile values, and by intense collaboration of the product owner and the agile team.
Agile teams hebben laten zien dat zij een goede manier zijn om producten van hoge kwaliteit te leveren. Agile heeft kwaliteit hoog in het vaandel staan en maakt gebruik van verschillende agile methoden om software van hoge kwaliteit te ontwikkelen.
Wat is Kwaliteit?
Agila team har visat sig vara ett bra sätt att leverera mjukvaruprodukter av hög kvalitet. De agila värderingarna förespråkar kvalitet, och det finns flertalet agila tekniker som tillämpas av agila team för att utveckla högkvalitativ mjukvara.
Vad är kvalitet?
Min definition av kvalitet i en mjukvara är en mjukvara som tillfredsställer behovet hos användaren och ger dem mervärde. Vad kvalitet är ligger alltid i betraktarens öga, det är användaren som bestämmer om en mjukvaruprodukt eller tjänst håller hög kvalitet, inte det agila teamet. Så teamen kan bara leverera kvalitet om de drivs av beställarnas och användarnas behov. I agila metoder stöds detta av de agila värderingarna, och genom intensiv samverkan mellan produktens ägare och det agila teamet.
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 Values
The agile manifesto decribes the values that agile methods consider important. In my opinion, these values support the delivery of quality software. Like “Working software over comprehensive documentation”, which focuses on delivering products to users. It encourages to deliver early and frequently, enabling users to use the software and start getting value by serving their customers. Also “Responsing to change over following a plan” results in higher quality, as it urges agile teams to adopt software that does not satify the needs of the users.
Customer Collaboration
Collaboration with the potential users of the software is crucial to build understanding of what quality is. Scrum recognizes the role of the product owner, who defines the user needs and focuses upon customer value. In the planning game, the product owner and the agile team work closely together to define and prioritize the needs of the users, with user stories.
In the daily stand-ups, teams tracks their progress and brings up impediments that would hamper the delivery. At the end of the sprint, the demo is used to show the products and services that have been developed, which are then accepted by the product owner.
Quality Practices
Since the agile values already support quality, and agile teams are highly collaborative, it is no surprise that agile teams deliver high quality software. But how do they do it? Let’s look at some practices for delivering quality software, that are applied by agile teams.
For instance, pair programming, which is done by two developers who are sharing one keyboard and screen. One developer is typing, while the others reads the code, signals potential problems and suggests improvements. With pair programming, the code is reviewed when it is typed, which gives quick feedback to the developer and prevents defects from entering the software at the earliest stage possible.
Another agile practice that increases product quality is Test Driven Design (TDD). If write your test case before writing the software, then you know by executing the test that the functionality is working. Test cases are added to the regression test, so during the development the agile team knows that the software remains correct.
Refactoring is a practice to adapt existing code to enable meeting current needs. It can be used to increase the performance of the product, or to add new functionality. Team member need to develop their refactoring skills, so that they can update the code efficiëntly, and assure the quality of the software product.
Agile teams continuously improve their way of working with retrospectives. By reflecting at the end of a sprint, the team looks at things that went good, could be improved and evaluates what they have learned. Agile has improvement embedded into the way of working, teams continuously learn and get better in what they are doing, incresing both their effectiveness and efficiency.
Conclusions
Agile teams are driven by values that favore quality, collaborate intensively with the users of the software, and use practices to develop high quality software products. Due to this, it is no surprise that agile teams deliver high quality software and services to their users.
More information
Several articles are available that cover the quality topics mentioned in this blog:
- Getting Business Value out of Retrospectives
- What Drives Quality: Coding
- Improving Code Quality with Pair Programming
- A Customer is a Customer
About the Author:Ben Linders has a broad international experience, specializing in quality, process improvement and organizational development. Team worker, driven, supportive, and pragmatic. Committed to quality business results on time.
Website: http://www.benlinders.com
Email:info@benlinders.com