Ewolucyjna architektura (Konferencja 33rd Degree)

61
Main sponsor Ewolucyjna architektura Mariusz Sieraczkiewicz*

description

Ewolucyjna architektura - architektura, która w sposób ciągły jest adaptowana do zmieniających się potrzeb projektowych

Transcript of Ewolucyjna architektura (Konferencja 33rd Degree)

Page 1: Ewolucyjna architektura (Konferencja 33rd Degree)

Main sponsor

Ewolucyjna architektura

Mariusz Sieraczkiewicz*

Page 2: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Mariusz Sieraczkiewicz konsultant trener BNS IT

procesy zwinne i nie tylko architektura czysty kod

software crafstmanship strategie skutecznych

programistów technical leadership

Na początek

Ewolucyjna architektura 33 Degree Conference 2012 2

Page 3: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Jak zaprojektowad proces rozwoju architektury w projekcie?

Główne pytanie

Ewolucyjna architektura 33 Degree Conference 2012 3

Page 4: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Programiści, projektanci, architekci, każdy dla kogo temat architektury

jest WAŻNY

Dla kogo?

Ewolucyjna architektura 33 Degree Conference 2012 4

Page 5: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

procesy zwinne retrospekcja Domain Driven Design

czysty kod wzorce projektowe leadership backlog

punkty story points refaktoryzacja flow kanban

Jakie słowa warto znać?

Ewolucyjna architektura 33 Degree Conference 2012 5

Page 6: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura

architektura, która w sposób ciągły jest adaptowana

do zmieniających się potrzeb projektowych

Definicja

Ewolucyjna architektura 33 Degree Conference 2012 6

Page 7: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

zastąpid Hibernate przez myBatis wprowadzid CQRS wprowadzid warstwę przetwarzania asynchronicznego dodad blok typu

UseCaseController wprowadzid maszynę stanową

wprowadzid komunikację zdarzeniową wprowadzid NoSQL do przetwarzenia zapytao o przedmioty

Jakie zmiany mamy na myśli?

Ewolucyjna architektura 33 Degree Conference 2012 7

Page 8: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

1. Zespoły, które kodują także projektują system

2. Twórz najprostszą architekturę, która prawdopodobnie zadziała.

3. Kiedy nie masz pewności, spróbuj zakodowad fragment rozwiązania lub

zamodeluj.

4. Ci którzy piszą, testują.

5. Im większy system, tym dłuższy czas wydania.

6. Architektura jest efektem działania wszystkich osób zaangażowanych w projekt.

7. Nie ma monopolu na innowacje.

8. Rozwijaj architekturę w sposób ciągły.

Zasady zwinnej architektury

Ewolucyjna architektura 33 Degree Conference 2012 8

Ewolucyjna architektura

Page 9: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Jak jest? Ewolucyjna architektura

Page 10: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Ustalona na początku nie jest zmieniana

# Ustalona na początku zmienia się chaotycznie

# Brak wizji początkowej – rozwój chaotyczny

# Zrywy architektoniczne – akcja refaktoryzacja

# Przepisanie systemu – czasem ma sens

# Mieszanka powyższych

Podejścia do Architektury

Ewolucyjna architektura 33 Degree Conference 2012 10

Page 11: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Rozwój architektury będzie odbywad się samoistnie w międzyczasie

Sprytny trik architektoniczny rozwiąże problemy

Mity

Ewolucyjna architektura 33 Degree Conference 2012 11

Ewolucyjna architektura

Page 12: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Czym zająd się w pierwszej kolejności? Jak wybrad pomiędzy alternatywnymi rozwiązaniami problemu? Kto powinien zająd się poprawianiem architektury? Jak się upewnid czy wszystko

wciąż działa? Czym mamy wystarczającą wiedzę i umiejętności? Czy trzeba poprosid kogoś o zgodę? Kogo? Jak przekonad moich

zwierzchników, że warto? Ile czasu zajmą zmiany? Czy to jest właściwy moment, aby się tym zająd?

Pytania … ughhhh …

