Slide 1

Slide 1 text

© 2013 Dr. Gernot Starke / arc42 Why Architecture Improvement

Slide 2

Slide 2 text

© 2013 Dr. Gernot Starke / arc42 Architecture Improvement Method Gernot Starke
 & aim42-Contributors" " http://aim42.org" " http://aim42.github.io"

Slide 3

Slide 3 text

© 2013 Dr. Gernot Starke / arc42 Warum aim42? Methodischer Rahmen für ‣  Reviews / Audits ‣  Veränderungs-/Optimierungsprojekte Productizing von Know-How/Erfahrung ‣  Synergie mit arc42

Slide 4

Slide 4 text

© 2013 Dr. Gernot Starke / arc42 Informatik" von Systemen"

Slide 5

Slide 5 text

© 2013 Dr. Gernot Starke / arc42 Informatik" an Systemen"

Slide 6

Slide 6 text

© 2013 Dr. Gernot Starke / arc42 einzelner Klassen" an Systemen"

Slide 7

Slide 7 text

© 2013 Dr. Gernot Starke / arc42 Gründe für Anpassung von Software ‣  Neue / geänderte Anforderungen ‣  Änderungen im Kontext ‣  Externe Schnittstellen, Datenformate ‣  Technologie ‣  Organisation ‣  Aufgetretene Probleme ‣  Fehler ‣  Verletzung von Qualitätsanforderungen ‣  Hohe Betriebs- oder Änderungskosten ‣  Intrinsische Motivation von Entwicklern Geld!

Slide 8

Slide 8 text

© 2013 Dr. Gernot Starke / arc42

Slide 9

Slide 9 text

© 2013 Dr. Gernot Starke / arc42

Slide 10

Slide 10 text

© 2013 Dr. Gernot Starke / arc42 These (nach Martin Fowler, 2014) You need to talk business!

Slide 11

Slide 11 text

© 2013 Dr. Gernot Starke / arc42 Iterative Phased Improvement •  architecture •  code •  runtime •  organization Estimate „value“ of problems / risks / issues and their remedies

Slide 12

Slide 12 text

© 2013 Dr. Gernot Starke / arc42 Grundbegriffe...

Slide 13

Slide 13 text

© 2013 Dr. Gernot Starke / arc42 Crosscutting-Activities (1) analyze evaluate improve iterate iterate iterate Probleme & Maßnahmen

Slide 14

Slide 14 text

© 2013 Dr. Gernot Starke / arc42 Crosscutting-Activities (2) analyze evaluate improve Probleme & Maßnahmen (bewertete) Probleme 1 2 3 4 (bewertete) Maßnahmen 1 2 3 4 5 6 7

Slide 15

Slide 15 text

© 2013 Dr. Gernot Starke / arc42 Improvement Backlog (kompakte Fassung) ‣  Probleme mit Maßnahmen zur Behebung ‣  Inklusive Kosten ‣  Probleme: Kosten pro Zeit/Auftreten ‣  Maßnahmen ‣  Risiken der Behebung Prio Problem Maßnahmen (Remedies) Kosten (Problem) Kosten (Behebung) Risiken 1 2 .... 3 .....

Slide 16

Slide 16 text

© 2013 Dr. Gernot Starke / arc42 Analyze Practices and Patterns ‣  ATAM ‣  Capture Quality Requirements ‣  Context-Analysis ‣  Data-Analysis ‣  Development-Process-Analysis ‣  Documentation-Analysis ‣  Issue-Tracker-Analysis ‣  Profiling ‣  Qualitative Analysis ‣  Quantitative-Analysis ‣  Questionnaire ‣  Root Cause Analysis ‣  Runtime-Artifact-Analysis ‣  Software Archeology ‣  Stakeholder-Analysis ‣  Stakeholder-Interview ‣  Static Code Analysis ‣  Use-Case-Cluster ‣  View Based Understanding

Slide 17

Slide 17 text

© 2013 Dr. Gernot Starke / arc42 Sample Practices from ANALYZE ‣  ATAM: Architecture Tradeoff Analysis Method. Systematic approach to find architectural risks and tradeoffs (compromises) . ‣  DATA ANALYSIS: Analyse and inspect the data created and manipulated by the system for its content, structure, quantity and size. ‣  PRE-INTERVIEW-QUESTIONNAIRE: Prior to interviewing stakeholders, present them with a written questionnaire, so they can reflect in advance. ‣  STATIC CODE ANALYSIS: Analyse source code to identify building blocks and their dependencies, determine complexity, coupling, cohesion and other structural properties.

