Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Art of Software Reviews

The Art of Software Reviews

Jede Software besitzt "Potential", also "besser geht immer". Aber bevor wir anfangen, wild an unseren Systemen zu verschlimmbessern, benötigen wir zuerst einen ordentlichen Überblick über dessen Stärken und Schwächen.

Der Vortrag zeigt methodisches Vorgehen solcher Reviews, beginnend mit dessen konkreten Zielen, dem (schwierigen) Scope sowie den notwendigen Personen (aka Stakeholder).
Anschliessend schauen wir etwas genauer auf verschiedene Untersuchungsbereiche, wie Architektur, Code, Technologie, Qualitätsanforderungen bis hin zu Anwendungsdaten und
den Entwicklungs- und Rollout-prozessen. Ein Kernbegriff dabei lautet "iterative Breitensuche", wobei wir die bedarfsgerecht durch Tiefensuche ergänzen. Zu jedem Untersuchungsbereich gebe ich Beispiele und zeige methodische Werkzeuge um effektiven und praxisnahen Einsatz.

Schliesslich bekommen Sie noch Tipps, die Sie für überzeugende Darstellung und Kommunikation Ihrer Schlussfolgerungen und Empfehlungen beachten sollten.

Der Vortrag richtet sich an Software-Entwicklungsteams, Architekt*innen, Product-Owner sowie technisches Management.

Dr. Gernot Starke

December 08, 2020
Tweet

More Decks by Dr. Gernot Starke

Other Decks in Programming

Transcript

  1. • Übersicht: Stärken+Schwächen als Grundlage für Verbesserung • Neutrale Meinung

    Extremfall: Juristisch relevante Gutachten • neue Ideen / Anregungen • Bestätigungvon Vermutungen Warum – Was – Wer - Wie
  2. • steigende Zahl „Prio-1 Fehler“ • Entwicklung wird immer langsamer

    • (Neues) Management benötigt „neutrale“ Einschätzung Warum – Was – Wer - Wie Beispiele
  3. *: XY z.B. Warenwirtschaft, online-Shop, Planungssystem, ERP-System, whatever-you-develop unser XY*

    externe Nachbarsysteme 3rd Party Zulieferung („Framework“) Datenquel le Datenquel le Datenquel le Datenquelle Vor- verarbeitung nachgelagerte Verarbeitung mobile App Fremd- firmen Fremd- firmen etc.
  4. • internes Konzern-CRM: • Prozesse: Content-Akquise, Aufbereitung, Freigabe • Projektorganisation

    • SW-Technik • kein Betrieb Warum – Was – Wer - Wie Beispiele
  5. • (Groß-)Maschinenbau: • SW-Architektur + Implementierung • on-Device, Konfigurations- /Planungssystem

    • Projektorganisation • keine Datenquellen / -senken Warum – Was – Wer - Wie Beispiele
  6. + unabhängig + neutral + neue Impulse - längere Einarbeitung

    - Risiko „oberflächlich“ - höhere Kosten + fachliche Erfahrung + im Unternehmen vernetzt + kostengünstig - Risiko „befangen“ - Risiko „betriebsblind“ - kein Benchmarking - „Prophet im eigenen Land“ Warum – Was – Wer - Wie
  7. • Automotive (Zulieferer): • 1 Person extern max. 10 PT)

    (Qualitative Analyse analog ATAM), • 2 Personen intern Warum – Was – Wer - Wie Beispiele Zukunftssicherheit der Architektur „Multimedia-Framework“
  8. • (Riesen-)Online-Shop: • 4 Personen extern (INNOQ), ca. 100 PT

    • 3 Personen intern, 30+ PT • Verpflichtung, 24 Monate keine weiteren Aufträge für dieses Unternehmen Warum – Was – Wer - Wie Beispiele Zukunftsfähigkeit von Architektur und Implementierung
  9. • Telco („Billing-Kette“): • 3 externe Dienstleister, jeweils 2-3 Personen,

    gesamt ca. 200 PT • 2-3 Personen intern, 30+ PT • Aufteilung entlang der Prozesskette (u.a. Wirknetz, Pre-/Post-Billing) Warum – Was – Wer - Wie Beispiele Tragfähigkeit der Architektur sowie Integration von Standardprodukten
  10. Access ALL Areas. Breitensuche Stakeholder Kontext Qualität Architektur Code Laufzeit

    Daten Tests Prozesse Infrastruktur Security .... Analyze
  11. • (Riesen-)Online-Shop: • Interviews zeigten: • (krasse) Diskrepanzen in Sichtweisen

    Management + Entwicklungsteams • Architekturprobleme, die beim Management nicht bekannt waren Warum – Was – Wer - Wie Beispiele Zukunftsfähigkeit von Architektur und Implementierung
  12. Warum – Was – Wer - Wie Metriken • Kopplung

    / Abhängigkeiten • Code-Komplexität • Performance • … gut
  13. Warum – Was – Wer - Wie Metriken • Kopplung

    / Abhängigkeiten • Code-Komplexität • Performance • … • Fehler pro Baustein • Know-How pro Baustein • Änderungshäufigkeit • … gut besser
  14. • Telekommunikation: • Management beobachtet (Java-) Metriken nach Ampel-System (CAST

    Application Intelligence Platform) • >70% des Systems in xslt implementiert • nicht von CAST erfasst Warum – Was – Wer - Wie Beispiele Ziel: „Benchmarking“: Produktivität von Entwicklung prüfen
  15. Warum – Was – Wer - Wie Breitensuche Metriken Struktur

    Anwendungs- daten Qualität (ATAM) Security Prozesse
  16. • „Warenwirtschaft“: • Fachlich sauber strukturiert • In vielen Teilen

    (nearly) clean-code • Datenbank + -strukturen völlig desolat Warum – Was – Wer - Wie Beispiele Ziel: Verschiedene Wege zur „ganzheitlichen Verbesserung“ aufzeigen
  17. • (Groß-)Maschinenbau: • Prozessproblem (Know-How „Flaschenhals“) führt zu erheblichen Risiken

    in Code Beispiele Ziel: Möglichkeiten zur Verbesserung der Architektur aufzeigen Warum – Was – Wer - Wie
  18. Warum – Was – Wer - Wie Der Abschluss... Bericht:

    • Management Summary • (priorisierte) Probleme • Maßnahmenvorschläge gut
  19. Warum – Was – Wer - Wie Der Abschluss... Bericht:

    • Management Summary • (priorisierte) Probleme • Maßnahmenvorschläge 2 Vorträge: • Vorab „in kleiner Runde“ • Feinschliff • Abschluss „in großer Runde“ gut besser
  20. • Spezial-Maschinenbau: • Management fokussiert auf mögliche Problemen • Abschlusspräsentation

    fokussiert auf Stärken der Teams + des Systems Warum – Was – Wer - Wie Beispiele Ziel: „Benchmarking“ Architektur und Entwicklung
  21. Fazit 1. Ziele und Scope klären 2. (mehrere!) Stakeholder involvieren

    3. Schwerpunkte aus Zielen ableiten 4. Breiten- vor Tiefensuche 5. Mehr als Code untersuchen!! 6. Ergebnisse präsentieren