Category Archives: Unilang

Vierter JUG Saxony Day

Ich war heute auf dem JUG Saxony Day in Dresden. Ach ich hab jetzt gar keine große Lust viel zu schreiben:

WAR SUPER und HAT SICH GELOHNT! ūüôā

Mein pers√∂nliches Highlight war der Vortrag “Rundungsfehler” von Michael Wiedeking aber auch bei “√úber den bewussten Umgang mit Nichtwissen in IT-Projekten” von Prof. Dr. Tobias Br√ľckmann habe ich mir so einiges mitgenommen.

Hier meine Mitschrift:

(Ich habe vor Ort blind mitgemarkdownt und das ganze dann nach einem kurzen Review nur in html-umgewandelt Рes wäre sehr erstaunlich, wenn sich keine Tippfehler fänden)

1. Keynote

2017-09-29
Radisson Blue Hotel Radebeul

Eröffnung

500 Besucher, 90 Studenten
#JSD2017

Keynote – Software Architektur f√ľr alle!? – Software Architektur wird Entwicklerstil

Stefan Zöllner / embarc

  • The accidental Architecture – paper von Grady Boch

Entscheidungen und Konzepte

  1. Interaktion mit Benutzern und Fremdsystemen
  2. Unter der Haube
  3. Entwicklung und Weiterentwicklung
  4. Ziel Umgebung und Betrieb

Architekturbewertung:

  1. Entscheidungen absichern
  2. Risiken kennen aufdecken
  3. Zielerreichung pr√ľfen
  4. Kompromisse finden
  • Arc42
  • ATAM

Qualitätsmerkmale

  • Reliability (Zuverl√§ssigkeit)
  • Maintainability (Wartbarkeit)
  • Usability (Nutzbarkeit)
  • Functionality
  • Security
  • Compatiblity
  • Performance
  • Portability

Wechselwirkungen zwischen Qualitätsmerkmale:

  • Effizienz vs Portablilty
  • Sicherheit vs. Usability

Architekturvision

  • f√ľr den Projekterfolg kritische Architekturaspekte
  • f√ľr die Entwicklung unumst√∂√ülich wichtel Rahmen

Prinzipien vs. Konkrete Vorgaben – im Team vereinbaren

arc42

Gliederungsvorschlag zur Architekturdoku

  1. Einf√ľhrung und Ziele
  2. Randbedigungen
  3. Kontextabgrenzung
  4. Lösungsstrategie
  5. Bausteinsicht
  6. Laufzeitsicht
  7. Verteilungssicht
  8. Konzepte
  9. Entwurfsentscheidunge
  10. Qualitätsszenarien
  11. Risiken
  12. Glossar

Softwarearchitektur: Stufen

  1. Zufällig
  2. Explizit
  3. Nachvollziebar
  4. Wirkungsvoll
  • Wo finde ich die Struktur?
  • √úbergreifende Konzepte?
  • Kommunikation? Wie beantwortet Ihr Fragen nach Architekturans√§tzen, – Konzepten, – Entscheidungen?

Risikogetriebene Architektur

“You should play as much attention to software arch. a single it contributes risk to the overall Projekt…”

Literatur

Architektur Spicker

Blog


2. √úber den praktischen Umgang mit Nichtwissen in IT-Projekten

Prof. Dr. Tobias Br√ľckmann (CampusLab)

Nichtwissen, Unwissenheit, Unsicherheit

  • Softwareentwicklung ist Wissenserwerb und dessen √úbersetzung in Programmcode
  • Software repr√§sentiert das Wissen zum Zeitpunkt der Implementierung.

“gesunder Menschenverstand”

  1. Unbewusste Inkompetenz
  2. Bewusste Inkompetenz
  3. Bewusste Kompetenz
  4. Unbewusste Kompetenz (gesunder Menschenverstand => hilft nur den Profi)

Typen von Unsicherheit

  1. Produkt-Unsicherheit (Was?)
  2. Methoden-Unsicherheitn (Wie? )
  3. Stakeholder-Unsicherheit (Wer?)
  4. Domänen-Unsicherheit (Worin?)

Ebenen von Unwissenheit

  1. Lack of Ignorance – Fehlen von Unwissenheit
  2. Lack of Knowledge РFehlen von Wissen (ich weiß das ich etwas bestimmtes nicht weiß)
  3. Lack of Awareness РFehlen von Bewusstsein (ich weiß, das ich irgend etwas nicht weiß)
  4. Lack of Process РFehlen eines Prozesses (ich weiß, dass ich etwas nicht weiß, aber nicht, woher ich das wissen bekomme)

Ziel der Softwareprozesses

Ebene 1: Fehlen von Unwissenheit zum Zeitpunkt der Implementierung.

Typische Fehlermuster in der Praxis

Prinzip des perfekten Autodidaktikers

Was beschrieben / gesagt wurde gilt als vermittelt und verstanden

Prinzip der unklaren Probleme

  • Jeder Stakeholder hat anderes Problem
  • Jeder Stakeholder hat andere Vorstellungen von den Problemen der anderen

Prinzip der einfachen Verf√ľhrung

Fokus auf Dinge, die man gut kennt

Prinzip der Axiomatic von dokumentierten Annahmen

  • Was mit viel Aufwand dokumentiert wurde, wird nicht mehr hinterfragt – gilt als richtig
  • Dokumentierte Annahmen sind fix, √Ąnderungen schwer

Prinzip der zwanghaftgen Vollständigkeit

  • Erst wenn etwas wirklich vollst√§ndig ist, ist es gut.
  • Nur das Detail z√§hlt, der √úberblick ist nicht wichtig.

