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

C004 Die Releaseplanung ist nach außen transparent.

Beispiel: Kunden können sich jederzeit über bereitgestellte und geplante Versionen informieren.

Tags: Kundenorientierung Nachhaltigkeit Nachvollziehbarkeit Organisatorisch

Änderung vorschlagen

2Entwicklung

C030 Der Code-Style im gesamten Quellcode entspricht den für das Projekt geltenden Konventionen.

Anmerkung: Erhöht Lesbarkeit, Nachvollziehbarkeit und reduziert durch einheitliche Muster den zeitlichen Aufwand beim Verstehen des Quelltextes.

Tags: Disziplin Nachhaltigkeit Nachvollziehbarkeit Qualität

Änderung vorschlagen

C121 Konfigurationsdateien enthalten ausschließlich verwendete Einträge. Nicht mehr genutzte Einträge werden konsequent aus den Dateien entfernt.

Beispiel: Obsolete Schlüssel-Wert-Paare, Verbindungszeichenfolgen, etc...

Tags: Disziplin Nachhaltigkeit Nachvollziehbarkeit Security

Änderung vorschlagen

C128 Sitzungsidentifikatoren werden nach erneutem Anmelden erneuert.

Beispiel: Neue SessionID.

Tags: Nachvollziehbarkeit Security

Änderung vorschlagen

C123 Session-Timeouts sind explizit gesetzt.

Beispiel: Keine Verwendung von Standardkonfiguration, sondern explizite Angabe der Gültigkeitsdauer.

Tags: Nachvollziehbarkeit Stabilität

Änderung vorschlagen

C040 Die Detailstufe des technische Protokolls ist konfigurierbar und die Implementierung spiegelt das Konzept wieder.

Beispiel: Unterscheidung zwischen Verbose, Info, Warning und Error.

Tags: Disziplin Nachvollziehbarkeit Qualität

Änderung vorschlagen

C041 Bei der Verarbeitung von Texten ist die Kodierung immer explizit angegeben.

Beispiel: Für das Lesen und Schreiben von Daten wird explizit UTF-8 verwendet.

Tags: Nachvollziehbarkeit Security

Änderung vorschlagen

C044 Persönliche, vertrauliche und geheime Daten werden ausschließlich verschlüsselt übertragen.

Beispiel: Verschlüsselung oder Tunneling bei relevanten Datenübermittlungen, z.B. HTTPS bei REST-Anfragen.

Tags: Nachvollziehbarkeit Organisatorisch

Änderung vorschlagen

2.1 Versionskontrolle

C011 Sämtliche Codeänderungen werden durch ein Versionskontrollsystem verwaltet.

Beispiel: Git

Tags: Nachvollziehbarkeit

Änderung vorschlagen

C042 Sämtliche Commit-Messages sind ausdrucksstark formuliert und fassen sämtliche Änderungen zusammen.

Beispiel: "Updated .NET target version of all projects to 4.8" anstatt "Updated .NET".

Tags: Disziplin Nachvollziehbarkeit

Änderung vorschlagen

C043 Sämtliche Commit-Messages sind in derselben Sprache formuliert.

Beispiel: englisch.

Tags: Disziplin Nachvollziehbarkeit Organisatorisch

Änderung vorschlagen

2.2 Fehlerbehandlung

2.3 Tests

C018 Unit Tests erzeugen ein Ausführungsprotokoll, anhand dessen der detaillierte Verlauf des Tests nachvollzogen werden kann.

Beispiel: Sämtliche Logeinträge werden während des Testes in die Testausgabe geschrieben.

Tags: Disziplin Nachvollziehbarkeit

Änderung vorschlagen

2.4 Abhängigkeiten

3Daten

C058 Timestamps enthalten eine Angabe zur Zeitzone.

Anmerkung: Der verwendete Datentyp sollte die Angabe einer Zeitzone sicherstellen.

Tags: Nachvollziehbarkeit Organisatorisch

Änderung vorschlagen

3.1 Datenbanken

C055 Zum Lesen und Schreiben von Daten existieren separate Datenbankbenutzer.

Beispiel: Die Applikation "Sample" benutzt die DB-User "app_sample_read" und "app_sample_write". Aus dem Namen des DB-Users lässt sich die zugehörige Applikation ableiten.

Tags: Nachvollziehbarkeit Organisatorisch Security

Änderung vorschlagen

C056 Jede Komponente nutzt eigene Datenbankbenutzer mit entsprechend eingeschränkten Rechten.

Beispiel: Jedes fachlich getrennte Modul erhält einen "read" und einen "write" DB-User. Aus dem Namen des DB-Users lässt sich das zugehörige Applikationsmodul ableiten.

Tags: Nachvollziehbarkeit Organisatorisch Security

Änderung vorschlagen

4Dokumentation

C066 Ein Versionsprotokoll (Changelog) ist in fachlicher Sprache vorhanden und über die Applikation erreichbar.

Beispiel: Build-In Changelog oder Verlinkung auf Web-Page.

Tags: Kundenorientierung Nachvollziehbarkeit

Änderung vorschlagen

C067 Die Versionsnummer und das Environment der Applikation ist in jeder Ansicht sichtbar.

Beispiel: Ausgabe der Daten im Fixed-Footer/-Header einer Web-Application. Wichtig: Die Angabe ist auf jedem Screenshot sichtbar.

