Public Resources
k-develop

Software Project Review Guide (.NET)
Jannis Kühn

Vorschläge zur Sicherung der Qualität in agilen .NET Softwareprojekten.

Version 1.2.8

Feedback an jannis@k-develop.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

Tags: Architektur (8) Automatisierung (21) Disziplin (46) Kundenorientierung (14) Nachhaltigkeit (49) Nachvollziehbarkeit (33) Organisatorisch (53) Qualität (35) Security (36) Stabilität (32) (Filter zurücksetzen)


1Organisation

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.

Tags: Automatisierung Kundenorientierung Organisatorisch

Änderung vorschlagen

2Entwicklung

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

Änderung vorschlagen

C033 Statische Codeanalysen werden regelmäßig und automatisiert durchgeführt und fließen in den Entwicklungsprozess ein.

Beispiel: Sonarqube integriert im CI-Build

Tags: Automatisierung Nachhaltigkeit Qualität Security

Änderung vorschlagen

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

Änderung vorschlagen

2.1 Versionskontrolle

2.2 Fehlerbehandlung

2.3 Tests

C017 Jede Komponente ist für sich isoliert durch automatisierte Regessionstests abgedeckt.

Beispiel: Unit-Tests

Tags: Automatisierung Disziplin Nachhaltigkeit Qualität

Änderung vorschlagen

C019 Alle Komponenten sind integrativ durch automatisierte Funktionstests abgedeckt.

Beispiel: Integrationstests

Tags: Automatisierung Disziplin Nachhaltigkeit Qualität

Änderung vorschlagen

2.4 Abhängigkeiten

3Daten

3.1 Datenbanken

C051 Alle Datenbankoperationen sind durch integrative, automatisierte Tests abgedeckt.

Beispiel: Integrationstests/Systemtests

Tags: Automatisierung Disziplin Nachhaltigkeit Qualität

Änderung vorschlagen

4Dokumentation

4.1 Logging

5Bereitstellung

C098 API Dokumentationen werden über den Release-Prozess automatisch bereitgestellt und aktualisiert.

Beispiel: Die API Dokumentation ist Teil der Anwendung.

Tags: Automatisierung Organisatorisch Qualität

Änderung vorschlagen

C097 Die Bereitstellung von Datenbankanpassungen ist automatisiert.

Beispiel: Das Einspielen von Skripts in die Datenbanksysteme ist ein automatischer Teil des Bereitstellungsprozesses.

Tags: Automatisierung

Änderung vorschlagen

5.1 Build

C085 Der Build erfolgt automatisiert über einen Build-Agent.

Beispiel: Azure DevOps (Azure Pipelines)

Tags: Automatisierung

Änderung vorschlagen

C087 Jede beliebige Code-Version kann jederzeit "per Knopfdruck" durch den Buildserver gebaut werden.

Beispiel: Build-Definition in Azure-Pipelines.

Tags: Automatisierung Organisatorisch

Änderung vorschlagen

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).

Tags: Automatisierung Organisatorisch Stabilität

Änderung vorschlagen

C095 Ein Release-Build kann jederzeit "per Knopfdruck" bereitgestellt werden.

Beispiel: Release-Definition in Azure Pipelines (Azure DevOps)

Tags: Automatisierung

Änderung vorschlagen

5.2 Deployment

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).

Tags: Automatisierung Organisatorisch Stabilität

Änderung vorschlagen

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

Änderung vorschlagen

C093 Das Deployment erfolgt automatisiert über einen Release-Agent.

Beispiel: Azure DevOps (Azure Pipelines)

Tags: Automatisierung

Änderung vorschlagen

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

Änderung vorschlagen

C120 Sensible Sektionen der Konfiguration auf den Host-Systemen sind verschlüsselt.

Beispiel: Verschlüsselung durch ASPNET_REGIIS bei ASP.NET oder andere Verfahren.

Tags: Automatisierung Nachhaltigkeit Security

Änderung vorschlagen

6Betrieb

6.1 Monitoring

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

Änderung vorschlagen

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.

Tags: Automatisierung Organisatorisch Stabilität

Änderung vorschlagen

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

Änderung vorschlagen

7Literatur


Kontakt: jannis@k-develop.de
Dokument: https://k-develop.de/SoftwareProjectReviewGuide
Impressum: https://k-develop.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: 05.08.2020

Guides
Agile Projects: https://k-develop.de/AgileProjectReviewGuide
Software Projects: https://k-develop.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