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 |
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
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.
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...
C128 Sitzungsidentifikatoren werden nach erneutem Anmelden erneuert.
Beispiel: Neue SessionID.
Tags: Nachvollziehbarkeit Security
C123 Session-Timeouts sind explizit gesetzt.
Beispiel: Keine Verwendung von Standardkonfiguration, sondern explizite Angabe der Gültigkeitsdauer.
C040 Die Detailstufe des technische Protokolls ist konfigurierbar und die Implementierung spiegelt das Konzept wieder.
Beispiel: Unterscheidung zwischen Verbose, Info, Warning und Error.
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
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.
C011 Sämtliche Codeänderungen werden durch ein Versionskontrollsystem verwaltet.
Beispiel: Git
Tags: Nachvollziehbarkeit
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
C043 Sämtliche Commit-Messages sind in derselben Sprache formuliert.
Beispiel: englisch.
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
C058 Timestamps enthalten eine Angabe zur Zeitzone.
Anmerkung: Der verwendete Datentyp sollte die Angabe einer Zeitzone sicherstellen.
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.
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.
C066 Ein Versionsprotokoll (Changelog) ist in fachlicher Sprache vorhanden und über die Applikation erreichbar.
Beispiel: Build-In Changelog oder Verlinkung auf Web-Page.
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
C068 Eigene APIs sind dokumentiert. Die Dokumentationen ist versioniert und Teil des Code-Repositorys.
Beispiel: Swagger oder ähnliche Produkte.
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
C125 Alle beteiligten Akteure eines Projektes sind mit entsprechender Rollenangabe dokumentiert.
Beispiel: Projektleiter, Entwickler, Kunden, Fachbereiche, Tester, etc...
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
C065 Das Branching-Konzept ist dokumentiert.
Beispiel: Git-Flow
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
C072 Es gibt eine fachliche Protokollierung von Vorgängen.
Beispiele: Anmeldung, Vertragsabschluss, Bearbeitungsverlauf
C073 Alle fachlichen Anwendungsprotokolle sind auch ohne IT-Hintergrund verständlich.
Beispiel: 2019-01-03 08:22:31 Erfolgreiche Anmeldung an "OnlineBanking" (Methode: "Passwortzugang")
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
C076 Es gibt eine technische Protokollierung von Vorgängen.
Beispiel: Technisches Logging in Application Insights.
Tags: Nachvollziehbarkeit
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
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
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
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
C100 Anwender werden über die Bereitstellung neuer Versionen informiert und auf das fachliche Versionsprotokoll verwiesen.
Beispiel: Hinweis bei Erstanmeldung nach Featureupdate.
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
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