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

Mehr? Neuer? Schneller? Besser? ‒ Ein Plädoyer für Einfachheit und Suffizienz in der Softwareentwicklung

Mehr? Neuer? Schneller? Besser? ‒ Ein Plädoyer für Einfachheit und Suffizienz in der Softwareentwicklung

Session auf dem DevDay 2022 in Dresden
https://www.devday.de/dev-day-2022/talk/mehr-neuer-schneller-besser-ein-pladoyer-fur-einfachheit-und-suffizienz-in-der-softwareentwicklung/

Im PDF-Download könnt Ihr auch die Links zu weitern Informationen oder Quellen öffnen.

Uli Deiters

May 25, 2022
Tweet

More Decks by Uli Deiters

Other Decks in Technology

Transcript

  1. Mehr? Neuer? Schneller? Besser? 
 
 Ein Plädoyer für 


    Einfachheit und Suf fi zienz 
 in der Softwareentwicklung 
 Dev Day - Dresden - 24.05.2022
  2. Anmerkungen • Dies sind die Folien des Vortrags „Mehr? Neuer?

    Schneller? Besser? - Ein Plädoyer für Einfachheit und Su ffi zienz in der Softwareentwicklung“ beim „Dev Day“ am 24.05.2022 • Die Folien sind nicht selbsterklärend sondern dienen der Unterstützung des Vortrags • Ich freue mich über Fragen und Feedback Ein Plädoyer für Einfachheit und Suf fi zienz in der Softwareentwicklung von Ulrich Deiters ist lizenziert unter einer 
 Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.
  3. @ulid000 #Berlin #Fahrrad #OpenData #DiesUndDas Mit Menschen Software für Menschen

    entwickeln Uli Deiters Software Architect @ T-Systems Multimedia Solutions GmbH
  4. https://onezero.medium.com/the-e ff i ciency-delusion-f6a97241e1e1 https://www.ufried.com/blog/leaving_the_rat_race_1/ Ich kann langweilige oder lästige

    
 Dinge mit Computern automatisieren. Die ganze Welt besteht eigentlich aus Ef fi zienzproblemen. Und dann haben wir mehr Zeit oder Geld 
 für schöneres oder wichtigeres. NEUES ist GUT. Bloß nichts NEUES verpassen.
  5. "Maggi NaturPur Frühlingsgemüsesuppe mit Stempel: "Produkt vom Markt genommen"" by

    foodwatch is licensed under CC BY-SA 2.0 "Maggi NaturPur Frühlingsgemüsesuppe mit Stempel: "Produkt vom Markt genommen"" by foodwatch is licensed under CC BY-SA 2.0
  6. "2nd Gen iPod classic" by kumazo is licensed under CC

    BY-SA 2.0 "2nd Gen iPod classic" by kumazo is licensed under CC BY-SA 2.0
  7. Eleganz der Lösung Komplexität Genial
 einfach Perfekt aber umständlich Smart,

    p fiff i g, liebevoll Good enough Dumm einfach Gunter Dueck, Schwarmdumm: So blöd sind wir nur gemeinsam, 2015
  8. Reduzieren Der einfachste Weg zur Einfachheit führt über durchdachtes Weglassen

    Organisieren Durch Organisation sieht ein System aus vielen Elementen nach weniger aus Zeit Zeitersparnis fühlt sich wie Einfachheit an Lernen Wissen macht alles einfacher John Maeda, Simplicity: Die zehn Gesetze der Einfachheit, 2007 http://lawsofsimplicity.com
  9. Softwareentwicklung ist Wissensarbeit Das Lösen eines Problems ist die Überwindung

    einer Barriere durch Schließen einer Wissenslücke. Neues Wissen muss erworben und bestehendes restrukturiert werden. Es benötigt Lernen. Nach Jörg Dirbach, Markus Flüclkinger, Steffen Lentz: Software entwickeln mit Verstand
  10. „Any fool can write code that a computer can understand.

    Good programmers write code that humans can understand.“ - Martin Fowler
  11. „There are only two hard things in Computer Science: cache

    invalidation and naming things.“ - Phil Kartlton
  12. Nach Fellienne Hermans, The Programmers’ Brain Working Memory Long-Term Memory

    Short-Term Memory Filter
 Sensory Memory name_ctr_list Knowledge on names, counters and lists name_ctr_list Knowledge on names, counters and lists Knowledge on names, counters and lists Domain
 Knowledge Programming
 Concepts Conventions Customer Shipment Tree List Hashmap i j n m name
 ctr
 list
  13. KISS Keep It Simple[,] Stupid 
 (or Su ffi cient)


    YAGNI You Ain’t Gonna Need It
 EUFD Enough Up Front Design Coupling and Cohesion Was gehört zusammen und was nicht Understandibility Verständlichkeit für mich und andere Replaceability Eher zum Austausch eigenen Codes als von Frameworks/Technologien
  14. „A complex system that works is invariably found to have

    evolved from a simple system that worked. 
 
 A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.“ - John Gall
  15. „Simplicity is a great virtue but it requires hard work

    to achieve it and education to appreciate it. And to make matters worse: complexity sells better.“ - Edsger W. Dijkstra
  16. Die Produktivität und der gescha ff ene Wert lassen sich

    nur durch das Senken der Komplexität und der kognitiven Belastung auf allen Ebenen signi fi kant erhöhen.
 
 Fokussierung, bewusstes Weglassen und Lernen sind Werkzeuge, um die unverzichtbare Komplexität klar zu fassen und unbeabsichtigt Komplexität zu vermeiden.
  17. E ffi zienz Konsistenz Su ffi zienz Felix Sühlmann-Faul, Stephan

    Rammler, Der blinde Fleck der Digitalisierung, 2018 Verzicht
  18. Techniksu ff i zienz
 Die Nutzungsdauer durch langlebige und reparierbare

    Hard- und Software erhöhen. Felix Sühlmann-Faul, Stephan Rammler, 
 Der blinde Fleck der Digitalisierung, 2018 Steffen Lange, Tilman Santorins, Smarte Grüne Welt, 2018
  19. Datensu ff i zienz
 Nur so viel permanente
 Vernetzung und

    Datenverkehr 
 wie sinnvoll und nötig. Felix Sühlmann-Faul, Stephan Rammler, 
 Der blinde Fleck der Digitalisierung, 2018 Steffen Lange, Tilman Santorins, Smarte Grüne Welt, 2018
  20. Felix Sühlmann-Faul, Stephan Rammler, 
 Der blinde Fleck der Digitalisierung,

    2018 Steffen Lange, Tilman Santorins, Smarte Grüne Welt, 2018 Nutzungssu ff i zienz
 Bewusste unterstützende Nutzung ermöglichen statt Aufmerksamkeit zu missbrauchen.
  21. Selber-Weiterdenken … Software Design Decoded 
 66 Ways Experts Think

    
 Marian Petre, André van der Hoek https://mitpress.mit.edu/books/software-design-decoded