Agile&Architektur
Mar/n&Bengl,&Christoph&Mathis
How&to&develop&outstanding&products
ArchitekturEine&Mo/va/on
„Architektur&
repräsen/ert&die&signifikanten&Design@Entscheidungen,&die&ein&System&gestalten,&wobei&‚signifikant’&durch&die&Kosten'von'Änderungen&bes/mmt&wird“
Grady'Booch
Wie&konstruiert&man&für&Änderbarkeit
Gebäude:&Fritz&Haller
Conway´s&Gesetzund&die&Architektur
Conway‘s&Gesetz
..organiza/ons&which&design&systems&...&are&constrained&to&produce&designs&which&are'copies'of'the'communica8on'structures&of&these&organiza/ons
Teams&müssen&
cross@funk/onal&sein
Was&bes/mmt&die&Kosten&von&Änderungen
ImprovementStart with the simplest solution that can possibly work.Improve it until it is good (transparent, maintainable)
Test succeedsRefactor
Write new test Test fails Write code
='Test'Driven'Development'+'Refactoring'+'Pa@erns
Architektur
AgileEngineering
='Business'Epics,'ArchitekturEEpics
Architektur
GrundsatzEEntscheidungen
Rahmenbedingungen ...
Agile&Architektur&heißt&nicht,dass&es&keine&Upfront&Entscheidungen&gibt
Aber&Upfront&Entscheidungen&sind&nicht&der&einzige&Treiber
Treiber:&1.&BoXom&Up&:&Refactoring,&TDD,&PaXerns2.&Top&Down:&Vorarbeiten,&Vision,&S/l
3.&Outside&in:&User&Experience,&BDD
und:&
Embrace&Change
Der&Änderungsprozess
ImprovementStart with the simplest solution that can possibly work.Improve it until it is good (transparent, maintainable)
Test succeedsRefactor
Write new test Test fails Write code
='Test'Driven'Development?
Scrum'Prozess
AgileEngineering
ImprovementStart with the simplest solution that can possibly work.Improve it until it is good (transparent, maintainable)
Test succeedsRefactor
Write new test Test fails Write code
Nicht'alles
ist'linear
Krea8ves'Arbeiten'hatlaterale'und'lineare'Aspekte
Plan
DoCheck
Act
ImprovementStart with the simplest solution that can possibly work.Improve it until it is good (transparent, maintainable)
Test succeedsRefactor
Write new test Test fails Write code
Ideas&for&an&experiment:
Non@Linear,&Divergent
Develop:Linear.&Consistent.&Logical.
Mind&States:&lateral&or&linear
X
X
X
X
X
Divergent Thinking
Convergent Thinking
Create Choices
Make Choices
Prototype and Learn
Iterate
Krea8ve'Impulsemuss'man'freisetzen
Zm&Beispiel&durch&Spiele&...
Teams'und'Product'Management'müssen'koEkrea8v'arbeiten
An/@PaXerns
Technical&Debt
Reusability&and&Waste
Reusability&instead&of&usability
Beware&of:Blueprints&and&PaXerns
Beware&of&Non@coding&Architects
Boxes&don´t&crash
Conway’s&LawEin&System&wird&in&seiner&Struktur&der&Organisa/on&ähneln,&die&es&erstellt
Übergaben
Zusammenfassung
Drei&zentrale&Prinzipien
1.&Lose&Kopplung
2.&Lose&Kopplung
3.&Lose&Kopplung
Prinzipien
Travel&light&
Assume&Simplicity&
Embrace&Change&
Incremental&Change&
Model&with&a&Purpose&
Mul/ple&Models&
Quality&Work&
Rapid&Feedback&
Maximize&Shareholder&Investment
1. Lose&Kopplung
2. „KISS:&Use&the&simplest&approach&you&can&get&away&with“&
3. Architektur&ist&Kommunika/on
4. „embrace&change“&
Five&Design&Skills&every&Programmer&should&have• Given&an&exis/ng,&large&program,&determine&what&its&most&important&classes&are,&what&they're&responsible&for,&and&how&they&relate&to&each&
other.
• Given&a&program,&iden/fy&duplica/on&and&other&design&smells&that&make&arbitrary&change&difficult,&and&come&up&with&a&list&of&incremental,&behavior@preserving&refactorings&that&will&solve&those&problems&and&can&be&implemented&gradually,&over&/me.
• Given&a&program&and&a&list&of&feature&changes,&determine&what&parts&of&the&program&should&be&changed&to&support&the&new&features&and,&if&the&program&design&doesn't&support&the&new&features&cleanly,&what&incremental&refactorings&will&improve&the&design&so&that&it&will.
• Given&a&blank&slate&and&a&list&of&features,&use&test@driven&development&to&create&new&code&that&is&tested&by&unit&tests&that&meet&Michael&Feathers&defini/on&of&a&„unit&test“.&
• Given&a&blank&slate&and&a&list&of&features,&incrementally&mix&design&improvements&with&new&feature&development&on&a&daily&basis,&without&u/lizing&mul/@day&"design"&or&"refactoring"&phases.
hXp://jamesshore.com/Blog/Five@[email protected]
Top Related