SlideShare une entreprise Scribd logo
1  sur  102
Télécharger pour lire hors ligne
Ewolucyjna architektura




www.bnsit.pl
www.sxc.hu/photo/850368
Imię i nazwisko
                Firma
                3 słowa o sobie




Poznajmy się!
www.bnsit.pl
Strefa Wiedzy Lidera IT


        # 1. spotkanie 16 września

        # W prasie
               • Artykuły w czasopiśmie Programista
               • Strefa Wiedzy Lidera IT na portalu czasopisma
               • Napisz do nas liderit@bnsit.pl


        # Kolejne spotkanie: 19 kwietnia 2012

www.bnsit.pl                    Strefa Wiedzy Lidera IT          3
Tylko dla uczestników tego spotkania


        # 1-2 h konsultacji
               • Omówienie problemów
               • Wspólne pomysły na rozwiązania
               • Dalsza współpraca


        # Kupon do portalu DevCastZone.com

        # Książka Eseje o efektywności programistów

www.bnsit.pl                    Strefa Wiedzy Lidera IT   4
Po co się spotkaliśmy?

        # Jak zdefiniowad proces ewolucji architektury?

        # Jak wdrożyd ten proces?

        # Jak określid zakres odpowiedzialności architekta?

        # Jak powiązad proces ewolucji architektury z cyklem
          produkcyjnym w organizacji?

        # Jak rozwijad architekturę w nowych i istniejących
          projektach?

        # Jak zarządzad wiedzą o architekturze i projektowaniu w
          firmie?
www.bnsit.pl                    Strefa Wiedzy Lidera IT            5
Agenda


        1.     Problemy z architekturą i konsekwencje
        2.     Idea ewolucji architektury
        3.     Modele organizacyjne i rola architekta
        4.     Proces ewolucji architektury
        5.     Jak wdrożyd proces?
        6.     Praktyki związane z architekturą w
               organizacji


www.bnsit.pl                 Strefa Wiedzy Lidera IT    6
Harmonogram


        # 12.00 – 13.30 – sesja

        # 13.30 – 13.45 – przerwa kawowa

        # 13.45 – 15.15 – sesja

        # 15.15 – 15.45 – przerwa lunchowa

        # 15.45 – 17.00 – sesja
www.bnsit.pl                 Strefa Wiedzy Lidera IT   7
Jak powstaje architektura?
                              Ewolucyjna architektura




www.bnsit.pl          Strefa Wiedzy Lidera IT           8
Najczęściej...




        # Architektura jest tworzona na początku

        # Opór przed zmianą architektury
               • Duży wpływ na resztę systemu
               • Duży koszt
               • Duże ryzyko
www.bnsit.pl
Dlaczego tak się dzieje?


        # Na początku będzie szybciej




www.bnsit.pl                    Strefa Wiedzy Lidera IT   10
Dlaczego tak się dzieje?


        # Nie zdążymy zrobid wszystkiego, czego
          oczekuje klient




www.bnsit.pl                    Strefa Wiedzy Lidera IT   11
Dlaczego tak się dzieje?


        # Bywają naciski, aby wykonywad tylko to, co
          „widad”




                    Najważniejsze jest to, co nie widoczne dla oczu
                                                       Mały Książę
www.bnsit.pl                    Strefa Wiedzy Lidera IT               12
Dlaczego tak się dzieje?


        # Ludzie sobie jakoś poradzą




www.bnsit.pl                    Strefa Wiedzy Lidera IT   13
A z tego wynika...
                  Ewolucyjna architektura




www.bnsit.pl
Problem 1


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




www.bnsit.pl
Problem 2


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




www.bnsit.pl               Strefa Wiedzy Lidera IT   16
Problem 3


        # Demotywacja zespołu




www.bnsit.pl               Strefa Wiedzy Lidera IT   17
Problem 4


        # Coraz trudniej odnajdowad błędy




www.bnsit.pl               Strefa Wiedzy Lidera IT   18
Problem 5


        # Brak powtarzalnych rozwiązao i powielanie
          pracy




www.bnsit.pl               Strefa Wiedzy Lidera IT    19
Problem 6


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




www.bnsit.pl               Strefa Wiedzy Lidera IT   20
Podejścia do rozwoju architektury
                                 Ewolucyjna architektura




www.bnsit.pl
Na razie hasłowo

        # Nic nie robid – „Ludzie sobie jakoś poradzą”

        # Reagowanie na poważne problemy (blokery)

        # Faza refaktoryzacji po implementacji

        # Zarządzanie ewolucją architektury
               • Alokowanie zasobów na prace nad architekturą
               • Dodatkowe iteracje

        # CDN…
www.bnsit.pl                      Strefa Wiedzy Lidera IT       22
Idea ewolucji architektury
                           Ewolucja architektury




www.bnsit.pl
Idea ewolucji architektury




        # Jeśli proces rozwoju architektury toczy się
          przypadkowo, to przypadkowe będą również
          efekty
www.bnsit.pl                    Strefa Wiedzy Lidera IT   24
Korzyści z ewolucji
                   Ewolucyjna architektura




www.bnsit.pl
Korzyść najważniejsza


        # Przetrwanie




www.bnsit.pl
Korzyść 2


        # Architektura będzie się upraszczad




www.bnsit.pl               Strefa Wiedzy Lidera IT   27
Korzyść 3


        # Zmiana wymagao nie będzie aż taką tragedią




www.bnsit.pl               Strefa Wiedzy Lidera IT     28
Korzyść 4


        # Krótszy czas implementacji i poszukiwania
          błędów i niższy kosz utrzymania




www.bnsit.pl               Strefa Wiedzy Lidera IT    29
Korzyść 5


        # Nie będą potrzebni zewnętrzni konsultanci




www.bnsit.pl               Strefa Wiedzy Lidera IT    30
ale...



www.bnsit.pl   Strefa Wiedzy Lidera IT            31
Jakie „ale”?


        # Nie jest istotne ulepszenie architektury jako
          takiej, lecz rozwiązanie problemów


        # Dla konkretnego przypadku potrzeba analizy
               biznesowej

        # Konsultacje dla uczestników tego
          spotkania
www.bnsit.pl                  Strefa Wiedzy Lidera IT     32
Ewolucyjna architektura

               Oczekiwanie: żeby było szybko


        # Rozwiązania architektoniczne powinny szybko
          zaradzid problemom



        # Brak zdefiniowanego procesu pracy nad
          architekturą

        # Rozwój architektury powinien odbywad się w
               międzyczasie

www.bnsit.pl                             Strefa Wiedzy Lidera IT   33
Ewolucyjna architektura

               Oczekiwanie: ewolucyjnie nie rewolucyjnie


        # Nie zmieniad od razu wszystkiego, lecz
          stopniowo tylko to, co konieczne

        # Architektura powinna dojrzewad wraz z
          funkcjonalnościami systemu

        # Zapominamy, że ewolucja również wymaga
          czasu


www.bnsit.pl                             Strefa Wiedzy Lidera IT   34
Ewolucyjna architektura

               Oczekiwanie: Dużo magicznych sztuczek


        # Sprytny trik architektoniczny rozwiąże
          problemy

        # Nie zmieniad zbyt wiele, a jedynie
          nieznacznie zmodyfikowad

        # Nie potrzeba na to zbyt wiele wysiłku




www.bnsit.pl                             Strefa Wiedzy Lidera IT   35
Modele organizacyjne
                    Ewolucyjna architektura




www.bnsit.pl
Ewolucyjna architektura

               Trywialny model


        # Lider architektury wyłania się
          samoczynnie

        # Zazwyczaj jest to
          programista z największym
          doświadczeniem

        # Istnieje niebezpieczeostwo, że nikt nie
          zainteresuje się architekturą
www.bnsit.pl                             Strefa Wiedzy Lidera IT   37
Ewolucyjna architektura

               Złożony model organizacyjny


         Architekt Korporacyjny
         (Enterprise Architect)




                                                                   Architekt Aplikacji
                                                                   (Software Architect)