Ewolucyjna architektura 33 Degree Conference 2012 12

Ewolucyjna architektura

Page 13: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

A z tego wynika... Ewolucyjna architektura

Page 14: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Może się okazad, że trzeba będzie zakopad system

Problem 1

Ewolucyjna architektura 33 Degree Conference 2012 14

Page 15: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Rozwój systemu nie nadąża za potrzebami biznesowymi

Problem 2

Ewolucyjna architektura 33 Degree Conference 2012 15

Page 16: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Demotywacja zespołu

Problem 3

Ewolucyjna architektura 33 Degree Conference 2012 16

Page 17: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Coraz trudniej naprawiad błędy

Problem 4

Ewolucyjna architektura 33 Degree Conference 2012 17

Page 18: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Brak powtarzalnych rozwiązao i powielanie pracy

Problem 5

Ewolucyjna architektura 33 Degree Conference 2012 18

Page 19: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Rozwój systemu to obsługa przypadków szczególnych

Problem 6

Ewolucyjna architektura 33 Degree Conference 2012 19

Page 20: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

brak nazwanego procesu

przyczyna ...

Ewolucyjna architektura 33 Degree Conference 2012 20

Page 21: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Zacznijmy od początku… Ewolucyjna architektura

Page 22: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

rozwój

strategiczny

lokalny

Poziomy rozwoju architektury

Ewolucyjna architektura 33 Degree Conference 2012 22

Page 23: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Poziom strategiczny

Ewolucyjna architektura 33 Degree Conference 2012 23

Page 24: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Poziom lokalny

Ewolucyjna architektura 33 Degree Conference 2012 24

Page 25: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Procesy ewolucyjnej architektury Ewolucyjna architektura

Page 26: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura 33 Degree Conference 2012 26

Page 27: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura 33 Degree Conference 2012 27

Page 28: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura 33 Degree Conference 2012 28

Page 29: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ustalanie architektury

Aktualizacja architektury na początku iteracji lub wydania

# Forma • Wspólne warsztaty • Konsultacje „społeczne”

• UML lub free style diagram

• Tablica ścieralna (im większa tym lepsza) • Folia elektrostatyczna (np. HandyChart) • Flamastry

Wstępny projekt

Ewolucyjna architektura 33 Degree Conference 2012 29

Proces rozwoju architektury

Page 30: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Szkic technologii

Ewolucyjna architektura 33 Degree Conference 2012

Proces rozwoju architektury

30 30

Page 31: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ekrany użytkownika

Ewolucyjna architektura 33 Degree Conference 2012 31

Proces rozwoju architektury

Page 32: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Model dziedziny

Ewolucyjna architektura 33 Degree Conference 2012 32

Proces rozwoju architektury

Page 33: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura 33 Degree Conference 2012 33

Page 34: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Wszyscy wiedzą, że to jest ważne

Większośd zna podstawowe techniki

Mało kto to robi ze względu na brak pragmatycznego podejścia

Czysty kod, wzorce projektowe

Refaktoryzacja

Ewolucyjna architektura 33 Degree Conference 2012 34

Page 35: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura 33 Degree Conference 2012 35

Page 36: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Naturalny porządek refaktoryzacji

Ewolucyjna architektura 33 Degree Conference 2012 36

Refaktoryzacja

Page 37: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura 33 Degree Conference 2012 37

Page 38: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Jakie błędy się powtarzają?

Jakie dobre rozwiązania warto rozpowszechnid?

Jakie zmiany powinniśmy wprowadzid do architektury?

Jak wprowadzid te zmiany (najmniej boleśnie?)

Czy mantra architektoniczna jest aktualna?

Retrospekcja architektoniczna

Ewolucyjna architektura 33 Degree Conference 2012 38

Page 39: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Mantra architektoniczna

Odpowiedzialności

Presentation Layer - …

Entity - ….

Repository - ….

Factory - ….

Application Controller - …

Ewolucyjna architektura 33 Degree Conference 2012 39

Page 40: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura 33 Degree Conference 2012 40

Page 41: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Strategiczna ewolucja architektury Ewolucyjna architektura

Page 42: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura 33 Degree Conference 2012 42

Page 43: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Założenia

JIT (just in time) – zajmuj się tym, co jest teraz najważniejsze

Ewolucyjna architektura 33 Degree Conference 2012 43

Proces rozwoju architektury

Page 44: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Proces ewolucji architektury

Ewolucyjna architektura 33 Degree Conference 2012 44

Proces rozwoju architektury

Page 45: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Luźne pomysły na zmiany w architekturze

# Małe i duże zmiany

# Maksymalnie 50-70

# *opcja+ Zgrubnie złożonośd i wartośd biznesowa

Koszyk

Ewolucyjna architektura 33 Degree Conference 2012 45

Proces rozwoju architektury

Page 46: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Uporządkowany

# Elementy skonkretyzowane i podzielone

# Określona złożonośd i wartośd biznesowa

# Ocena kosztu zaniechania

# Maksymalnie 20-25 elementów

# Przegląd raz na wydanie

Rejestr

Ewolucyjna architektura 33 Degree Conference 2012 46

Proces rozwoju architektury

Page 47: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Wybrane elementy – wąskie gardła

# Raz na wydanie lub na wniosek lidera architektury

# Może byd pracochłonna

# Cel: Stworzenie uzasadnienia biznesowego

Analiza

Ewolucyjna architektura 33 Degree Conference 2012 47

Proces rozwoju architektury

Page 48: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

# Wybrane 5-7 elementów

# Interesariusze i sponsorzy • Kto odczuje korzyśd z wdrożenia tej zmiany?

# Wpływ na projekty • Na które projekty/produkty ma wpływ to wdrożenie? • Na które usługi ma wpływ to wdrożenie?

# Wpływ na procesy • Jaki ma to wpływ na sprzedaż? • Jaki ma to wpływ na dystrybucję produktów i usług?

# Koszt i zasoby • Jak bardzo czasochłonny jest ten temat? • Ile osób, o jakich kompetencjach i przez jaki czas potrzeba na wdrożenie tej

zmiany?

Analiza

Ewolucyjna architektura 33 Degree Conference 2012 48

Proces rozwoju architektury

Page 49: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura 33 Degree Conference 2012 49

Page 50: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Jak to wdrożyć? Ewolucyjna architektura

Page 51: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Ewolucyjna architektura 33 Degree Conference 2012 51

Page 52: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Trzeba odpowiedzieć na kilka pytań

Ewolucyjna architektura 33 Degree Conference 2012 52

Page 53: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Strategie W ramach przydzielania zasobów częśd czasu prac przewiduje się na rozwój architektury (10-15% OD)

Częśd punktów jest przeznaczana na rozwój architektury

Obniżana jest prędkośd

Alokacja czasu na prace architektoniczne

Ewolucyjna architektura 33 Degree Conference 2012 53

Page 54: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Lider architektury

Tryb konsultacyjny

Angażuje wszystkich

Motywuje i rozpowszechnia wiedzę

Siła napędowa

Ewolucyjna architektura 33 Degree Conference 2012 54

Page 55: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Podsumowanie Ewolucyjna architektura

Ewolucyjna architektura 33 Degree Conference 2012 55

Page 56: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Poziom strategiczny

Ewolucyjna architektura 33 Degree Conference 2012 56

Page 57: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Poziom lokalny

Ewolucyjna architektura 33 Degree Conference 2012 57

Page 58: Ewolucyjna architektura (Konferencja 33rd Degree)

www.bnsit.pl

Lider architektury

Ewolucyjna architektura 33 Degree Conference 2012 58

Page 60: Ewolucyjna architektura (Konferencja 33rd Degree)

Main sponsor

Pytania?

Page 61: Ewolucyjna architektura (Konferencja 33rd Degree)

Main sponsor

Dziękuję za uwagę!

* Podziękowania dla Michała Bartyzela za współtworzenie koncepcji i prezentacji