Prinzip des √ľberlagerten Wissen

  • Verschwendung vieler Ressourcen f√ľr das Anlegen gro√üer Lagerbest√§nd an Wissen
  • Lagerbest√§nd ist schnell √ľberlagert und wertlos

Wissen hat ein Haltbarkeitsdatum

Prinzip der Missachtung von Erkenntnisprozessen

  • Keine M√∂glichkeit auf gewonnene Erkenntnisse zu reagieren
  • Stigmatisierung von Erkenntnissen als Fehler

Prinzip der maximalen Distanz zum Kunden

Prinzip der Eigengefangenheit

“Dem Experten im Umgang mit einem Hammer erscheint jedes Problem als ein Nagel.”

Prinzip der Ummöglichkeit der eigenen Meta-Perskektive

Reflektor des eigenen Handelns bzgl. Des Wertbeitrags

Techniken zur Gewinnung und Verwaltung

Annahme: Wissen ist wertvolle Ressource

  • selten Uhren in Meetingr√§umen
  • Wie teuer war das Meeting? Wieviel Wissen w√ľrde gewonnen?

Verwaltung des Wissens (Lagerbeständ)

  • Definition of Ready (Spec vor der Entwicklung)
  • Definition of DONE

Veranschaulichen von Unwissen

  • Kategorien statt vermeintlicher Pr√§zision (Sch√§tzungen in Shirt gr√∂√üen M statt 54,034)
  • Explizite Ungenauigkeit statt vorget√§uscht Wissen
  • Aktuellen Stand der Erkenntnisse reflektieren (regelm√§√üig Neusch√§tzen und Repriorisierung)

Steuern auf Basis von gewonnene Wissen

  • Annahmgesteuert vs. Erkenntnissgesteuert

3. Agiles Sefi

Jan Gentsch & Julia Dellnitz

  • Arbeit am Produkt / im Team
  • Arbeit am Unternehmen
  • Arbeit an sich selbst (Vormachen) – inspect & adapt

Feedback

  • bekommen Negatives Feedback tut oft weh
  • geholt Feedback f√ľhlt sich besser an

Feedback selbst einholen

Agile Selfie


4. Ein Agile Knigge f√ľr Entwicklerteams

Lena M√ľller-Ontjes & Beginn Haider (Mach AG)

Prozesse ändern heißt sich selbst ändern!

Userstories

INVEST-Methode

  • Indeendent
  • Negotiable
  • Valuable
  • Estimable
  • Small
  • Testable

Sprintplanung

  • Team √ľbernimmt und unterst√ľtzt bei Erstellung von Stories
  • Fehler vermeiden statt Fehler finden
  • Hinterfragen
  • Besprochene dokumentieren
  • Keine Entwickler-Anleitung
  • Alles was das Team macht steht am Board
  • Work-in-Progress-Beschr√§nkung
  • QA ist Teil des Teams
  • Der Sprint ist und bleibt stabil (Aufgaben / Dauer)
  • Wissensinseln vermeiden

Retrospective

  • Nur f√ľr Teammitglieder!
  • Aktive Teilnahme aller Mitglieder
  • Moderator notwendig
  • Fokus ist nur der letzte Sprint
  • Keine Opferhaltung
  • Ma√ünahmen dokumentieren

Abnahme

  • Abnahme ist keine zweite QA
  • Konflikte eingehen -> alles muss auf den Tisch

Fazit

  • Vertrauen schaffen
  • Methoden einsetzen
  • L√∂sungsorientiert denken
  • Sprint-Alzheimer verhindern
  • Feedback geben

5. Serverless

Jörg Adler, Benjamin Otto (Mercato)

Cloud ist nicht nur Rechenleistung und Speicher sonder auch Servses

  • Infrastructure (IaaS)
  • Platform (PaaS)
  • Function (FaaS)

Tool to check: artillery

Function as a Service

  • alle Ressourcen beim Cloudanbieter
  • DEV stellt nur Code bereit
  • keine Persitenz
  • anbieterspezifisch
  • schnell scallierbar

AWS Lambda

  • functions can be bound to S3-buckets (eg. called on file-upload)
  • mehrere Sekunden f√ľr Start eines Lambdas
  • 2800 Lambdas – rund 40 TFlops (ca. 7 Cent/Sek)
  • JavaSDK von Amazon (Github: aws-lambda-java-libs)
  • Limits
  • Heap max. 1.5 GB
  • Laufzeit max. 5 Minuten

Kosten

  • Kostenalarme m√∂glich (cloud-watch)
  • deutlich preiswerter als Docker in elastic cloud

Serverless framework

CLI-tool zum Bauen und Deployen von serverless functions

Demo mit Lambda-Beispiel

-> in Ergänzung: https://www.golem.de/news/open-source-oracles-serverless-plattform-versteht-auch-aws-lambda-1710-130447.html


6. Rundungsfehler

Michael Wiedeking (Mathema Software GmbH)

Gleitkommazahlen

  • Je gr√∂√üer die Zahl, desto gr√∂√üer die Ungenauigkeit (logarithmisch wird der Abstand der darstellbar Zahlen gr√∂√üer)
  • Je mehr gr√∂√üer die Mantisse, desto genauer die Darstellung (… kleiner die Abst√§nde)

Rechnen mit Gleitkommazahlen

Wenn eine Zahl nicht darstellbar ist, dann nimm die nächst gelegene -> Problem der Unterschiedlichen Abstände -> Fehler bei großen Zahlen größer

Je nach Zahl treten große Fehler auf: 0.1 + 0.1 + 0.1 + 0.1 = 0.5

Fehler hängt ab von:
* Abstand von den existierenden Zahlen
* => Größe der Zahlen

=> Reihenfolge der Rechnung ist wichtig (Zwischenergebnisse können nicht darstellbar sein)