pientka built to last doag 2016

45
Softwareevolution Built To Last Prinzipien für nachhaltige Softwareevolution

Upload: others

Post on 13-May-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pientka Built To Last DOAG 2016

Softwareevolution

Built To LastPrinzipien für nachhaltige Softwareevolution

Page 2: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Wer wir sind.

2© Materna GmbH 2016

Gründung: 1980Mitarbeiter: 1.700Umsatz 2015: 210 Mio. €

ITK-Full-Service-Dienstleister im Premium-Segment

Familienunternehmen

Zielgruppe: IT-Organisationen und Fachabteilungen in Privatwirtschaft und Behörden

Dortmund

Düsseldorf

Bad Vilbel

Stuttgart

Erlangen

München

Dresden

Bremen Hamburg

BerlinWolfsburg

Lüneburg

Köln

Nürnberg

Heidelberg

FI

SE

DK

PL

SK

UKNL

DECZ

NOR

Orlando, Florida, USA

Toronto, Kanada

Page 3: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Wer ist Frank Pientka?

Dipl.-Informatiker (TH Karlsruhe)

Principal Software Architekt in Dortmund

iSAQB-Gründungsmitglied

heise.de/developer/Federlesen-Kolumne

Über 20 Jahre IT-ErfahrungVeröffentlichungen und Vorträge

Page 4: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de 4

Built to last: Inhalt

Was ist Nachhaltigkeit? Warum nachhaltige Software? Was ist Wartbarkeit,

Erweiterbarkeit, Änderbarkeit? Komplexität steigt mit der Größe Softwareevolution – externe

Bibliotheken, Risikopotential OpenSource

Der Weg zu einer API-Ökonomie – den Schatz heben

Was muss sich ändern? Fazit

Page 5: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.dePage 5

Gebaut für die Ewigkeit: Was ist eine nachhaltige Architektur?

Die meiste Zeit geht dadurch verloren, dass man nicht zu Ende denkt.Alfred Herrhausen

Page 6: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de 6

Planen oder evolutionär

entwickeln –Alt trifft Neu

Page 7: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Schema der nachhaltigen Entwicklung seit über 300 Jahren

7

Jungwuchs Dickung Stangenholz Altholz

Informatik Praxis

Page 8: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Software Maintenance SWEBOK Guide V3.0

8

Definitions andTechnology

Nature ofMaintenance

Need forMaintenance

Majority ofMaintenance Costs

Evolution ofSoftware

Categories ofMaintenance

Technical Issues

Management Issues

Maintenance CostsEstimation

Maintenance Measurement

Maintenance Processes

Maintenance Activities

ProgramComprehension

Reengineering

Reverse Engineering

Migration

Retirement

Software Maintenance

Fundamentals

Key issues in Software

Maintenance

TechniquesMaintenance

MaintenanceProcess

SotwareMaintenance Tools

Software Maintenance

Page 9: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

ISO 25010 für Softwarequalität

9

Wartbarkeit/Änderbarkeit

Analysier-barkeit

Modifizier-barkeit Testbarkeit

Zuverlässigkeit

Fehlertoleranz

Stabilität

Übertragbarkeit

Interoperabilität

Anpassbarkeit

Austausch-barkeit

Benutzbarkeit Effizienz FunktionalitätWartbarkeit/Änderbarkeit

Zuverlässigkeit Übertragbarkeit

PrivatsphäreVertrautheitInformationelle Selbstbestimmung

Page 10: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de 10

“Software engineering is the application of a systematic, disciplined, quantifiable approach to the development,

operation, and maintenance of software”

Page 11: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

http://en.wikipedia.org/wiki/Long-term_support

11

Long-term support (LTS) is a product lifecycle management

policy for computer software, especially open-source software, that applies the tenets of reliability

engineering to the software development process and software

release life cycle. Long-term support extends the period of

software maintenance; it also alters the type and frequency of software updates (patches) to reduce the risk, expense, and disruption of

software deployment

Page 12: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

http://wiki.eclipse.org/LTS/LTS_Ready

12

A build that builds on Eclipse Foundation hardware andCan be cloned/checked out with one stepIs documentedIs version controlledIs automatedIs deterministic given the same source code and third party librariesIs easily reproducible on suitably-configured systemsCan refer to compilers and other tools from a configurable locationCapable of building without an active Internet connectionCapable of pulling dependencies from a known controlled source

Adheres to Eclipse IP policiesBug Tracking: no code change can be released without proper bugzilla entryRelease Management: part of the annual simultaneous release Supply & Demand: At least two LTS IWG member companies offering support

