Ewolucyjna architektura www.sxc.hu/photo/850368
Na początek Michał Bartyzel konsultant, trener BNS IT procesy zwinne i nie tylko architektura czysty kod software crafstmanship strategie skutecznych programistów technical leadership Ewolucyjna architektura 33 Degree Conference 2012 2
Główne pytanie Jak zaprojektować proces rozwoju architektury w projekcie? Ewolucyjna architektura 33 Degree Conference 2012 3
Dla kogo? Programiści, projektanci, architekci, każdy dla kogo temat architektury jest WAŻNY Ewolucyjna architektura 33 Degree Conference 2012 4
Jakie słowa warto znać? procesy zwinne retrospekcja Domain Driven Design czysty kod wzorce projektowe leadership backlog punkty story points refaktoryzacja flow kanban Ewolucyjna architektura 33 Degree Conference 2012 5
Definicja Ewolucyjna architektura architektura, która w sposób ciągły jest adaptowana do zmieniających się potrzeb projektowych Ewolucyjna architektura 33 Degree Conference 2012 6
Jakie zmiany mamy na myśli? zastąpić Hibernate przez mybatis wprowadzić CQRS wprowadzić warstwę przetwarzania asynchronicznego dodać blok typu UseCaseController wprowadzić maszynę stanową wprowadzić komunikację zdarzeniową wprowadzić NoSQL do przetwarzenia zapytań o przedmioty Ewolucyjna architektura 33 Degree Conference 2012 7
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 zakodować 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 Ewolucyjna architektura 33 Degree Conference 2012 8
Lean Architecture Ewolucyjna architektura 33 Degree Conference 2012 9
Jak jest? Ewolucyjna architektura
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 Ewolucyjna architektura 33 Degree Conference 2012 11
Ewolucyjna architektura Mity Rozwój architektury będzie odbywać się samoistnie w międzyczasie Sprytny trik architektoniczny rozwiąże problemy Ewolucyjna architektura 33 Degree Conference 2012 12
Ewolucyjna architektura Pytania ughhhh Czym zająć się w pierwszej kolejności? Jak wybrać pomiędzy alternatywnymi rozwiązaniami problemu? Kto powinien zająć się poprawianiem architektury? Jak się upewnić czy wszystko wciąż działa? Czym mamy wystarczającą wiedzę i umiejętności? Czy trzeba poprosić kogoś o zgodę? Kogo? Jak przekonać moich zwierzchników, że warto? Ile czasu zajmą zmiany? Czy to jest właściwy moment, aby się tym zająć? Ewolucyjna architektura 33 Degree Conference 2012 13
A z tego wynika... Ewolucyjna architektura
Problem 1 # Może się okazać, że trzeba będzie zakopać system Ewolucyjna architektura 33 Degree Conference 2012 15
Problem 2 # Rozwój systemu nie nadąża za potrzebami biznesowymi Ewolucyjna architektura 33 Degree Conference 2012 16
Problem 3 # Demotywacja zespołu Ewolucyjna architektura 33 Degree Conference 2012 17
Problem 4 # Coraz trudniej naprawiać błędy Ewolucyjna architektura 33 Degree Conference 2012 18
Problem 5 # Brak powtarzalnych rozwiązań i powielanie pracy Ewolucyjna architektura 33 Degree Conference 2012 19
Problem 6 # Rozwój systemu to obsługa przypadków szczególnych Ewolucyjna architektura 33 Degree Conference 2012 20
przyczyna... brak nazwanego procesu Ewolucyjna architektura 33 Degree Conference 2012 21
Idea ewolucji architektury # Jeśli proces rozwoju architektury toczy się przypadkowo, to przypadkowe będą również efekty Strefa Wiedzy Lidera IT 22
Zacznijmy od początku Ewolucyjna architektura
Poziomy rozwoju architektury rozwój strategiczny lokalny Ewolucyjna architektura 33 Degree Conference 2012 24
Poziom strategiczny Ewolucyjna architektura 33 Degree Conference 2012 25
Poziom lokalny Ewolucyjna architektura 33 Degree Conference 2012 26
Lokalna ewolucyja architektury Ewolucyjna architektura
Ewolucyjna architektura 33 Degree Conference 2012 28
Ewolucyjna architektura 33 Degree Conference 2012 29
Ewolucyjna architektura 33 Degree Conference 2012 30
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 Ewolucyjna architektura 33 Degree Conference 2012 31
Proces rozwoju architektury Szkic technologii Ewolucyjna architektura 33 Degree Conference 2012 32
Proces rozwoju architektury Ekrany użytkownika Ewolucyjna architektura 33 Degree Conference 2012 33
Proces rozwoju architektury Model dziedziny Ewolucyjna architektura 33 Degree Conference 2012 34
Ewolucyjna architektura 33 Degree Conference 2012 35
Refaktoryzacja Wszyscy wiedzą, że to jest ważne Większość zna podstawowe techniki Mało kto to robi ze względu na brak pragmatycznego podejścia Czysty kod, wzorce projektowe Ewolucyjna architektura 33 Degree Conference 2012 36
Ewolucyjna architektura 33 Degree Conference 2012 37
Refaktoryzacja Refaktoryzacja to ciągły proces Najlepsze strategie skutecznych programistów 38
Techniki Pracy z Kodem Naturalny Porządek Refaktoryzacji Najlepsze strategie skutecznych programistów 39
Techniki pracy z kodem Naturalny Porządek Refaktoryzacji Najlepsze strategie skutecznych programistów 40
Teraz pokaż przykład! Ewolucyjna architektura 33 Degree Conference 2012 41
Ewolucyjna architektura 33 Degree Conference 2012 42
Retrospekcja architektoniczna Jakie błędy się powtarzają? Jakie dobre rozwiązania warto rozpowszechnić? Jakie zmiany powinniśmy wprowadzić do architektury? Jak wprowadzić te zmiany (najmniej boleśnie?) Czy mantra architektoniczna jest aktualna? Ewolucyjna architektura 33 Degree Conference 2012 43
Mantra architektoniczna Odpowiedzialności Presentation Layer - Entity -. Repository -. Factory -. Application Controller - Ewolucyjna architektura 33 Degree Conference 2012 44
Ewolucyjna architektura 33 Degree Conference 2012 45
Strategiczna ewolucja architektury Ewolucyjna architektura
Ewolucyjna architektura 33 Degree Conference 2012 47
Proces rozwoju architektury Założenia JIT (just in time) zajmuj się tym, co jest teraz najważniejsze Ewolucyjna architektura 33 Degree Conference 2012 48
Proces rozwoju architektury Proces ewolucji architektury Ewolucyjna architektura 33 Degree Conference 2012 49
Proces rozwoju architektury Koszyk # Luźne pomysły na zmiany w architekturze # Małe i duże zmiany (złożoność, wartość biznesowa) # Maksymalnie 50-70 Ewolucyjna architektura 33 Degree Conference 2012 50
Proces rozwoju architektury Rejestr # Uporządkowany # Elementy skonkretyzowane i podzielone # Określona złożoność i wartość biznesowa # Ocena kosztu zaniechania # Maksymalnie 20-25 elementów # Przegląd raz na wydanie Ewolucyjna architektura 33 Degree Conference 2012 51
Proces rozwoju architektury Analiza # Wybrane elementy wąskie gardła # Raz na wydanie lub na wniosek lidera architektury # Może być pracochłonna # Cel: Stworzenie uzasadnienia biznesowego Ewolucyjna architektura 33 Degree Conference 2012 52
Proces rozwoju architektury Analiza # Wybrane 5-7 elementów # Interesariusze i sponsorzy Kto odczuje korzyść 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? Ewolucyjna architektura 33 Degree Conference 2012 53
Ewolucyjna architektura 33 Degree Conference 2012 54
Jak to wdrożyć? Ewolucyjna architektura
Ewolucyjna architektura 33 Degree Conference 2012 56
Trzeba odpowiedzieć na kilka pytań Ewolucyjna architektura 33 Degree Conference 2012 57
Alokacja czasu na prace architektoniczne Strategie W ramach przydzielania zasobów część czasu prac przewiduje się na rozwój architektury (10-15% OD) Część punktów jest przeznaczana na rozwój architektury Obniżana jest prędkość Ewolucyjna architektura 33 Degree Conference 2012 58
Lider architektury Tryb konsultacyjny Angażuje wszystkich Motywuje i rozpowszechnia wiedzę Siła napędowa Ewolucyjna architektura 33 Degree Conference 2012 59
Podsumowanie Ewolucyjna architektura Ewolucyjna architektura 33 Degree Conference 2012 60
Poziom strategiczny Ewolucyjna architektura 33 Degree Conference 2012 61
Poziom lokalny Ewolucyjna architektura 33 Degree Conference 2012 62
Lider architektury Ewolucyjna architektura 33 Degree Conference 2012 63
Czy masz jakieś pytania? Ewolucyjna architektura 33 Degree Conference 2012 64
Dziękuję za Wasz czas! Ewolucyjna architektura 33 Degree Conference 2012 65