Slide 18

Slide 18 text

© 2013 Dr. Gernot Starke / arc42 Evaluate Practices and Patterns ‣  Estimate in Interval ‣  Estimate Problem Cost ‣  Estimate Remedy Cost ‣  Failure Mode and Effect Analysis ‣  Impact Analysis

Slide 19

Slide 19 text

© 2013 Dr. Gernot Starke / arc42 Improvement Practices and Patterns ‣  Anticorruption-Layer ‣  Assertions ‣  Automated-Tests ‣  Branch-For-Improvement ‣  Extract-Reusable-Component ‣  Group-Improvement-Actions ‣  Improve-Code-Layout ‣  Introduce Boy Scout Rule ‣  Interface Segregation Principle ‣  Isolate Changes ‣  Keep-Data-Toss-Code ‣  Never-Change-Running- System ‣  Quality-Driven-Software- Architecture ‣  Refactoring ‣  Refactoring-Plan ‣  Remove-Nested-Control- Structures ‣  Sample-For-Improvement ‣  Schedule-Work ‣  Untangle-Code ‣  Use Invariants To Kill Zombies

Slide 20

Slide 20 text

© 2013 Dr. Gernot Starke / arc42 Crosscutting Practices and Patterns ‣  Estimate in Interval ‣  Explicit Assumption ‣  Fast Feedback ‣  Collect Problems ‣  Collect Opportunities for Improvement ‣  Improvement Backlog

Slide 21

Slide 21 text

© 2013 Dr. Gernot Starke / arc42 Sample Crosscutting Practices and Patterns ‣  COLLECT PROBLEMS: Maintain a central list or overview of known problems, together with their cost/effort evaluation. ‣  COLLECT OPPORTUNITIES FOR IMPROVEMENT: In all AIM42 phases, one should identify remedies for the currently known problems or their causes. ‣  IMPROVEMENT BACKLOG: A list or collection of remedies and their cost/effort/risk estimation. ‣  In the sense of lean and agile, teams shall try to FAIL FAST: The later a lack of quality is identified the higher are the costs to fix it.

Slide 22

Slide 22 text

© 2013 Dr. Gernot Starke / arc42 Praktisch eingesetzt... ‣  2014: ÖBB (Audit TicketShop) ‣  pre-innoQ ‣  Bosch Car ‣  Siemens Rail ‣  T-Mobile Billing ‣  2013: KRONES (Audit Systemsoftware für Getränkeabfüllanlagen)

Slide 23

Slide 23 text

© 2013 Dr. Gernot Starke / arc42 Build & DevelopmentProcess ‣  Method Guide: AsciiDoc ‣  Gradle, Travis-CI ‣  Result: HTML

Slide 24

Slide 24 text

© 2013 Dr. Gernot Starke / arc42 Website Whitepaper

Slide 25

Slide 25 text

© 2013 Dr. Gernot Starke / arc42 Code: github

Slide 26

Slide 26 text

© 2013 Dr. Gernot Starke / arc42 Issues: viele...

Slide 27

Slide 27 text

© 2013 Dr. Gernot Starke / arc42 Contributors...

Slide 28

Slide 28 text

© 2013 Dr. Gernot Starke / arc42 Publicity... (0): OOP, Januar 2014 https://speakerdeck.com/aim42/aim42-architecture- improvement-method Dito: JAX, Mainz

Slide 29

Slide 29 text

© 2013 Dr. Gernot Starke / arc42 Publicity... (1): BT-Magazin Mai 2014

Slide 30

Slide 30 text

© 2013 Dr. Gernot Starke / arc42 Publicity... (2): ECSA 2014 (August) European Conference on Software Architecture

Slide 31

Slide 31 text

© 2013 Dr. Gernot Starke / arc42 Contributions welcome ‣  Method guide: http://aim42.github.io ‣  Source: https://github.com/aim42/aim42 ‣  https://github.com/aim42/aim42/issues ‣  Twitter: @arc_improve42 ‣  Mailing list: [email protected]