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
- Interaktion mit Benutzern und Fremdsystemen
- Unter der Haube
- Entwicklung und Weiterentwicklung
- Ziel Umgebung und Betrieb
Architekturbewertung:
- Entscheidungen absichern
- Risiken kennen aufdecken
- Zielerreichung prüfen
- Kompromisse finden
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
- Einführung und Ziele
- Randbedigungen
- Kontextabgrenzung
- Lösungsstrategie
- Bausteinsicht
- Laufzeitsicht
- Verteilungssicht
- Konzepte
- Entwurfsentscheidunge
- Qualitätsszenarien
- Risiken
- Glossar
Softwarearchitektur: Stufen
- Zufällig
- Explizit
- Nachvollziebar
- 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
http://embarc.de/architektur-spicker
http://embarc.de/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”
- Unbewusste Inkompetenz
- Bewusste Inkompetenz
- Bewusste Kompetenz
- Unbewusste Kompetenz (gesunder Menschenverstand => hilft nur den Profi)
Typen von Unsicherheit
- Produkt-Unsicherheit (Was?)
- Methoden-Unsicherheitn (Wie? )
- Stakeholder-Unsicherheit (Wer?)
- Domänen-Unsicherheit (Worin?)
Ebenen von Unwissenheit
- Lack of Ignorance – Fehlen von Unwissenheit
- Lack of Knowledge – Fehlen von Wissen (ich weiß das ich etwas bestimmtes nicht weiß)
- Lack of Awareness – Fehlen von Bewusstsein (ich weiß, das ich irgend etwas nicht weiß)
- 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
http://smidig.de/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)