www.bnsit.pl                             Strefa Wiedzy Lidera IT                          38
Ewolucyjna architektura

               Architekt Korporacyjny


                                         # Przygotowywanie mapy
                                           systemów dla organizacji
                                         # Opracowywanie infrastruktury
                                           programowej dla organizacji

     # Szacowanie kosztu usunięcia/dodania systemu
       do/z infrastruktury
     # Opracowywanie polityki i harmonogramu
       wdrożeo

www.bnsit.pl                                Strefa Wiedzy Lidera IT       39
Ewolucyjna architektura

               Architekt aplikacji


        # Dobieranie technologii do
          wymagao funkcjonalnych
        # Zaprojektowanie sposobu
          działania, przechowywania
          i prezentacji danych
          w systemie
        # Opracowanie sposobu egzekwowania zasad
          bezpieczeostwa przez system
        # etc.

www.bnsit.pl                             Strefa Wiedzy Lidera IT   40
Ewolucyjna architektura

               Jeszcze bardziej złożony model organizacyjny




www.bnsit.pl                             Strefa Wiedzy Lidera IT   41
Ewolucyjna architektura

               Odpowiedzialności architektów

        # Główny Architekt (Chief Enterprise Architect)
               • Dba, by wdrażanie konkretnych rozwiązao wspierało
                 procesy biznesowe w organizacji
               • Przewodniczy Komitetowi Architektonicznemu

        # Architekt Funkcjonalny
               • Łączy odpowiedzialności Analityka Biznesowego,
                 Analityka Funkcjonalnego i menadżera
               • Analizuje proces biznesowy i definiuje
                 funkcjonalności, do których powinni mied dostęp
                 użytkownicy
               • Określa, w których systemach powinny zostad
                 zaimplementowane poszczególne funkcjonalności

www.bnsit.pl                             Strefa Wiedzy Lidera IT     42
Architekt: stanowisko czy rola?
                               Ewolucyjna architektura




www.bnsit.pl
Ewolucyjna architektura

               Minusy stanowiska


        # Wąskie specjalizacje poszczególnych osób

        # Sztuczne oddzielanie myślenia o architekturze
          od programowania

        # Powstawanie Power Point architects

        # Tłumienie kreatywności programistów

www.bnsit.pl                             Strefa Wiedzy Lidera IT   44
Ewolucyjna architektura

               Lider Architektury

         # Bierze udział w pracach, ma kontakt z kodem

         # Zbiera informacje o problemach z architekturą

         # Zbiera pomysły na poprawę architektury

         # Edukuje programistów w zakresie architektury

         # Inicjuje zmiany w architekturze

         # Opracowuje dokumentację oraz mantrę architektoniczną

         # Dba o wymianę wiedzy technicznej w zespole
www.bnsit.pl                             Strefa Wiedzy Lidera IT   45
Ewolucyjna architektura

               Skalowanie roli lidera architektury




www.bnsit.pl                             Strefa Wiedzy Lidera IT   46
Ewolucyjna architektura

               Stanowisko może mieć znaczenie


        # Daje możliwośd awansu

        # Uatrakcyjnia CV

        # Stanowisko architekt uważane jest za bardziej
          prestiżowe niż stanowisko programista




www.bnsit.pl                             Strefa Wiedzy Lidera IT   47
Ewolucyjna architektura

               Możliwe rozwiązania


        # Listy gratulacyjne za konkretne osiągniecia

        # System certyfikacji wewnętrznej

        # Kultura zdobywania sprawności na zasadzie
          Black Belt Factory

        # Oddzielenie stanowisk od ról pełnionych w
          projekcie
www.bnsit.pl                             Strefa Wiedzy Lidera IT   48
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                             Strefa Wiedzy Lidera IT                49
Proces ewolucji architektury
                            Ewolucyjna architektura




www.bnsit.pl
Proces rozwoju architektury

               Założenia


        # JIT (just in time) – zajmuj się tylko tym, co jest
          ważne teraz

        # Zakłada się, że architektura będzie
          ewoluowad i zmieniad się w miarę postępu
          projektu


        # Proces ewolucji architektury musi zostad
          zdefiniowany w organizacji
www.bnsit.pl                                 Strefa Wiedzy Lidera IT   51
Proces rozwoju architektury

               Proces ewolucji architektury




www.bnsit.pl                                 Strefa Wiedzy Lidera IT   52
Najprostsza implementacja




www.bnsit.pl                    Strefa Wiedzy Lidera IT   53
Szczegóły procesu
                  Ewolucja architektury




www.bnsit.pl
Proces rozwoju architektury

               Koszyk

        # W Koszyku przechowywane są pomysły (epics) na
          udoskonalenia w architekturze

        # Kto może wrzucad do Koszyka?
               • Programiści
               • Testerzy
               • Liderzy architektury

        # Jaką formę ma Koszyk?
               •   Pudełko
               •   Dedykowany adres mailowy
               •   Lista mailingowa
               •   Strona wiki
               •   Tickety w systemie bugtracker

www.bnsit.pl                                 Strefa Wiedzy Lidera IT   55
Proces rozwoju architektury

               Koszyk: pomysły (architectural epics)


        # Pomysł (epic) to luźne zdanie opisujące
          udoskonalenie w architekturze

        # Przykłady
               • Zastąpić Hibernate przez myBatis
               • Wprowadzić loadbalancing
               • Usunąć nieużywane funkcjonalności


        # Pomysły muszą zostad podzielone
www.bnsit.pl                                 Strefa Wiedzy Lidera IT   56
Proces rozwoju architektury

               Koszyk: Ocena pomysłu


        # Każdy pomysł oceniany jest pod kątem
               • Wartości biznesowej
               • Kosztu stworzenia
               • Pomysły powyżej ustalonego poziomu: wartość/koszt
                 trafiają do Rejestru
               • Pomysły poniżej poziomu są definitywnie odrzucane

        # W jakich jednostkach ocenia się pomysły?
               • Wartośd: liczba całkowita, pieniądze
               • Koszt: osobodni, pieniądze
               • Jednostka względna: 2, 4, 8, 16, 32, 64, 128

www.bnsit.pl                                 Strefa Wiedzy Lidera IT   57
Proces rozwoju architektury

               Koszyk: Ocena pomysłu


        # Przykładowy sposób wyliczania wskaźnika
        Rozmiar zadania – 1, 2, 3, 5, 8, 13, 20, 40
        Wartośd biznesowa – 1, 2, 3, 5, 8, 13, 20, 40
        Dopasowanie do obecnych celów biznesowych
        – 0, ¼, ½, ¾, 1

        Wskaźnik = (Wartość biznesowa/Rozmiar) * Dopasowanie




www.bnsit.pl                                 Strefa Wiedzy Lidera IT   58
Proces rozwoju architektury

               Koszyk: Ocena pomysłu

        # Jak często pomysły są oceniane?
               • Regularnie, co ustalony odstęp czasu
               • Nieregularnie, gdy koszyk przekroczy założoną
                 pojemnośd
               • Wprowadza się dodatkowy wskaźnik czas życia
                 pomysłu w koszyku, aby zapobiec odraczaniu oceny
                 pomysłów

        # Ile pomysłów w koszyku?
               • maksymalnie 50-75

        # Kto ocenia pomysły?
               • Liderzy architektury
www.bnsit.pl                                 Strefa Wiedzy Lidera IT   59
Proces rozwoju architektury

               Rejestr (backlog)

        # Pozycje rejestru (backlog items) są
          uporządkowane według wskaźnika

        # Kto może dodawad pozycje do Rejestru?
               • Liderzy architektury
               • Jeden z liderów architektury

        # Jaką formę ma Rejestr?
               • Plik arkusza kalkulacyjnego
               • Folder mailowy
               • Najistotniejszą cechą rejestru jest jego
                 uporządkowanie
www.bnsit.pl                                 Strefa Wiedzy Lidera IT   60
Proces rozwoju architektury

               Rejestr: Analiza Rejestru

        # Każda pozycja z Rejestru
               • Oceniana jest pod katem kosztu zaniechania
               • Ma aktualizowaną wartośd oraz koszt
               • Ma aktualizowany wskaźnik
               • Jeśli przebywa w Rejestrze ponad określony czas jest
                 z niego usuwana
               • Pozycja/e ze szczytu Rejestru przekazywane są do analizy

        # Jak dużo elementów?
               • maksymalnie 20-25

        # Jak często analizowany jest Rejestr?
               • W trakcie planowania wydania
               • Jeśli cykle produkcyjne są długie, to w trakcie planowania
                 kolejnego cyklu
