Architektura Lean w projektach Agile.pdf

(738 KB) Pobierz
Tytuł oryginału: Lean Architecture: for Agile Software Development
Tłumaczenie: Radosław Meryk
Projekt okładki: Studio Gravite / Olsztyn
Obarek, Pokoński, Pazdrijowski, Zaprucki
ISBN: 978-83-246-8672-8
© 2010 James Coplien and Gertrud Bjørnvig.
All Rights Reserved. Authorised translation from the English language edition published by
John Wiley & Sons Limited. Responsibility for the accuracy of the translation rests solely with Helion S.A.
and is not the responsibility of John Wiley & Sons Limited.
No part of this book may be reproduced in any form without the written permission of the original
copyright holder, John Wiley & Sons Limited.
Translation copyright © 2014 by Helion S.A.
Designations used by companies to distinguish their products are often claimed as trademarks. All brand
names and product names used in this book are trade names, service marks, trademarks or registered
trademarks of their respective owners. The publisher is not associated with any product or vendor
mentioned in this book. This publication is designed to provide accurate and authoritative information in
regard to the subject matter covered. It is sold on the understanding that the publisher is not engaged in
rendering professional services. If professional advice or other expert assistance is required, the services of
a competent professional should be sought.
Quotes from The Clock of the Long Now: Time and Responsibility – The Ideas Behind the World’s Slowest
Computer are Copyright © 2000 Stewart Brand.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były
kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane
z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie
ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/arlean
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
O autorach ............................................................................................................................ 11
Wstęp .................................................................................................................................... 13
1. Wprowadzenie ................................................................................................................. 19
1.1. Podwaliny: Lean i Agile ........................................................................................................................... 19
1.2. Architektura Lean i wytwarzanie funkcji zgodnie z metodyką Agile ............................................... 22
1.3. Produkcja Agile ......................................................................................................................................... 24
1.3.1. Agile bazuje na architekturze Lean .................................................................................................. 24
1.3.2. Zakres systemów Agile ....................................................................................................................... 25
1.3.3. Agile i DCI ........................................................................................................................................... 26
1.4. Książka w bardzo małej pigułce .............................................................................................................. 27
1.5. Lean i Agile: kontrastujące i uzupełniające ........................................................................................... 28
1.5.1. Sekret Lean ........................................................................................................................................... 30
1.6. Utracone praktyki ..................................................................................................................................... 30
1.6.1. Architektura ......................................................................................................................................... 31
1.6.2. Obsługa zależności pomiędzy wymaganiami ................................................................................. 31
1.6.3. Podstawy użyteczności ....................................................................................................................... 31
1.6.4. Dokumentacja ..................................................................................................................................... 32
1.6.5. Zdrowy rozsądek, myślenie i opieka ................................................................................................ 35
1.7. O czym ta książka nie jest? ...................................................................................................................... 36
1.8. Agile, Lean, Scrum i inne metodologie ................................................................................................. 37
1.9. Rys historyczny ......................................................................................................................................... 38
2 . Produkcja Agile w pigułce .............................................................................................. 41
2.1. Zaangażuj interesariuszy ......................................................................................................................... 41
2.2. Zdefiniowanie problemu ......................................................................................................................... 43
2.3. Czym system jest: podstawa formy ........................................................................................................ 43
2.4. Czym system jest: siła napędowa systemu ............................................................................................ 45
2.5. Projekt i kodowanie ................................................................................................................................. 46
2.6. Odliczanie: 3, 2, 1... ................................................................................................................................... 47
Kup książkę
Poleć książkę
6
Spis treści
3. Zaangażowanie interesariuszy ....................................................................................... 49
3.1. Strumień wartości ..................................................................................................................................... 49
3.1.1. Użytkownicy końcowi i inni interesariusze jako kotwice strumienia wartości ......................... 50
3.1.2. Architektura w ramach strumienia wartości .................................................................................. 51
3.1.3. Sekret Lean ........................................................................................................................................... 52
3.2. Najważniejsi interesariusze ..................................................................................................................... 54
3.2.1. Użytkownicy docelowi ....................................................................................................................... 56
3.2.2. Biznes .................................................................................................................................................... 60
3.2.3. Klienci ................................................................................................................................................... 61
3.2.4. Eksperci dziedzinowi .......................................................................................................................... 64
3.2.5. Deweloperzy i testerzy ....................................................................................................................... 66
3.3. Elementy procesu angażowania interesariuszy .................................................................................... 68
3.3.1. Od czego zacząć? ................................................................................................................................. 68
3.3.2. Zaangażowanie klienta ....................................................................................................................... 70
3.4. Sieć interesariuszy: eliminowanie marnotrawstwa czasu ................................................................... 71
3.4.1. Linia produkcyjna czy rój? ................................................................................................................ 71
3.4.2. Pierwsza rzecz, którą należy zbudować ........................................................................................... 73
3.4.3. Utrzymuj jedność zespołu ................................................................................................................. 74
3.5. Nie ma szybkich rozwiązań, ale jest nadzieja ....................................................................................... 75
4. Definiowanie problemu .................................................................................................. 77
4.1. Jakie cechy Agile mają definicje problemów? ...................................................................................... 78
4.2. Jakie cechy Lean mają definicje problemów? ....................................................................................... 78
4.3. Dobre i złe definicje problemów ............................................................................................................ 79
4.4. Problemy i rozwiązania ........................................................................................................................... 81
4.5. Proces definiowania problemów ............................................................................................................ 82
4.5.1. Ceń bardziej polowanie niż nagrodę ................................................................................................ 82
4.5.2. Własność problemu ............................................................................................................................ 83
4.5.3. Przerost funkcjonalności ................................................................................................................... 84
4.6. Definicje problemu, cele, czartery, wizje i zamierzenia ...................................................................... 84
4.7. Dokumentacja? ......................................................................................................................................... 85
5. Czym jest system? Część I. Architektura Lean ............................................................... 87
5.1. Kilka niespodzianek o architekturze ...................................................................................................... 88
5.1.1. Co Lean ma z tym wspólnego? .......................................................................................................... 90
5.1.2. Co Agile ma wspólnego z architekturą? .......................................................................................... 91
5.2. Pierwszy krok w projekcie: podział na części ....................................................................................... 94
5.2.1. Pierwszy podział: forma dziedzinowa a forma behawioralna ...................................................... 95
5.2.2. Drugi podział: prawo Conwaya ........................................................................................................ 96
5.2.3. Rzeczywista złożoność podziału systemu ........................................................................................ 98
5.2.4. Wymiary złożoności ........................................................................................................................... 99
5.2.5. Dziedziny. Wyjątkowy podział ......................................................................................................... 99
5.2.6. Wracamy do wymiarów złożoności ............................................................................................... 101
5.2.7. Architektura i kultura ...................................................................................................................... 104
5.2.8. Wnioski na temat prawa Conwaya ................................................................................................ 105
Kup książkę
Poleć książkę
Spis treści
7
5.3. Drugi krok w projekcie: wybór stylu projektu ................................................................................... 105
5.3.1. Struktura a podział ........................................................................................................................... 106
5.3.2. Podstawy stylu: części stałe i zmienne ........................................................................................... 107
5.3.3. Zaczynamy od oczywistych części wspólnych i różnic ................................................................ 108
5.3.4. Części wspólne, różnice i zakres ..................................................................................................... 111
5.3.5. Jawne wyrażanie części wspólnych i różnic .................................................................................. 113
5.3.6. Najpopularniejszy styl: programowanie obiektowe ..................................................................... 116
5.3.7. Inne style w obrębie świata von Neumanna ................................................................................. 118
5.3.8. Języki dziedzinowe i generatory aplikacji ...................................................................................... 120
5.3.9. Formy skodyfikowane: języki wzorców ......................................................................................... 123
5.3.10. Oprogramowanie dostawców zewnętrznych i inne paradygmaty ........................................... 124
5.4. Dokumentacja? ....................................................................................................................................... 127
5.4.1. Słownik dziedziny ............................................................................................................................. 127
5.4.2. Przenoszenie architektury ............................................................................................................... 128
5.5. Tło historyczne ....................................................................................................................................... 128
6. Czym jest system? Część II. Kodowanie .......................................................................131
6.1. Krok trzeci: szkic kodu .......................................................................................................................... 131
6.1.1. Abstrakcyjne klasy bazowe .............................................................................................................. 132
6.1.2. Warunki wstępne, warunki końcowe i asercje ............................................................................. 136
6.1.3. Skalowanie algorytmów: druga strona statycznych asercji ......................................................... 142
6.1.4. Forma a dostępne usługi .................................................................................................................. 143
6.1.5. Rusztowanie ....................................................................................................................................... 144
6.1.6. Testowanie architektury .................................................................................................................. 146
6.2. Relacje w architekturze .......................................................................................................................... 149
6.2.1. Typy relacji ........................................................................................................................................ 149
6.2.2. Testowanie relacji ............................................................................................................................. 150
6.3. Programowanie obiektowe „po nowemu” .......................................................................................... 151
6.4. Ile architektury? ...................................................................................................................................... 153
6.4.1. Równowaga pomiędzy BUFD a YAGNI ....................................................................................... 154
6.4.2. Jeden rozmiar nie pasuje wszystkim .............................................................................................. 154
6.4.3. Kiedy architektura jest gotowa? ...................................................................................................... 156
6.5. Dokumentacja? ....................................................................................................................................... 156
6.6. Tło historyczne ....................................................................................................................................... 157
7. Co system robi: funkcje systemu ..................................................................................159
7.1. Co system robi? ....................................................................................................................................... 160
7.1.1. Opowieści użytkowników: początek .............................................................................................. 160
7.1.2. Wykorzystanie specyfikacji i przypadków użycia ........................................................................ 161
7.1.3. Pomoc należy się także programistom .......................................................................................... 162
7.1.4. Kilometraż nie zawsze jest taki sam ............................................................................................... 163
7.2. Kto będzie korzystać z naszego oprogramowania? ............................................................................ 164
7.2.1. Profile użytkowników ...................................................................................................................... 164
7.2.2. Osoby .................................................................................................................................................. 164
7.2.3. Profile użytkowników czy osoby? ................................................................................................... 165
7.2.4. Role użytkowników i terminologia ................................................................................................ 165
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin