2. Na początek
Mariusz Sieraczkiewicz konsultant trener BNS IT
procesy zwinne i nie tylko architektura czysty kod
software crafstmanship strategie skutecznych
programistów technical leadership
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 2
3. Główne pytanie
Jak zaprojektowad proces rozwoju
architektury w projekcie?
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 3
4. Dla kogo?
Programiści, projektanci, architekci,
każdy dla kogo temat architektury
jest WAŻNY
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 4
5. Jakie słowa warto znać?
retrospekcja Domain Driven Design
procesy zwinne
czysty kod wzorce projektowe leadership backlog
punkty story points refaktoryzacja flow kanban
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 5
6. Definicja
Ewolucyjna architektura
architektura, która w sposób ciągły jest adaptowana
do zmieniających się potrzeb projektowych
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 6
7. Jakie zmiany mamy na myśli?
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
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 7
8. Ewolucyjna architektura
Zasady zwinnej architektury
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.
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 8
10. Podejścia do Architektury
# 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
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 10
11. Ewolucyjna architektura
Mity
Rozwój architektury będzie odbywad się samoistnie
w międzyczasie
Sprytny trik architektoniczny rozwiąże problemy
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 11
12. Ewolucyjna architektura
Pytania … ughhhh …
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?
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 12
13. A z tego wynika...
Ewolucyjna architektura
www.bnsit.pl
14. Problem 1
# Może się okazad, że trzeba będzie zakopad
system
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 14
15. Problem 2
# Rozwój systemu nie nadąża za potrzebami
biznesowymi
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 15
16. Problem 3
# Demotywacja zespołu
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 16
17. Problem 4
# Coraz trudniej naprawiad błędy
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 17
18. Problem 5
# Brak powtarzalnych rozwiązao i powielanie
pracy
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 18
19. Problem 6
# Rozwój systemu to obsługa przypadków
szczególnych
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 19
20. przyczyna ...
brak nazwanego procesu
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 20
29. Proces rozwoju architektury
Wstępny projekt
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
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 29
30. Proces rozwoju architektury
Szkic technologii
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 30
31. Proces rozwoju architektury
Ekrany użytkownika
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 31
32. Proces rozwoju architektury
Model dziedziny
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 32
34. Refaktoryzacja
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
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 34
38. Retrospekcja architektoniczna
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?
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 38
43. Proces rozwoju architektury
Założenia
JIT (just in time) – zajmuj się tym,
co jest teraz najważniejsze
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 43
44. Proces rozwoju architektury
Proces ewolucji architektury
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 44
45. Proces rozwoju architektury
Koszyk
# 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
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 45
46. Proces rozwoju architektury
Rejestr
# 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
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 46
47. Proces rozwoju architektury
Analiza
# Wybrane elementy – wąskie gardła
# Raz na wydanie lub na wniosek lidera
architektury
# Może byd pracochłonna
# Cel: Stworzenie uzasadnienia biznesowego
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 47
48. Proces rozwoju architektury
Analiza
# 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?
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 48
52. Trzeba odpowiedzieć na kilka pytań
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 52
53. Alokacja czasu na prace architektoniczne
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
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 53
54. Lider architektury
Tryb konsultacyjny
Angażuje wszystkich
Motywuje i
rozpowszechnia wiedzę
Siła napędowa
www.bnsit.pl Ewolucyjna architektura 33 Degree Conference 2012 54