Page 13: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Die Entwicklung der IT

13

BusinessSupport

chaotisch

Host

kompliziert

1960 1970 1980 1990 2000 2010 2020

Midrange

PCC/S

WWWCloud

MobileM2MIoT

SWKrise

komplex

“The computer industry is the only industry that is more fashion-driven than women’s fashion” Larry J. Ellison, Oracle

Page 14: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Was wenn Anbieter, Produkte, Partner … verschwinden?

14

Page 15: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Alles ändert sich - Lebenszyklen UI, Anwendung, Daten

15

GUIFrameworks

BusinessLogic

CommonLibs

Data

Page 16: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

How Buildings Learn: What Happens After They’re Built (Stewart Brand 1994)

16

Page 17: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Risikopotential OpenSource

17

Alle abhängigen Source im eigenen Repository haltenOS-Lizenz Governance-Prozess im CI-Prozess integrieren

http://choosealicense.com/appendix/

Page 18: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Technology Radar https://github.com/bdargan/techradar

18

Page 19: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Architectural Design Technologiebaum, Designkatalog

19

Page 20: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Scalability: So Much More Than Just Technology

20

Vicious and Virtuous Technology Cycles

(from “The Art of Scalability”, Abbott, Fisher)

Page 21: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

2010

2003

1996

1989

1982

1975

1968

Systemevolution: Wie entwickelt sich Software über die Zeit?

21http://users.jyu.fi/~koskinen/smcosts.htm

“If I had more timeI would have written less code”

Page 22: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de 22

Page 23: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de 23

1 Blockcode: A visual programming toolkit 1 Dethe Elza2 A Continuous Integration System 17 Malini Das3 Clustering Consensus 33 Dustin J. Mitchell4 Contingent: A Fully Dynamic Build System 61 Brandon Rhodes, Daniel Rocco5 A Web Crawler With asyncio Coroutines 83 Jesse Jiryu Davis, Guido vanRossum6 Dagoba: an in-memory graph database 109 Dann Toliver7 DBDB: Dog Bed Database 141Taavi Burns8 An Event-Driven Web Framework 153 Leo Zovic9 A Flow Shop Scheduler 175 Christian Muise10 An Archaeology-Inspired Database 191Yoav Rubin11 Making Your Own Image Filters 215 Cate Huston12 A Python Interpreter Written in Python 243 Allison Kaptur13 A 3D Modeller 267 Erick Dransch14 A Simple Object Model 291 Carl Friedrich Bolz15 Optical Character Recognition (OCR) 309 Marina Samuel16 A Pedometer in the Real World 323 Dessy Daskalov17 The Same-Origin Policy 347 Eunsuk Kang, Santiago Perez De Rosso, and Daniel Jackson18 A Rejection Sampler 375 Jessica B. Hamrick19 Web Spreadsheet 395 Audrey Tang20 Static Analysis 409 Leah Hanson21 A Template Engine 431 Ned Batchelder22 A Simple Web Server 451 Greg Wilson

Page 24: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Linux Kernel - Wie entwickelt sich Software über die Zeit?

24http://www.daedtech.com/human-cost-tech-debt/

Page 25: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Entwicklung und Größe von Modul-Repositories

http://www.modulecounts.com

25

Page 26: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

17 Lines of OpenSource Code Took Down Silicon Valley’s Hottest Startups

npm install left-padHTTP Code 404

Azer Koçulu unpublished his kik package and 272 other packages. Hundreds of failures per minute, as dependent projects

and their dependents, and their dependents… all failed when requesting the now-unpublished package.

#NPMGate 22.3.2017

26

Page 27: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

State of the Software Supply Chain 2016

27

Page 28: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Qualitätszenarien für nachhaltige Architektur entwickeln (Heiko Koziolek)

28

Änderungs-/Wachstumsszenarien entwerfen Entscheidungen validieren, Alternativen betrachtenKompromisse festhalten

Risikomanagement

Page 29: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Sustainability Guidelines for Long-Living Software Systems

29

Requirements Management,

Risk, Analysis,

Tracing, ...

ArchitectureStyles,

Tactics, ...

DesignPatterns,

Bad Smells, Refactoring, Metrics, ...Implementation

Code Doc., Code styles, Code

generation, ...

TestingTestbeds,

Regression testing, ...

MaintenanceReengineering,

Arch. compliance, ..

Phase independent:Documentation, Knowledge, Management, Process, Improvement, OrganizationalStructures, ...

Quelle: Heiko Koziolek

Page 30: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Überwachen wichtiger Metriken für nachhaltige Architektur (Heiko Koziolek)

30

Page 31: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Wann lohnt sich was? (Martin Fowler: start with a monolith)

31

Complexity

Project size over time

Monolith

Microservices

Overhead

Modular boundariesReduce complexityNatural threashold

Page 32: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de 32

Nachhaltigkeit bei Architekturstilen – best of four

Schichten Ereignisorientiert Microkernel MicroservicesWartbarkeitErweiterbarkeitAnpassbarkeitAustauschbarkeit

Software Architecture Patterns, Mark Richards, 2015, O’Reilly

Page 33: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Risikopotential APIs

33

Schnittstelle Protokoll Implementierung Infrastruktur Betrieb Überwachung Änderung

Hohe Kosten, Risiken

Besonders Cloud, IoT

Page 34: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Wie Schnittstelle designen? – das OSI-Schichtenmodell

34

TCP Robustness Principle (RFC793)

Jon Postel (1981)

"be conservative in what you do, be liberal in what you accept from others"

Page 35: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

„Ein guter Zaun schafft gute Nachbarn“ Robert Frost

35

„Ein guter Vertrag schafft gute

Nachbarn“

Page 36: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

36

REST is software design on the scale of decades:

every detail is intended to promote software longevity

and independent evolution. Many of the constraints are

directly opposed to short-term efficiency.

October 2008

Page 37: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

7 Arten der Kompatibilität

37

1. Abwärtskompatibilität2. Aufwärtskompatibilität3. Binärkompatibilität 4. Quelltextkompatibilität5. Verhaltenskompatibilität6. Fehlerkompatibilität7. Inkompatibilität

Page 38: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Wiederverwendbarkeit ist nicht einfach

38

„Reuse is something that is far easier to say than to do. Doing it requires both good design and very good documentation.“

David Parnas (1964)

Page 39: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Langlebigkeit als Softwarequalität umfaßt

39

Prozess Produkte Infra-struktur Personen Kultur

Page 40: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de 40

Fazit: Prinzipien für nachhaltige Software

Simplify your complexity – Reduce your dependencies

Design-for-Replacement statt Design-for-Reuse

Architekturentscheidungen dokumentieren Lebenszyklus& Lizenz der Komponenten

berücksichtigen (3rd party, OS) Ausgewogene Balance aller wichtigen

Qualitätsaspekte Regelmäßig überprüfen und anpassen

Page 41: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de 41

Nutzen einer nachhaltigen Softwarearchitektur

Bereitstellung der geforderten Produktqualitäten

Bessere Anpassbarkeit, Erweiterbarkeit

Bessere Planbarkeit, Budgetreue Geringere Wartungskosten Investitionssicherheit,

Risikominimierung Langlebigkeit ist ein ethischer

Wert

Page 42: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Nachhaltige Softwareentwicklung:

42

ein komplexes, empfindliches Ökosystem, mit vielen Beteiligten im Einklang

Ökologie

Soziales

Ökonomie

Page 43: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

ÖkologieReparatur-vor

Wiederverwendung

ÖkologieReparatur-vor

Wiederverwendung

ÖkonomieAPI

Prozess

ÖkonomieAPI

Prozess

QualitätRobust

DauerhaftErweiterbar

QualitätRobust

DauerhaftErweiterbar

SozialesWissenskulturFehlerkultur

SozialesWissenskulturFehlerkultur

Gebaut für die Ewigkeit

Gebaut für denWandel

Gebaut für denWandel

Page 44: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Weitere Infos:

Measuring Architecture Sustainability, Heiko Koziolek et al, IEEE Software, 2013, vol. 30Software Engineering with an Agile Development Framework, WikiBook, 2012Free and Open Source Software Technology for Sustainable Development: Sulayman Sowe, 2012Sustainable Software Development: An Agile Perspective, Kevin Tate, 2005Designing for Sustainability,Tim Frick, O'Reilly, 2016 Building Maintainable Software, Joost Visser et al, O'Reilly Media, 2016 Langlebige Software-Architekturen, Carola Lilienthal, dpunkt, 2015Gebaut für den Wandel, Frank Pientka, OBJEKTSpektrum 02/2015

44

Page 45: Pientka Built To Last DOAG 2016

© Materna GmbH 2016 www.materna.de

Vernetzt. Kontakt.Materna GmbHFrank PientkaVoßkuhle 3744141 Dortmund+49 231 [email protected]