www.bnsit.pl                                 Strefa Wiedzy Lidera IT          61
Proces rozwoju architektury

               Analiza


        # Celem Analizy jest opracowanie alternatyw
          projektowych oraz oszacowanie zasobów
          niezbędnych do wdrożenia danej pozycji

        # Ile elementów?
               • maksymalnie 5-7

        # Kto wykonuje analizę?
               • Lider komponentu
               • Lider architektury
www.bnsit.pl                                 Strefa Wiedzy Lidera IT   62
Proces rozwoju architektury

               Zasada wartości biznesowej




        # Funkcjonalności (potentially shippable
          increments) oraz architektura mają całkowicie
          inną charakterystykę rozwoju
        # Proces ewolucji architektury musi promowad
          rozwój funkcjonalności, aby powiększad wartośd
          biznesową produktu
www.bnsit.pl                                 Strefa Wiedzy Lidera IT   63
Proces rozwoju architektury

               Zasada wartości biznesowej


                                                          # Idea rozbudowy
                                                            architektury:
                                                            architectural slices of
                                                            customer-centric
                                                            features

                                                          # Kolejne slices
                                                            architektury są wpisane
                                                            w cykl zwiększania
                                                            wartości biznesowej

www.bnsit.pl                                 Strefa Wiedzy Lidera IT                  64
Proces rozwoju architektury

               Analiza: Zrąb raportu biznesowego

        # 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                                 Strefa Wiedzy Lidera IT              65
KRYTYCZNE cechy procesu
                        Ewolucja architektury




www.bnsit.pl
Minimalizuj liczbę jednocześnie wykonywanych zadań




        # Widoczne konsekwencje wprowadzanych
          zmian

        # Kontrolowane ryzyko
www.bnsit.pl
Koncentracja wysiłków




        # Możliwie szybko dąż do zakooczenia i
          wdrożenia zmian



www.bnsit.pl
Wizualizuj postępy prac




        # W widocznych miejscach

        # Co wizualizowad?
               • Koszyk, Rejestr, zadania w toku
               • Prosty diagram HLD
www.bnsit.pl
Wdrażanie – dodatkowe iteracje
                              Ewolucyjna architektura




www.bnsit.pl
Proces rozwoju architektury

               Iteracyjny proces pracy zespołu




        # Cele procesu iteracyjnego
               • Stopniowe odkrywanie potrzebnych funkcjonalności i
                 ich ciągłe dostarczanie
               • Koncentracja na wartości biznesowej
               • Dbanie o jakośd wytwarzanego kodu
               • Stymulowanie innowacji w architekturze
www.bnsit.pl                                 Strefa Wiedzy Lidera IT   71
Proces rozwoju architektury

               Iteracja „0”


                            Wstępne określenie                             Wstępne określenie
                                wymagao                                       architektury
                                  (dni)                                           (dni)

                                                                           Iteracja 0: Wizualizacja




        # Przygotowanie do kolejnego wydania
        # Stworzenie podwalin architektury
        # Wybranie z Rejestru pozycji do realizacji
        # Określenie celu wydania
        # Określenie listy wymagao do implementacji
www.bnsit.pl                                     Strefa Wiedzy Lidera IT                              72
Proces rozwoju architektury

               Iteracja „0”: Wstępne modelowanie


        #      Szkic technologii
        #      Ekrany użytkownika
        #      Model konceptualny
        #      Przypadki zmian




www.bnsit.pl                                 Strefa Wiedzy Lidera IT   73
Proces rozwoju architektury

               Iteracja zakańczająca (Hardening Iteration)


        # Cel iteracji: spłacenie części długu
          technicznego występującego w kodzie

        # Działania podejmowane w trakcie iteracji
               • Implementowanie pozycji Rejestru, dla których
                 nie było miejsca w standardowych iteracjach
               • Poprawianie czytelności kodu
               • Doprowadzanie kodu do stanu, w którym spełnia
                 on przyjęte normy jakości

www.bnsit.pl                                 Strefa Wiedzy Lidera IT   74
Proces rozwoju architektury

               Iteracja innowacji (Hackathon Iteration)


        # Cel iteracji: stymulowanie innowacji
          w obszarze architektury

        # Działania podejmowane w trakcie iteracji
               • Eksperymentowanie z nowymi technologiami pod
                 kątem użyteczności dla organizacji

        # Korzyści z Iteracji innowacji
               • Czas na „złapanie oddechu” dla zespołu
               • Generuje nowe innowacyjne pomysły
               • Pomaga programistom byd „na czasie” i poprawia
                 motywację

www.bnsit.pl                                 Strefa Wiedzy Lidera IT   75
Proces rozwoju architektury

               Iteracje i wydania




        # Wydania i iteracje nie muszą (i zazwyczaj nie
          są) zorganizowane szeregowo
        # Gdy prace w jednym cyklu są wygaszane,
          rozpoczynają się wstępne prace w kolejnych
www.bnsit.pl                                 Strefa Wiedzy Lidera IT   76
Wdrażanie – alokacja zasobów
                            Ewolucyjna architektura




www.bnsit.pl
Alokacja czasu na prace architektoniczne




        # W ramach przydzielania zasobów częśd prac
          przewiduje się na rozwój architektury
        # Początkowo można przyjąd 10-15% OD

www.bnsit.pl
Wdrażanie – DUŻA refaktoryzacja
                               Ewolucyjna architektura




www.bnsit.pl
Duża refaktoryzacja




        # Wydzielenie czasu (np. iteracji) tylko na rozwój
          architektury
        # Duże ryzyko zaniechania prac ze względu brak
          szybkich efektów
        # Duże wyzwanie na poziomie integracyjnym
        # Zatrzymanie rozwoju produktu
www.bnsit.pl
Wdrażanie – przepisanie systemu
                               Ewolucyjna architektura




www.bnsit.pl
Przepisanie systemu




        # Istnieją dwie linie produktu (duży koszt utrzymania
          spójności)
        # Przy nowej technologii – duży koszt pozyskania
          kompetencji
        # Przepisanie młodego systemu zajmuje 20-25%
          pierwotnego czasu
www.bnsit.pl
Wdrażanie – usuwanie wąskich gardeł
                             Ewolucyjna architektura




www.bnsit.pl
Usuwanie wąskich gardeł


      Lider architektury/zespoły
      # wiedzą, gdzie są wąskie
         gardła
      # należy wybrad te 2-3
         zmiany, które będą
         miały największy efekt




www.bnsit.pl
Wdrażanie – izolowanie starego kodu
                             Ewolucyjna architektura




www.bnsit.pl
Izolowanie starego kodu


      # Znacząca częśd kodu
        jest stabilna
      # Mimo że słabo napisana
        lub oparta na starej
        technologii
      # Opakuj stabilną częśd
        systemu warstwą
        izolacyjną
      # Odizoluj nowe
        funkcjonalności

www.bnsit.pl
Wdrażanie - arkusz pytań
                        Ewolucyjna architektura




www.bnsit.pl
Arkusz pytań – definiowanie procesu




www.bnsit.pl
Praktyki
               Proces rozwoju architektury




www.bnsit.pl
Proces rozwoju architektury

               Spotkanie rozpoczynające




www.bnsit.pl                                 Strefa Wiedzy Lidera IT   90
Proces rozwoju architektury

               Spotkanie rozpoczynające


        # Cel: zbudowanie wspólnego rozumienia
          produktu, który należy dostarczyd

        # Kto bierze udział w spotkaniu?
           • Osoby, które będą wykonywad prace

        # Jak często odbywa się spotkanie?
               • Przed rozpoczęciem prac nad kolejnym wydaniem
               • W razie potrzeby w mniejszym gronie w trakcie
                 trwania prac