Tags: Nachvollziehbarkeit

Änderung vorschlagen

C068 Eigene APIs sind dokumentiert. Die Dokumentationen ist versioniert und Teil des Code-Repositorys.

Beispiel: Swagger oder ähnliche Produkte.

Tags: Disziplin Kundenorientierung Nachvollziehbarkeit

Änderung vorschlagen

C082 Die Releasenotes werden durch das komplette Team in fachlicher Sprache verfasst, nachdem Features implementiert und getestet sind.

Beispiel: Releasenotes nach dem täglichen Standup aktualisieren und für das gesamte Team transparent machen.

Tags: Disziplin Kundenorientierung Nachvollziehbarkeit Qualität

Änderung vorschlagen

C125 Alle beteiligten Akteure eines Projektes sind mit entsprechender Rollenangabe dokumentiert.

Beispiel: Projektleiter, Entwickler, Kunden, Fachbereiche, Tester, etc...

Tags: Disziplin Nachvollziehbarkeit Organisatorisch

Änderung vorschlagen

C084 Alle ein- und ausgehenden Netzwerkverbindungen der Applikation sind dokumentiert.

Beispiel: Netzwerkadresse des Zielsystems, Netzwerkkonfiguration (Proxy, etc.), Fachliche Beziehungen, Abhängigkeiten, Kritikalität bei Ausfall der Verbidung.

Tags: Nachhaltigkeit Nachvollziehbarkeit Organisatorisch Security Stabilität

Änderung vorschlagen

C065 Das Branching-Konzept ist dokumentiert.

Beispiel: Git-Flow

Tags: Nachhaltigkeit Nachvollziehbarkeit

Änderung vorschlagen

4.1 Logging

C071 Für einzelne Features werden bedarfsorientierte Nutzungsstatistiken erhoben.

Beispiel: Wissen um wenig oder häufig genutzte Features und Identifizierung von nicht genutzen Features.

Tags: Nachvollziehbarkeit

Änderung vorschlagen

C072 Es gibt eine fachliche Protokollierung von Vorgängen.

Beispiele: Anmeldung, Vertragsabschluss, Bearbeitungsverlauf

Tags: Nachvollziehbarkeit Organisatorisch

Änderung vorschlagen

C073 Alle fachlichen Anwendungsprotokolle sind auch ohne IT-Hintergrund verständlich.

Beispiel: 2019-01-03 08:22:31 Erfolgreiche Anmeldung an "OnlineBanking" (Methode: "Passwortzugang")

Tags: Kundenorientierung Nachvollziehbarkeit

Änderung vorschlagen

C075 Jeder fachliche Logeintrag beinhaltet die Versionsnummer und das Environment der Applikation.

Anmerkung: So ist bei jedem übermittelten Logeintrag transparent, an welchser Stelle der Logeintrag geschrieben wurde.

Tags: Nachvollziehbarkeit

Änderung vorschlagen

C076 Es gibt eine technische Protokollierung von Vorgängen.

Beispiel: Technisches Logging in Application Insights.

Tags: Nachvollziehbarkeit

Änderung vorschlagen

C077 Fallunterscheidungen und durchlaufene Anwendungspfade können bei Bedarf vollständig im technischen Protokoll eingesehen werden.

Beispiel: Technisches Logging in Application Insights.

Tags: Disziplin Nachvollziehbarkeit

Änderung vorschlagen

C078 Datenbankoperationen und Ergebnisse können bei Bedarf vollständig im technischen Protokoll eingesehen werden.

Beispiel: Protokollierung von SQL-IN und SQL-OUT Dumps mit Ausschluss persönlicher Nutzerdaten.

Tags: Disziplin Nachvollziehbarkeit

Änderung vorschlagen

C079 Jeder technische Logeintrag beinhaltet die Versionsnummer und das Environment der Applikation.

Anmerkung: So ist bei jedem übermittelten Logeintrag transparent, an welchser Stelle der Logeintrag geschrieben wurde.

Tags: Nachvollziehbarkeit

Änderung vorschlagen

5Bereitstellung

C099 Die Dokumentation von Änderungen an den Firewall-Regeln ist Bestandteil des Release-Prozesses.

Beispiel: Firewall-Regeln werden in einem Release-Task gebrannt, dokumentiert und bei folgenden Releases nachhaltig auf Notwendigkeit geprüft.

Tags: Disziplin Nachhaltigkeit Nachvollziehbarkeit Organisatorisch

Änderung vorschlagen

C100 Anwender werden über die Bereitstellung neuer Versionen informiert und auf das fachliche Versionsprotokoll verwiesen.

Beispiel: Hinweis bei Erstanmeldung nach Featureupdate.

Tags: Kundenorientierung Nachvollziehbarkeit

Änderung vorschlagen

5.1 Build

5.2 Deployment

6Betrieb

6.1 Monitoring

C102 Die tatsächlich genutzten Versionen der Applikation können für beliebige Zeiträume ermittelt werden.

Beispiel: Protokollierung der Versionsnummer bei Nutzung und Sicherstellung einer angemessenen Aufbewahrungsfrist der Information.

Tags: Kundenorientierung Nachhaltigkeit Nachvollziehbarkeit Organisatorisch

Ä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