Vorschläge zur Sicherung der Qualität in agilen .NET Softwareprojekten.
Version 1.2.8
Feedback an mail@jannis-kuehn-consulting.de
Siehe auch: Agile Project Review Guide
Anmerkungen, Vorschläge und Hinweise sind ausdrücklich erwünscht!
Inhaltsverzeichnis
| 1. | Organisation |
| 2. | Entwicklung |
| 2.1. | Versionskontrolle |
| 2.2. | Fehlerbehandlung |
| 2.3. | Tests |
| 2.4. | Abhängigkeiten |
| 3. | Daten |
| 3.1. | Datenbanken |
| 4. | Dokumentation |
| 4.1. | Logging |
| 5. | Bereitstellung |
| 5.1. | Build |
| 5.2. | Deployment |
| 6. | Betrieb |
| 6.1. | Monitoring |
| 7. | Literatur |
C007 Bei Ausfall von Abhängigkeiten informiert die Applikation den Nutzer automatisch an passender Stelle und gibt Hinweise zu weiteren Schritten.
Beispiel: Der Nutzer erhält bei dem Ausfall der Datenbank einen für ihn verständlichen Hinweis mit zuständigen Ansprechpartnern.
C035 Zur Sicherstellung von Qualitätsrichtlinien in Bezug auf den Quellcode werden automatische Analysetools eingesetzt.
Beispiel: FX Cop Analyzers
Tags: Automatisierung Nachhaltigkeit Organisatorisch Qualität
C033 Statische Codeanalysen werden regelmäßig und automatisiert durchgeführt und fließen in den Entwicklungsprozess ein.
Beispiel: Sonarqube integriert im CI-Build
C118 Die Clean Code Praktiken sind bekannt und werden fallabhängig angewendet.
Praktiken: Die Pfadfinderregel beachten, Root Cause Analysis, Täglich reflektieren, Issue Tracking, Automatisierte Integrationstests, Lesen (Fortbildung), Reviews, Automatisierte Unit-Tests, Mockups (Testattrappen), Code Coverage Analyse, Teilnahme an Fachveranstaltungen, Komplexe Refaktorisierungen, Continuous Integration, Statische Codeanalyse (Metriken), Inversion of Control Container, Messen von Fehlern, Continuous Delivery, Iterative Entwicklung, Komponentenorientierung, Test first
Tags: Automatisierung Disziplin Nachhaltigkeit Qualität Stabilität
C017 Jede Komponente ist für sich isoliert durch automatisierte Regessionstests abgedeckt.
Beispiel: Unit-Tests
C019 Alle Komponenten sind integrativ durch automatisierte Funktionstests abgedeckt.
Beispiel: Integrationstests
C051 Alle Datenbankoperationen sind durch integrative, automatisierte Tests abgedeckt.
Beispiel: Integrationstests/Systemtests
C098 API Dokumentationen werden über den Release-Prozess automatisch bereitgestellt und aktualisiert.
Beispiel: Die API Dokumentation ist Teil der Anwendung.
C097 Die Bereitstellung von Datenbankanpassungen ist automatisiert.
Beispiel: Das Einspielen von Skripts in die Datenbanksysteme ist ein automatischer Teil des Bereitstellungsprozesses.
Tags: Automatisierung
C085 Der Build erfolgt automatisiert über einen Build-Agent.
Beispiel: Azure DevOps (Azure Pipelines)
Tags: Automatisierung
C087 Jede beliebige Code-Version kann jederzeit "per Knopfdruck" durch den Buildserver gebaut werden.
Beispiel: Build-Definition in Azure-Pipelines.
C088 Ein CI-Build existiert und verhindert die Übernahme von nicht-kompilierbarem Code in die Hauptzweige des Repositories.
Beispiel: CI-Build Policy für Pull-Requests gegen Hauptzweige (z.B. Master).
C095 Ein Release-Build kann jederzeit "per Knopfdruck" bereitgestellt werden.
Beispiel: Release-Definition in Azure Pipelines (Azure DevOps)
Tags: Automatisierung
C089 Ein CI-Deployment existiert und verhindert die Übernahme von nicht-deploybarem Code in die Hauptzweige des Repositories.
Beispiel: CI-Release nach allen CI-Builds der Pull-Requests gegen Hauptzweige (z.B. Master).
C090 Eine automatisierte Prüfung der Version und des Patchlevels relevanter Systeme (Websever, Datenbanksystem, Host-System) ist Bestandteil des Deploymentprozesses.
Beispiel: Ein Deployment-Task prüft die Version des Ziel-Webservers auf > 7.0.
Tags: Automatisierung Stabilität
C093 Das Deployment erfolgt automatisiert über einen Release-Agent.
Beispiel: Azure DevOps (Azure Pipelines)
Tags: Automatisierung
C096 Teil des Deployments ist die Sicherstellung, dass die Anwendung einen lauffähigen Status hat.
Beispiel: Ausführung von Alive-Tests als Deployment-Task.
Tags: Automatisierung Stabilität
C120 Sensible Sektionen der Konfiguration auf den Host-Systemen sind verschlüsselt.
Beispiel: Verschlüsselung durch ASPNET_REGIIS bei ASP.NET oder andere Verfahren.
C107 Sämtliche Abhängigkeiten werden regelmäßig und automatisiert von der Applikation geprüft.
Beispiel: Monitoring für Erreichbarkeit und Verfügbarkeit von Web-Schnittstellen, Datenbanken, etc...
Tags: Automatisierung Stabilität
C109 Ein Benachrichtigungsprozess informiert über den Ausfall des Applikations-Monitorings.
Beispiel: Treffen in einem definierten Zeitraum keine neuen Logs ein, greift ein fest definierter Informationsprozess.
C110 Ein Benachrichtigungsprozess informiert über den Ausfall von geplanten Datenimporten, -exporten oder Nachtläufen.
Beispiel: Monitoring der Jobs und separate Kontrolle der Anzahl importierter Daten.
Tags: Automatisierung Nachhaltigkeit Organisatorisch Stabilität
Kontakt: mail@jannis-kuehn-consulting.de
Dokument: https://old.k-drummer.de/SoftwareProjectReviewGuide
Impressum: https://old.k-drummer.de/
Guide Version: 1.2.8 (09.06.2020)
Major: Große strukturelle Änderungen
Minor: Nummern neu vergeben (z.B. C053 auf C065)
Patch: Neue Kapitel, Neue Einträge, Textanpassung, Reihenfolge
Last Page Update: 06.01.2021
Guides
Agile Projects: https://old.k-drummer.de/AgileProjectReviewGuide
Software Projects: https://old.k-drummer.de/SoftwareProjectReviewGuide
Datenschutzerklärung:
Der Webserver protokolliert Seitenzugriffe und die IP-Adressen der Aufrufer. Diese Protokolle werden ausschließlich zur Fehlersuche ausgewertet. Da es auf dieser Seite keine Benutzerkonten oder Tracking-Cookies gibt, sind diese Daten keiner Person zuordenbar und werden damit als nicht Personenbezogen betrachtet. Abgesehen davon werden keine Daten erhoben, gespeichert oder ausgewertet.
© 2020 Jannis Kühn Rights Reserved