www.bnsit.pl                                 Strefa Wiedzy Lidera IT   91
Proces rozwoju architektury

               Spotkanie rozpoczynające: odpowiedzialności osób


        # Przedstawiciel sponsora
               • Określenie celu wydania
               • Odpowiadanie na pytania


        # Liderzy komponentów
               • Analizowanie wpływu wymagania na architekturę
                 komponentu
               • Zgłaszanie sugestii



www.bnsit.pl                                 Strefa Wiedzy Lidera IT   92
Proces rozwoju architektury

               Spotkanie rozpoczynające: odpowiedzialności osób


        # Lider architektury
               • Analizowanie wpływu wymagania na architektury
                 systemu
               • Zgłaszanie sugestii


        # Lider testerów
               • Określenie zakresu testów akceptacyjnych
               • Zgłaszanie sugestii



www.bnsit.pl                                 Strefa Wiedzy Lidera IT   93
Proces rozwoju architektury

               Spotkanie rozpoczynające: odpowiedzialności osób


        # Programista (opcjonalnie)
               • Wykrywanie zagadnieo i niespójności, które mogą
                 wyniknąd w trakcie implementacji
               • Zgłaszanie sugestii


        # Użytkownik (opcjonalnie)
               • Zgłaszanie uwag nt. ergonomii interfejsu
                 użytkownika i komfortu pracy
               • Zgłaszanie sugestii

www.bnsit.pl                                 Strefa Wiedzy Lidera IT   94
Proces rozwoju architektury

               Warsztaty projektowania

        # Ustalanie architektury
          w trakcie Iteracji „0”
        # Uaktualnianie architektury
          na początku iteracji
        # Spontaniczne warsztaty
          w razie potrzeby (just-in-time)

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


www.bnsit.pl                                 Strefa Wiedzy Lidera IT   95
Proces rozwoju architektury

               Warsztaty projektowania: rozprzestrzenianie wiedzy

                                                             A single conversation with a wise man
                                                                    is better than ten years of study

        # Liderzy aranżują miniszkolenia dotyczące
          architektury systemu
        # Wiedza jest naturalnie rozprzestrzeniana w
          zespołach (human infection)
        # Istotniejsze fragmenty można przechowywad
          na wiki jako fotografie
        # Również warsztaty międzyzespołowe

www.bnsit.pl                                 Strefa Wiedzy Lidera IT                                    96
Proces rozwoju architektury

               Warsztaty projektowania: ujednolicanie języka


        # Spójny język dziedziny
               • „Metryczka” to….
               • „Odzysk” to…
               • „Pudełko” to…

        # Spójny język techniczny
               • „Użyjmy tu fabryki konfigurowanej przez fluent api”
               • „Ten adpater nie powinien znajdowad się w warstwie
                 serwisów, lecz niżej zaraz nad domeną
               • Programiści posługują się konceptami – językiem na
                 wyższym poziomie abstrakcji

www.bnsit.pl                                 Strefa Wiedzy Lidera IT   97
Proces rozwoju architektury

               Dream Team




www.bnsit.pl                                 Strefa Wiedzy Lidera IT   98
Proces rozwoju architektury

               Dream Team

        # Najlepsi ludzie, najbardziej zgrany zespół rozpędza
          projekt

        # Czym kooczą się prace Dream Team?
               • Szkielet systemu
               • Ustalona architektura
               • Dokumentacja architektury systemu

        # Co dalej?
               • Uczestnicy Dream Team organizują kolejne zespoły
               • Uczą programistów i rozprzestrzeniają wiedzę (human
                 infection)
               • Prowadzą Warsztaty projektowania

www.bnsit.pl                                 Strefa Wiedzy Lidera IT   99
Proces rozwoju architektury

               Architekci i architektura


        # Architekt, który nie dotyka kodu zaczyna
          fantazjowad

        # Niektóre decyzje architektoniczne są już
          nieaktualne - uważaj na chorobliwą
          konsekwencję w ich podtrzymywaniu

        # Jeśli możesz wybierad zmiany architektoniczne
          do wdrożenia, to wybieraj te, które mają
          największy wpływ na poprawę projektu

www.bnsit.pl                                 Strefa Wiedzy Lidera IT   100
Proces rozwoju architektury

               Ostrożnie z Komitetem Architektonicznym


        # Możliwe problemy
               • Duży narzut czasu na przygotowanie
                 dokumentacji projektu
               • Zespół długo oczekuje na odpowiedź Komitetu
               • Projekt prawie na pewno zostanie zwrócony do
                 poprawy

        # Zamiast tego
               • Projekt (dokument) zostaje przygotowany i
                 zaakceptowany podczas warsztatów
                 projektowych z liderem architektury
www.bnsit.pl                                 Strefa Wiedzy Lidera IT   101
Lider architektury


       # Polecamy szkolenie



           Projektowanie architektury aplikacji biznesowych
               http://www.bnsit.pl/szkolenie,projektowanie-architektury-aplikacji-
                                         biznesowych




www.bnsit.pl                            Strefa Wiedzy Lidera IT                      102

Contenu connexe

Similaire à Ewolucyjna architektura (Spotkanie Strefy Wiedzy Liderów IT)

Redesign Playmobile.pl - Polish IA Summit 2011
Redesign Playmobile.pl - Polish IA Summit 2011Redesign Playmobile.pl - Polish IA Summit 2011
Redesign Playmobile.pl - Polish IA Summit 2011Paulina Rzymska
 
Head First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polskaHead First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polskaWydawnictwo Helion
 
JDD 2017: Dług techniczny - skryty oprawca organizacji nie tylko technologic...
JDD 2017:  Dług techniczny - skryty oprawca organizacji nie tylko technologic...JDD 2017:  Dług techniczny - skryty oprawca organizacji nie tylko technologic...
JDD 2017: Dług techniczny - skryty oprawca organizacji nie tylko technologic...PROIDEA
 
Realizacja projektów informatycznych w korporacji, Daniel Jabłoński
Realizacja projektów informatycznych w korporacji, Daniel JabłońskiRealizacja projektów informatycznych w korporacji, Daniel Jabłoński
Realizacja projektów informatycznych w korporacji, Daniel Jabłońskie-commerce | InfoTrendy
 
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3Piotr Kmita
 
Rentowność i ryzyko inwestycji w nieruchomości komercyjne
Rentowność i ryzyko inwestycji w nieruchomości komercyjneRentowność i ryzyko inwestycji w nieruchomości komercyjne
Rentowność i ryzyko inwestycji w nieruchomości komercyjneAndrzej Ebinger
 
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...Michał Bartyzel
 
Sztuka zarządzania projektami
Sztuka zarządzania projektamiSztuka zarządzania projektami
Sztuka zarządzania projektamiWydawnictwo Helion
 
Więcej niż architektura oprogramowania
Więcej niż architektura oprogramowaniaWięcej niż architektura oprogramowania
Więcej niż architektura oprogramowaniaWydawnictwo Helion
 
Nowoczesne narzędzia w relacjach z klientami
Nowoczesne narzędzia w relacjach z klientamiNowoczesne narzędzia w relacjach z klientami
Nowoczesne narzędzia w relacjach z klientamiIdeo Sp. z o.o.
 
Rola architektury IT w oprogramowaniu w metodach zwinnych - Krzysztof Gwardys...
Rola architektury IT w oprogramowaniu w metodach zwinnych - Krzysztof Gwardys...Rola architektury IT w oprogramowaniu w metodach zwinnych - Krzysztof Gwardys...
Rola architektury IT w oprogramowaniu w metodach zwinnych - Krzysztof Gwardys...Fundacja Governica
 
Techniczna organizacja zespołu cz 2
Techniczna organizacja zespołu cz 2Techniczna organizacja zespołu cz 2
Techniczna organizacja zespołu cz 2intive
 
Jak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowegoJak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowego2040.io
 
4Developers 2015: Technical leadership – od eksperta do lidera - Mariusz Sier...
4Developers 2015: Technical leadership – od eksperta do lidera - Mariusz Sier...4Developers 2015: Technical leadership – od eksperta do lidera - Mariusz Sier...
4Developers 2015: Technical leadership – od eksperta do lidera - Mariusz Sier...PROIDEA
 
Technical Leadership 4developers 20.04.2015
Technical Leadership 4developers 20.04.2015Technical Leadership 4developers 20.04.2015
Technical Leadership 4developers 20.04.2015Mariusz Sieraczkiewicz
 
Strefa PMI nr 19, listopad 2017
Strefa PMI nr 19, listopad 2017Strefa PMI nr 19, listopad 2017
Strefa PMI nr 19, listopad 2017Strefa PMI
 
Które sroki łapać, czyli o świadomym rozwoju zawodowym UX-a
Które sroki łapać, czyli o świadomym rozwoju zawodowym UX-aKtóre sroki łapać, czyli o świadomym rozwoju zawodowym UX-a
Które sroki łapać, czyli o świadomym rozwoju zawodowym UX-aAgnieszka Guryn
 
User Experience w agencji
User Experience w agencjiUser Experience w agencji
User Experience w agencjiMaciej Lipiec
 
Papiernik 25 03 10
Papiernik 25 03 10Papiernik 25 03 10
Papiernik 25 03 10Synkreo
 

Similaire à Ewolucyjna architektura (Spotkanie Strefy Wiedzy Liderów IT) (20)

Redesign Playmobile.pl - Polish IA Summit 2011
Redesign Playmobile.pl - Polish IA Summit 2011Redesign Playmobile.pl - Polish IA Summit 2011
Redesign Playmobile.pl - Polish IA Summit 2011
 
Head First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polskaHead First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polska
 
JDD 2017: Dług techniczny - skryty oprawca organizacji nie tylko technologic...
JDD 2017:  Dług techniczny - skryty oprawca organizacji nie tylko technologic...JDD 2017:  Dług techniczny - skryty oprawca organizacji nie tylko technologic...
JDD 2017: Dług techniczny - skryty oprawca organizacji nie tylko technologic...
 
Jeden commit
Jeden commitJeden commit
Jeden commit
 
Realizacja projektów informatycznych w korporacji, Daniel Jabłoński
Realizacja projektów informatycznych w korporacji, Daniel JabłońskiRealizacja projektów informatycznych w korporacji, Daniel Jabłoński
Realizacja projektów informatycznych w korporacji, Daniel Jabłoński
 
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
 
Rentowność i ryzyko inwestycji w nieruchomości komercyjne
Rentowność i ryzyko inwestycji w nieruchomości komercyjneRentowność i ryzyko inwestycji w nieruchomości komercyjne
Rentowność i ryzyko inwestycji w nieruchomości komercyjne
 
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
 
Sztuka zarządzania projektami
Sztuka zarządzania projektamiSztuka zarządzania projektami
Sztuka zarządzania projektami
 
Więcej niż architektura oprogramowania
Więcej niż architektura oprogramowaniaWięcej niż architektura oprogramowania
Więcej niż architektura oprogramowania
 
Nowoczesne narzędzia w relacjach z klientami
Nowoczesne narzędzia w relacjach z klientamiNowoczesne narzędzia w relacjach z klientami
Nowoczesne narzędzia w relacjach z klientami
 
Rola architektury IT w oprogramowaniu w metodach zwinnych - Krzysztof Gwardys...
Rola architektury IT w oprogramowaniu w metodach zwinnych - Krzysztof Gwardys...Rola architektury IT w oprogramowaniu w metodach zwinnych - Krzysztof Gwardys...
Rola architektury IT w oprogramowaniu w metodach zwinnych - Krzysztof Gwardys...
 
Techniczna organizacja zespołu cz 2
Techniczna organizacja zespołu cz 2Techniczna organizacja zespołu cz 2
Techniczna organizacja zespołu cz 2
 
Jak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowegoJak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowego
 
4Developers 2015: Technical leadership – od eksperta do lidera - Mariusz Sier...
4Developers 2015: Technical leadership – od eksperta do lidera - Mariusz Sier...4Developers 2015: Technical leadership – od eksperta do lidera - Mariusz Sier...
4Developers 2015: Technical leadership – od eksperta do lidera - Mariusz Sier...
 
Technical Leadership 4developers 20.04.2015
Technical Leadership 4developers 20.04.2015Technical Leadership 4developers 20.04.2015
Technical Leadership 4developers 20.04.2015
 
Strefa PMI nr 19, listopad 2017
Strefa PMI nr 19, listopad 2017Strefa PMI nr 19, listopad 2017
Strefa PMI nr 19, listopad 2017
 
Które sroki łapać, czyli o świadomym rozwoju zawodowym UX-a
Które sroki łapać, czyli o świadomym rozwoju zawodowym UX-aKtóre sroki łapać, czyli o świadomym rozwoju zawodowym UX-a
Które sroki łapać, czyli o świadomym rozwoju zawodowym UX-a
 
User Experience w agencji
User Experience w agencjiUser Experience w agencji
User Experience w agencji
 
Papiernik 25 03 10
Papiernik 25 03 10Papiernik 25 03 10
Papiernik 25 03 10
 

Ewolucyjna architektura (Spotkanie Strefy Wiedzy Liderów IT)

  • 2. Imię i nazwisko Firma 3 słowa o sobie Poznajmy się! www.bnsit.pl
  • 3. Strefa Wiedzy Lidera IT # 1. spotkanie 16 września # W prasie • Artykuły w czasopiśmie Programista • Strefa Wiedzy Lidera IT na portalu czasopisma • Napisz do nas liderit@bnsit.pl # Kolejne spotkanie: 19 kwietnia 2012 www.bnsit.pl Strefa Wiedzy Lidera IT 3
  • 4. Tylko dla uczestników tego spotkania # 1-2 h konsultacji • Omówienie problemów • Wspólne pomysły na rozwiązania • Dalsza współpraca # Kupon do portalu DevCastZone.com # Książka Eseje o efektywności programistów www.bnsit.pl Strefa Wiedzy Lidera IT 4
  • 5. Po co się spotkaliśmy? # Jak zdefiniowad proces ewolucji architektury? # Jak wdrożyd ten proces? # Jak określid zakres odpowiedzialności architekta? # Jak powiązad proces ewolucji architektury z cyklem produkcyjnym w organizacji? # Jak rozwijad architekturę w nowych i istniejących projektach? # Jak zarządzad wiedzą o architekturze i projektowaniu w firmie? www.bnsit.pl Strefa Wiedzy Lidera IT 5
  • 6. Agenda 1. Problemy z architekturą i konsekwencje 2. Idea ewolucji architektury 3. Modele organizacyjne i rola architekta 4. Proces ewolucji architektury 5. Jak wdrożyd proces? 6. Praktyki związane z architekturą w organizacji www.bnsit.pl Strefa Wiedzy Lidera IT 6
  • 7. Harmonogram # 12.00 – 13.30 – sesja # 13.30 – 13.45 – przerwa kawowa # 13.45 – 15.15 – sesja # 15.15 – 15.45 – przerwa lunchowa # 15.45 – 17.00 – sesja www.bnsit.pl Strefa Wiedzy Lidera IT 7
  • 8. Jak powstaje architektura? Ewolucyjna architektura www.bnsit.pl Strefa Wiedzy Lidera IT 8
  • 9. Najczęściej... # Architektura jest tworzona na początku # Opór przed zmianą architektury • Duży wpływ na resztę systemu • Duży koszt • Duże ryzyko www.bnsit.pl
  • 10. Dlaczego tak się dzieje? # Na początku będzie szybciej www.bnsit.pl Strefa Wiedzy Lidera IT 10
  • 11. Dlaczego tak się dzieje? # Nie zdążymy zrobid wszystkiego, czego oczekuje klient www.bnsit.pl Strefa Wiedzy Lidera IT 11
  • 12. Dlaczego tak się dzieje? # Bywają naciski, aby wykonywad tylko to, co „widad” Najważniejsze jest to, co nie widoczne dla oczu Mały Książę www.bnsit.pl Strefa Wiedzy Lidera IT 12
  • 13. Dlaczego tak się dzieje? # Ludzie sobie jakoś poradzą www.bnsit.pl Strefa Wiedzy Lidera IT 13
  • 14. A z tego wynika... Ewolucyjna architektura www.bnsit.pl
  • 15. Problem 1 # Może się okazad, że trzeba będzie zakopad system www.bnsit.pl
  • 16. Problem 2 # Rozwój systemu nie nadąża za potrzebami biznesowymi www.bnsit.pl Strefa Wiedzy Lidera IT 16
  • 17. Problem 3 # Demotywacja zespołu www.bnsit.pl Strefa Wiedzy Lidera IT 17
  • 18. Problem 4 # Coraz trudniej odnajdowad błędy www.bnsit.pl Strefa Wiedzy Lidera IT 18
  • 19. Problem 5 # Brak powtarzalnych rozwiązao i powielanie pracy www.bnsit.pl Strefa Wiedzy Lidera IT 19
  • 20. Problem 6 # Rozwój systemu to obsługa przypadków szczególnych www.bnsit.pl Strefa Wiedzy Lidera IT 20
  • 21. Podejścia do rozwoju architektury Ewolucyjna architektura www.bnsit.pl
  • 22. Na razie hasłowo # Nic nie robid – „Ludzie sobie jakoś poradzą” # Reagowanie na poważne problemy (blokery) # Faza refaktoryzacji po implementacji # Zarządzanie ewolucją architektury • Alokowanie zasobów na prace nad architekturą • Dodatkowe iteracje # CDN… www.bnsit.pl Strefa Wiedzy Lidera IT 22
  • 23. Idea ewolucji architektury Ewolucja architektury www.bnsit.pl
  • 24. Idea ewolucji architektury # Jeśli proces rozwoju architektury toczy się przypadkowo, to przypadkowe będą również efekty www.bnsit.pl Strefa Wiedzy Lidera IT 24
  • 25. Korzyści z ewolucji Ewolucyjna architektura www.bnsit.pl
  • 26. Korzyść najważniejsza # Przetrwanie www.bnsit.pl
  • 27. Korzyść 2 # Architektura będzie się upraszczad www.bnsit.pl Strefa Wiedzy Lidera IT 27
  • 28. Korzyść 3 # Zmiana wymagao nie będzie aż taką tragedią www.bnsit.pl Strefa Wiedzy Lidera IT 28
  • 29. Korzyść 4 # Krótszy czas implementacji i poszukiwania błędów i niższy kosz utrzymania www.bnsit.pl Strefa Wiedzy Lidera IT 29
  • 30. Korzyść 5 # Nie będą potrzebni zewnętrzni konsultanci www.bnsit.pl Strefa Wiedzy Lidera IT 30
  • 31. ale... www.bnsit.pl Strefa Wiedzy Lidera IT 31
  • 32. Jakie „ale”? # Nie jest istotne ulepszenie architektury jako takiej, lecz rozwiązanie problemów # Dla konkretnego przypadku potrzeba analizy biznesowej # Konsultacje dla uczestników tego spotkania www.bnsit.pl Strefa Wiedzy Lidera IT 32
  • 33. Ewolucyjna architektura Oczekiwanie: żeby było szybko # Rozwiązania architektoniczne powinny szybko zaradzid problemom # Brak zdefiniowanego procesu pracy nad architekturą # Rozwój architektury powinien odbywad się w międzyczasie www.bnsit.pl Strefa Wiedzy Lidera IT 33
  • 34. Ewolucyjna architektura Oczekiwanie: ewolucyjnie nie rewolucyjnie # Nie zmieniad od razu wszystkiego, lecz stopniowo tylko to, co konieczne # Architektura powinna dojrzewad wraz z funkcjonalnościami systemu # Zapominamy, że ewolucja również wymaga czasu www.bnsit.pl Strefa Wiedzy Lidera IT 34
  • 35. Ewolucyjna architektura Oczekiwanie: Dużo magicznych sztuczek # Sprytny trik architektoniczny rozwiąże problemy # Nie zmieniad zbyt wiele, a jedynie nieznacznie zmodyfikowad # Nie potrzeba na to zbyt wiele wysiłku www.bnsit.pl Strefa Wiedzy Lidera IT 35
  • 36. Modele organizacyjne Ewolucyjna architektura www.bnsit.pl
  • 37. Ewolucyjna architektura Trywialny model # Lider architektury wyłania się samoczynnie # Zazwyczaj jest to programista z największym doświadczeniem # Istnieje niebezpieczeostwo, że nikt nie zainteresuje się architekturą www.bnsit.pl Strefa Wiedzy Lidera IT 37
  • 38. Ewolucyjna architektura Złożony model organizacyjny Architekt Korporacyjny (Enterprise Architect) Architekt Aplikacji (Software Architect) www.bnsit.pl Strefa Wiedzy Lidera IT 38
  • 39. Ewolucyjna architektura Architekt Korporacyjny # Przygotowywanie mapy systemów dla organizacji # Opracowywanie infrastruktury programowej dla organizacji # Szacowanie kosztu usunięcia/dodania systemu do/z infrastruktury # Opracowywanie polityki i harmonogramu wdrożeo www.bnsit.pl Strefa Wiedzy Lidera IT 39
  • 40. Ewolucyjna architektura Architekt aplikacji # Dobieranie technologii do wymagao funkcjonalnych # Zaprojektowanie sposobu działania, przechowywania i prezentacji danych w systemie # Opracowanie sposobu egzekwowania zasad bezpieczeostwa przez system # etc. www.bnsit.pl Strefa Wiedzy Lidera IT 40
  • 41. Ewolucyjna architektura Jeszcze bardziej złożony model organizacyjny www.bnsit.pl Strefa Wiedzy Lidera IT 41
  • 42. Ewolucyjna architektura Odpowiedzialności architektów # Główny Architekt (Chief Enterprise Architect) • Dba, by wdrażanie konkretnych rozwiązao wspierało procesy biznesowe w organizacji • Przewodniczy Komitetowi Architektonicznemu # Architekt Funkcjonalny • Łączy odpowiedzialności Analityka Biznesowego, Analityka Funkcjonalnego i menadżera • Analizuje proces biznesowy i definiuje funkcjonalności, do których powinni mied dostęp użytkownicy • Określa, w których systemach powinny zostad zaimplementowane poszczególne funkcjonalności www.bnsit.pl Strefa Wiedzy Lidera IT 42
  • 43. Architekt: stanowisko czy rola? Ewolucyjna architektura www.bnsit.pl
  • 44. Ewolucyjna architektura Minusy stanowiska # Wąskie specjalizacje poszczególnych osób # Sztuczne oddzielanie myślenia o architekturze od programowania # Powstawanie Power Point architects # Tłumienie kreatywności programistów www.bnsit.pl Strefa Wiedzy Lidera IT 44
  • 45. Ewolucyjna architektura Lider Architektury # Bierze udział w pracach, ma kontakt z kodem # Zbiera informacje o problemach z architekturą # Zbiera pomysły na poprawę architektury # Edukuje programistów w zakresie architektury # Inicjuje zmiany w architekturze # Opracowuje dokumentację oraz mantrę architektoniczną # Dba o wymianę wiedzy technicznej w zespole www.bnsit.pl Strefa Wiedzy Lidera IT 45
  • 46. Ewolucyjna architektura Skalowanie roli lidera architektury www.bnsit.pl Strefa Wiedzy Lidera IT 46
  • 47. Ewolucyjna architektura Stanowisko może mieć znaczenie # Daje możliwośd awansu # Uatrakcyjnia CV # Stanowisko architekt uważane jest za bardziej prestiżowe niż stanowisko programista www.bnsit.pl Strefa Wiedzy Lidera IT 47
  • 48. Ewolucyjna architektura Możliwe rozwiązania # Listy gratulacyjne za konkretne osiągniecia # System certyfikacji wewnętrznej # Kultura zdobywania sprawności na zasadzie Black Belt Factory # Oddzielenie stanowisk od ról pełnionych w projekcie www.bnsit.pl Strefa Wiedzy Lidera IT 48
  • 49. 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 Strefa Wiedzy Lidera IT 49
  • 50. Proces ewolucji architektury Ewolucyjna architektura www.bnsit.pl
  • 51. Proces rozwoju architektury Założenia # JIT (just in time) – zajmuj się tylko tym, co jest ważne teraz # Zakłada się, że architektura będzie ewoluowad i zmieniad się w miarę postępu projektu # Proces ewolucji architektury musi zostad zdefiniowany w organizacji www.bnsit.pl Strefa Wiedzy Lidera IT 51
  • 52. Proces rozwoju architektury Proces ewolucji architektury www.bnsit.pl Strefa Wiedzy Lidera IT 52
  • 53. Najprostsza implementacja www.bnsit.pl Strefa Wiedzy Lidera IT 53
  • 54. Szczegóły procesu Ewolucja architektury www.bnsit.pl
  • 55. Proces rozwoju architektury Koszyk # W Koszyku przechowywane są pomysły (epics) na udoskonalenia w architekturze # Kto może wrzucad do Koszyka? • Programiści • Testerzy • Liderzy architektury # Jaką formę ma Koszyk? • Pudełko • Dedykowany adres mailowy • Lista mailingowa • Strona wiki • Tickety w systemie bugtracker www.bnsit.pl Strefa Wiedzy Lidera IT 55
  • 56. Proces rozwoju architektury Koszyk: pomysły (architectural epics) # Pomysł (epic) to luźne zdanie opisujące udoskonalenie w architekturze # Przykłady • Zastąpić Hibernate przez myBatis • Wprowadzić loadbalancing • Usunąć nieużywane funkcjonalności # Pomysły muszą zostad podzielone www.bnsit.pl Strefa Wiedzy Lidera IT 56
  • 57. Proces rozwoju architektury Koszyk: Ocena pomysłu # Każdy pomysł oceniany jest pod kątem • Wartości biznesowej • Kosztu stworzenia • Pomysły powyżej ustalonego poziomu: wartość/koszt trafiają do Rejestru • Pomysły poniżej poziomu są definitywnie odrzucane # W jakich jednostkach ocenia się pomysły? • Wartośd: liczba całkowita, pieniądze • Koszt: osobodni, pieniądze • Jednostka względna: 2, 4, 8, 16, 32, 64, 128 www.bnsit.pl Strefa Wiedzy Lidera IT 57
  • 58. Proces rozwoju architektury Koszyk: Ocena pomysłu # Przykładowy sposób wyliczania wskaźnika Rozmiar zadania – 1, 2, 3, 5, 8, 13, 20, 40 Wartośd biznesowa – 1, 2, 3, 5, 8, 13, 20, 40 Dopasowanie do obecnych celów biznesowych – 0, ¼, ½, ¾, 1 Wskaźnik = (Wartość biznesowa/Rozmiar) * Dopasowanie www.bnsit.pl Strefa Wiedzy Lidera IT 58
  • 59. Proces rozwoju architektury Koszyk: Ocena pomysłu # Jak często pomysły są oceniane? • Regularnie, co ustalony odstęp czasu • Nieregularnie, gdy koszyk przekroczy założoną pojemnośd • Wprowadza się dodatkowy wskaźnik czas życia pomysłu w koszyku, aby zapobiec odraczaniu oceny pomysłów # Ile pomysłów w koszyku? • maksymalnie 50-75 # Kto ocenia pomysły? • Liderzy architektury www.bnsit.pl Strefa Wiedzy Lidera IT 59
  • 60. Proces rozwoju architektury Rejestr (backlog) # Pozycje rejestru (backlog items) są uporządkowane według wskaźnika # Kto może dodawad pozycje do Rejestru? • Liderzy architektury • Jeden z liderów architektury # Jaką formę ma Rejestr? • Plik arkusza kalkulacyjnego • Folder mailowy • Najistotniejszą cechą rejestru jest jego uporządkowanie www.bnsit.pl Strefa Wiedzy Lidera IT 60
  • 61. Proces rozwoju architektury Rejestr: Analiza Rejestru # Każda pozycja z Rejestru • Oceniana jest pod katem kosztu zaniechania • Ma aktualizowaną wartośd oraz koszt • Ma aktualizowany wskaźnik • Jeśli przebywa w Rejestrze ponad określony czas jest z niego usuwana • Pozycja/e ze szczytu Rejestru przekazywane są do analizy # Jak dużo elementów? • maksymalnie 20-25 # Jak często analizowany jest Rejestr? • W trakcie planowania wydania • Jeśli cykle produkcyjne są długie, to w trakcie planowania kolejnego cyklu www.bnsit.pl Strefa Wiedzy Lidera IT 61
  • 62. Proces rozwoju architektury Analiza # Celem Analizy jest opracowanie alternatyw projektowych oraz oszacowanie zasobów niezbędnych do wdrożenia danej pozycji # Ile elementów? • maksymalnie 5-7 # Kto wykonuje analizę? • Lider komponentu • Lider architektury www.bnsit.pl Strefa Wiedzy Lidera IT 62
  • 63. Proces rozwoju architektury Zasada wartości biznesowej # Funkcjonalności (potentially shippable increments) oraz architektura mają całkowicie inną charakterystykę rozwoju # Proces ewolucji architektury musi promowad rozwój funkcjonalności, aby powiększad wartośd biznesową produktu www.bnsit.pl Strefa Wiedzy Lidera IT 63
  • 64. Proces rozwoju architektury Zasada wartości biznesowej # Idea rozbudowy architektury: architectural slices of customer-centric features # Kolejne slices architektury są wpisane w cykl zwiększania wartości biznesowej www.bnsit.pl Strefa Wiedzy Lidera IT 64
  • 65. Proces rozwoju architektury Analiza: Zrąb raportu biznesowego # 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 Strefa Wiedzy Lidera IT 65
  • 66. KRYTYCZNE cechy procesu Ewolucja architektury www.bnsit.pl
  • 67. Minimalizuj liczbę jednocześnie wykonywanych zadań # Widoczne konsekwencje wprowadzanych zmian # Kontrolowane ryzyko www.bnsit.pl
  • 68. Koncentracja wysiłków # Możliwie szybko dąż do zakooczenia i wdrożenia zmian www.bnsit.pl
  • 69. Wizualizuj postępy prac # W widocznych miejscach # Co wizualizowad? • Koszyk, Rejestr, zadania w toku • Prosty diagram HLD www.bnsit.pl
  • 70. Wdrażanie – dodatkowe iteracje Ewolucyjna architektura www.bnsit.pl
  • 71. Proces rozwoju architektury Iteracyjny proces pracy zespołu # Cele procesu iteracyjnego • Stopniowe odkrywanie potrzebnych funkcjonalności i ich ciągłe dostarczanie • Koncentracja na wartości biznesowej • Dbanie o jakośd wytwarzanego kodu • Stymulowanie innowacji w architekturze www.bnsit.pl Strefa Wiedzy Lidera IT 71
  • 72. Proces rozwoju architektury Iteracja „0” Wstępne określenie Wstępne określenie wymagao architektury (dni) (dni) Iteracja 0: Wizualizacja # Przygotowanie do kolejnego wydania # Stworzenie podwalin architektury # Wybranie z Rejestru pozycji do realizacji # Określenie celu wydania # Określenie listy wymagao do implementacji www.bnsit.pl Strefa Wiedzy Lidera IT 72
  • 73. Proces rozwoju architektury Iteracja „0”: Wstępne modelowanie # Szkic technologii # Ekrany użytkownika # Model konceptualny # Przypadki zmian www.bnsit.pl Strefa Wiedzy Lidera IT 73
  • 74. Proces rozwoju architektury Iteracja zakańczająca (Hardening Iteration) # Cel iteracji: spłacenie części długu technicznego występującego w kodzie # Działania podejmowane w trakcie iteracji • Implementowanie pozycji Rejestru, dla których nie było miejsca w standardowych iteracjach • Poprawianie czytelności kodu • Doprowadzanie kodu do stanu, w którym spełnia on przyjęte normy jakości www.bnsit.pl Strefa Wiedzy Lidera IT 74
  • 75. Proces rozwoju architektury Iteracja innowacji (Hackathon Iteration) # Cel iteracji: stymulowanie innowacji w obszarze architektury # Działania podejmowane w trakcie iteracji • Eksperymentowanie z nowymi technologiami pod kątem użyteczności dla organizacji # Korzyści z Iteracji innowacji • Czas na „złapanie oddechu” dla zespołu • Generuje nowe innowacyjne pomysły • Pomaga programistom byd „na czasie” i poprawia motywację www.bnsit.pl Strefa Wiedzy Lidera IT 75
  • 76. Proces rozwoju architektury Iteracje i wydania # Wydania i iteracje nie muszą (i zazwyczaj nie są) zorganizowane szeregowo # Gdy prace w jednym cyklu są wygaszane, rozpoczynają się wstępne prace w kolejnych www.bnsit.pl Strefa Wiedzy Lidera IT 76
  • 77. Wdrażanie – alokacja zasobów Ewolucyjna architektura www.bnsit.pl
  • 78. Alokacja czasu na prace architektoniczne # W ramach przydzielania zasobów częśd prac przewiduje się na rozwój architektury # Początkowo można przyjąd 10-15% OD www.bnsit.pl
  • 79. Wdrażanie – DUŻA refaktoryzacja Ewolucyjna architektura www.bnsit.pl
  • 80. Duża refaktoryzacja # Wydzielenie czasu (np. iteracji) tylko na rozwój architektury # Duże ryzyko zaniechania prac ze względu brak szybkich efektów # Duże wyzwanie na poziomie integracyjnym # Zatrzymanie rozwoju produktu www.bnsit.pl
  • 81. Wdrażanie – przepisanie systemu Ewolucyjna architektura www.bnsit.pl
  • 82. Przepisanie systemu # Istnieją dwie linie produktu (duży koszt utrzymania spójności) # Przy nowej technologii – duży koszt pozyskania kompetencji # Przepisanie młodego systemu zajmuje 20-25% pierwotnego czasu www.bnsit.pl
  • 83. Wdrażanie – usuwanie wąskich gardeł Ewolucyjna architektura www.bnsit.pl
  • 84. Usuwanie wąskich gardeł Lider architektury/zespoły # wiedzą, gdzie są wąskie gardła # należy wybrad te 2-3 zmiany, które będą miały największy efekt www.bnsit.pl
  • 85. Wdrażanie – izolowanie starego kodu Ewolucyjna architektura www.bnsit.pl
  • 86. Izolowanie starego kodu # Znacząca częśd kodu jest stabilna # Mimo że słabo napisana lub oparta na starej technologii # Opakuj stabilną częśd systemu warstwą izolacyjną # Odizoluj nowe funkcjonalności www.bnsit.pl
  • 87. Wdrażanie - arkusz pytań Ewolucyjna architektura www.bnsit.pl
  • 88. Arkusz pytań – definiowanie procesu www.bnsit.pl
  • 89. Praktyki Proces rozwoju architektury www.bnsit.pl
  • 90. Proces rozwoju architektury Spotkanie rozpoczynające www.bnsit.pl Strefa Wiedzy Lidera IT 90
  • 91. Proces rozwoju architektury Spotkanie rozpoczynające # Cel: zbudowanie wspólnego rozumienia produktu, który należy dostarczyd # Kto bierze udział w spotkaniu? • Osoby, które będą wykonywad prace # Jak często odbywa się spotkanie? • Przed rozpoczęciem prac nad kolejnym wydaniem • W razie potrzeby w mniejszym gronie w trakcie trwania prac www.bnsit.pl Strefa Wiedzy Lidera IT 91
  • 92. Proces rozwoju architektury Spotkanie rozpoczynające: odpowiedzialności osób # Przedstawiciel sponsora • Określenie celu wydania • Odpowiadanie na pytania # Liderzy komponentów • Analizowanie wpływu wymagania na architekturę komponentu • Zgłaszanie sugestii www.bnsit.pl Strefa Wiedzy Lidera IT 92
  • 93. Proces rozwoju architektury Spotkanie rozpoczynające: odpowiedzialności osób # Lider architektury • Analizowanie wpływu wymagania na architektury systemu • Zgłaszanie sugestii # Lider testerów • Określenie zakresu testów akceptacyjnych • Zgłaszanie sugestii www.bnsit.pl Strefa Wiedzy Lidera IT 93
  • 94. Proces rozwoju architektury Spotkanie rozpoczynające: odpowiedzialności osób # Programista (opcjonalnie) • Wykrywanie zagadnieo i niespójności, które mogą wyniknąd w trakcie implementacji • Zgłaszanie sugestii # Użytkownik (opcjonalnie) • Zgłaszanie uwag nt. ergonomii interfejsu użytkownika i komfortu pracy • Zgłaszanie sugestii www.bnsit.pl Strefa Wiedzy Lidera IT 94
  • 95. Proces rozwoju architektury Warsztaty projektowania # Ustalanie architektury w trakcie Iteracji „0” # Uaktualnianie architektury na początku iteracji # Spontaniczne warsztaty w razie potrzeby (just-in-time) # Narzędzia • Tablica ścieralna (im większa tym lepsza) • Folia elektrostatyczna (np. HandyChart) • Flamastry www.bnsit.pl Strefa Wiedzy Lidera IT 95
  • 96. Proces rozwoju architektury Warsztaty projektowania: rozprzestrzenianie wiedzy A single conversation with a wise man is better than ten years of study # Liderzy aranżują miniszkolenia dotyczące architektury systemu # Wiedza jest naturalnie rozprzestrzeniana w zespołach (human infection) # Istotniejsze fragmenty można przechowywad na wiki jako fotografie # Również warsztaty międzyzespołowe www.bnsit.pl Strefa Wiedzy Lidera IT 96
  • 97. Proces rozwoju architektury Warsztaty projektowania: ujednolicanie języka # Spójny język dziedziny • „Metryczka” to…. • „Odzysk” to… • „Pudełko” to… # Spójny język techniczny • „Użyjmy tu fabryki konfigurowanej przez fluent api” • „Ten adpater nie powinien znajdowad się w warstwie serwisów, lecz niżej zaraz nad domeną • Programiści posługują się konceptami – językiem na wyższym poziomie abstrakcji www.bnsit.pl Strefa Wiedzy Lidera IT 97
  • 98. Proces rozwoju architektury Dream Team www.bnsit.pl Strefa Wiedzy Lidera IT 98
  • 99. Proces rozwoju architektury Dream Team # Najlepsi ludzie, najbardziej zgrany zespół rozpędza projekt # Czym kooczą się prace Dream Team? • Szkielet systemu • Ustalona architektura • Dokumentacja architektury systemu # Co dalej? • Uczestnicy Dream Team organizują kolejne zespoły • Uczą programistów i rozprzestrzeniają wiedzę (human infection) • Prowadzą Warsztaty projektowania www.bnsit.pl Strefa Wiedzy Lidera IT 99
  • 100. Proces rozwoju architektury Architekci i architektura # Architekt, który nie dotyka kodu zaczyna fantazjowad # Niektóre decyzje architektoniczne są już nieaktualne - uważaj na chorobliwą konsekwencję w ich podtrzymywaniu # Jeśli możesz wybierad zmiany architektoniczne do wdrożenia, to wybieraj te, które mają największy wpływ na poprawę projektu www.bnsit.pl Strefa Wiedzy Lidera IT 100
  • 101. Proces rozwoju architektury Ostrożnie z Komitetem Architektonicznym # Możliwe problemy • Duży narzut czasu na przygotowanie dokumentacji projektu • Zespół długo oczekuje na odpowiedź Komitetu • Projekt prawie na pewno zostanie zwrócony do poprawy # Zamiast tego • Projekt (dokument) zostaje przygotowany i zaakceptowany podczas warsztatów projektowych z liderem architektury www.bnsit.pl Strefa Wiedzy Lidera IT 101
  • 102. Lider architektury # Polecamy szkolenie Projektowanie architektury aplikacji biznesowych http://www.bnsit.pl/szkolenie,projektowanie-architektury-aplikacji- biznesowych www.bnsit.pl Strefa Wiedzy Lidera IT 102