O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Agile Development. Filozofia programowania zwinnego

Book Description

Ksi??ka dla programistów, którzy maj? do?wiadczenie w tworzeniu witryn internetowych i s? zainteresowani ulepszaniem istniej?cych ju? aplikacji.

Table of Contents

  1. Agile Development. Filozofia programowania zwinnego
  2. Dedykacja
  3. Pochwała Agile Development. Filozofia programowania zwinnego
  4. Wprowadzenie
    1. Dla pragmatyków
    2. Kto powinien przeczytać tę książkę?
    3. O wprawkach
    4. O zaimkach
    5. Przykładowy kod
    6. Podziękowania
      1. James Shore
      2. Shane Warden
  5. I. Zaczynamy
    1. 1. Dlaczego zwinne programowanie?
      1. Czym jest sukces?
      2. Poza harmonogram
      3. Znaczenie sukcesów na poziomie organizacji
      4. Wkraczanie w świat zwinnego programowania
        1. Sukces na poziomie organizacji
        2. Sukces techniczny
        3. Sukces osobisty
    2. 2. Jak być zwinnym?
      1. Zwinne metody
      2. Czy warto wymyślać własne metody?
      3. Droga do mistrzostwa
      4. Szukanie mentora
    3. 3. Zrozumieć XP
      1. Cykl życia w XP
        1. Jak to działa?
          1. Planowanie
          2. Analizy
          3. Projektowanie i pisanie kodu
          4. Testy
          5. Instalowanie
        2. Historii ciąg dalszy
      2. Zespół w XP
        1. Cały zespół
        2. Przedstawiciele klienta
          1. Menedżer produktu (inaczej: właściciel produktu)
          2. Eksperci z dziedziny
          3. Projektanci interakcji
          4. Analitycy biznesowi
        3. Programiści
          1. Projektanci i architekci
          2. Specjaliści do spraw technicznych
          3. Testerzy
        4. Coachowie
          1. Coach programista
          2. Menedżer projektu
        5. Pozostali członkowie zespołu
        6. Społeczność projektowa
          1. Udziałowcy
          2. Właściciel projektu
        7. Przypisywanie ról
        8. Wielkość zespołu
        9. Pełnoetatowi członkowie zespołu
      3. Pojęcia związane z XP
        1. Refaktoryzacja
        2. Dług techniczny
        3. Przedziały czasu
        4. Ostatni moment na podjęcie zobowiązań
        5. Opowieści
        6. Iteracje
        7. Szybkość
        8. Teoria ograniczeń
        9. Rozwaga
    4. 4. Wprowadzanie XP
      1. Czy XP to coś dla nas?
        1. Wymaganie wstępne numer 1: wsparcie zarządu
          1. Jeśli zarząd nie wspiera zespołu...
        2. Wymaganie wstępne numer 2: zgoda zespołu
          1. Jeśli członkowie zespołu się opierają...
        3. Wymaganie wstępne numer 3: praca zespołu w jednym miejscu
          1. Jeśli zespół nie pracuje w jednym miejscu...
        4. Wymaganie wstępne numer 4: przedstawiciele klientów
          1. Jeśli menedżer produktu jest zbyt zajęty, aby mógł przebywać z zespołem...
          2. Jeśli menedżerowi produktu brakuje doświadczenia...
          3. Jeśli w ogóle nie można zaangażować menedżera produktu...
          4. Jeśli nie można zaangażować innych przedstawicieli klientów...
        5. Wymaganie wstępne numer 5: odpowiednia wielkość zespołu
          1. Jeśli liczba programistów jest nieparzysta...
          2. Jeśli zespół obejmuje więcej niż siedmiu programistów...
          3. Jeśli w skład zespołu wchodzi mniej niż czterech programistów...
          4. Jeśli wielu programistów pracuje samodzielnie...
        6. Wymaganie wstępne numer 6: stosowanie wszystkich praktyk
          1. Jeśli dana praktyka nie pasuje...
        7. Zalecenie numer 1: nowy kod bazowy
          1. Jeśli zespół musi pracować nad istniejącym kodem...
        8. Zalecenie numer 2: wysokie umiejętności w obszarze projektowania
          1. Jeśli nikt nie jest uzdolnionym projektantem...
        9. Zalecenie numer 3: język łatwy do refaktoryzacji
          1. Jeśli zespół używa języka trudnego do refaktoryzacji...
        10. Zalecenie numer 4: doświadczony coach programista
          1. Jeśli nie ma naturalnego coacha...
          2. Jeśli liderzy są niedoświadczeni...
          3. Jeśli wyznaczono nieodpowiedniego coacha...
        11. Zalecenie numer 5: przyjazny i spójny zespół
          1. Jeśli członkowie zespołu nie przepadają za sobą...
      2. Naprzód!
        1. Wyzwania przy wprowadzaniu zmian
        2. Ostateczne przygotowania
        3. Stosowanie XP do zupełnie nowych projektów (zalecane)
        4. Stosowanie XP do istniejących projektów
          1. Znaczące decyzje
          2. Wprowadzanie porządku w chaos
          3. Spłacanie długu technicznego
          4. Porządkowanie zaległości
          5. Naprawianie ważnych błędów
          6. Przesuwanie testerów do przodu
          7. Wyłanianie się z ciemności
        5. Stosowanie XP w organizacji opartej na etapach
          1. Obowiązkowy etap planowania
          2. Obowiązkowy etap analiz
          3. Obowiązkowy etap projektowania
          4. Obowiązkowy etap pisania kodu
          5. Obowiązkowy etap testów
          6. Obowiązkowy etap wdrażania
        6. Ekstremalne rozwiązania: stosowanie fragmentów XP
          1. Iteracje
          2. Retrospekcja
          3. Dziesięciominutowa kompilacja
          4. Ciągła integracja
          5. Wytwarzanie sterowane testami
          6. Inne praktyki
      3. Ocena zwinności zespołu
        1. Kwestionariusz samooceny
  6. II. Stosowanie XP
    1. 5. Myślenie
      1. Programowanie w parach
        1. Dlaczego pary?
        2. Jak tworzyć pary?
        3. Prowadzenie i pilotowanie
        4. Stanowiska do pracy w parach
        5. Wyzwania
          1. Komfort
          2. Niedopasowane umiejętności
          3. Sposób komunikacji
          4. Narzędzia i skróty klawiaturowe
        6. Pytania
        7. Efekty
        8. Przeciwwskazania
        9. Inne możliwości
        10. Dalsza lektura
      2. Energiczna praca
        1. Jak mieć dużo energii?
        2. Wspomaganie energicznej pracy
        3. Przerwy
        4. Pytania
        5. Efekty
        6. Przeciwwskazania
        7. Inne możliwości
        8. Dalsza lektura
      3. Informacyjne miejsce pracy
        1. Drobne wskazówki
        2. Duże, widoczne diagramy
        3. Odręczne diagramy
        4. Diagramy usprawniania procesu
        5. Liczenie
        6. Pytania
        7. Efekty
        8. Przeciwwskazania
        9. Inne możliwości
        10. Dalsza lektura
      4. Analizy przyczynowo-skutkowe
        1. Jak wykryć podstawową przyczynę?
        2. Jak usunąć podstawową przyczynę?
        3. Kiedy nie należy usuwać podstawowej przyczyny?
        4. Pytania
        5. Efekty
        6. Przeciwwskazania
        7. Inne możliwości
      5. Retrospekcje
        1. Rodzaje retrospekcji
        2. Jak przeprowadzać retrospekcje iteracji?
        3. Etap 1.: podstawowa zasada
        4. Etap 2.: burza mózgów
        5. Etap 3.: ciche kategoryzowanie
        6. Etap 4.: cel retrospekcji
        7. Po retrospekcji
        8. Pytania
        9. Efekty
        10. Przeciwwskazania
        11. Inne możliwości
        12. Dalsza lektura
    2. 6. Współpraca
      1. Zaufanie
        1. Strategia zespołowa numer 1: empatia między klientem a programistą
        2. Strategia zespołowa numer 2: empatia między programistami a testerami
        3. Strategia zespołowa numer 3: wspólne spożywanie posiłków
        4. Strategia zespołowa numer 4: ciągłość zespołu
        5. Wrażenie
        6. Strategia organizacyjna numer 1: wykazywanie się aktywnością
        7. Strategia organizacyjna numer 2: realizacja zobowiązań
        8. Strategia organizacyjna numer 3: zarządzanie problemami
        9. Strategia organizacyjna numer 4: szanowanie celów klientów
        10. Strategia organizacyjna numer 5: promocja zespołu
        11. Strategia organizacyjna numer 6: uczciwość
        12. Pytania
        13. Efekty
        14. Przeciwwskazania
        15. Inne możliwości
        16. Dalsza lektura
      2. Wspólna praca
        1. Radzenie sobie z nieskuteczną komunikacją
        2. Lepszy sposób
        3. Wykorzystywanie doskonałej komunikacji
        4. Sekrety wspólnej pracy
        5. Przygotowywanie pomieszczenia
        6. Projektowanie pomieszczenia roboczego
        7. Przykładowe pomieszczenie robocze
        8. Małe pomieszczenie robocze
        9. Przeprowadzka do otwartego pomieszczenia roboczego
        10. Pytania
        11. Efekty
        12. Przeciwwskazania
        13. Inne możliwości
        14. Dalsza lektura
      3. Zaangażowanie prawdziwego klienta
        1. Rozwój na potrzeby własne
        2. Niestandardowe rozwiązania wewnętrzne
        3. Niestandardowe rozwiązania zewnętrzne
        4. Oprogramowanie specjalistyczne
        5. Oprogramowanie do sprzedaży publicznej
        6. Pytania
        7. Efekty
        8. Przeciwwskazania
        9. Inne możliwości
      4. Wspólny język
        1. Problem wiedzy z dziedziny
        2. Dwa języki
        3. Jak posługiwać się tym samym językiem?
        4. Wspólny język w kodzie
        5. Precyzowanie wspólnego języka
        6. Pytania
        7. Efekty
        8. Przeciwwskazania
        9. Inne możliwości
        10. Dalsza lektura
      5. Krótkie spotkania robocze
        1. Jak przeprowadzać codzienne krótkie spotkania robocze?
        2. Zwięzłość
        3. Pytania
        4. Efekty
        5. Przeciwwskazania
        6. Inne możliwości
        7. Dalsza lektura
      6. Standardy pisania kodu
        1. Poza formatowanie
        2. Jak ustalić standardy pisania kodu?
        3. Radzenie sobie z niezgodą
        4. Przestrzeganie standardów
        5. Pytania
        6. Efekty
        7. Przeciwwskazania
        8. Inne możliwości
      7. Demonstracje iteracji
        1. Jak przeprowadzić demonstrację iteracji?
        2. Dwa kluczowe pytania
        3. Cotygodniowa instalacja jest niezbędna
        4. Pytania
        5. Efekty
        6. Przeciwwskazania
        7. Inne możliwości
      8. Raporty
        1. Rodzaje raportów
        2. Podstawowe raporty o postępach
          1. Wizja
          2. Cotygodniowe demonstracje
          3. Plany wydań i iteracji
          4. Wykresy wykonanych zadań
        3. Dodatkowe raporty o postępach
          1. Mapy
          2. Listy elektroniczne z opisem stanu
        4. Dodatkowe raporty dla zarządu
          1. Wydajność
          2. Przerób
          3. Usterki
          4. Wykorzystanie czasu
        5. Raporty, których należy unikać
          1. Liczba wierszy kodu źródłowego (SLOC) i punkty funkcyjne
          2. Liczba opowieści
          3. Szybkość
          4. Jakość kodu
        6. Pytania
        7. Efekty
        8. Przeciwwskazania
        9. Inne możliwości
        10. Dalsza lektura
    3. 7. Udostępnianie
      1. „W pełni gotowe”
        1. Oprogramowanie w wersji produkcyjnej
        2. Jak zapewnić „pełną gotowość”?
        3. Znajdowanie czasu
        4. Pytania
        5. Efekty
        6. Przeciwwskazania
        7. Inne możliwości
      2. Brak błędów
        1. Jak to możliwe?
        2. Jak dojść do prawie zerowego poziomu błędów?
        3. Składnik numer 1: mniej błędów w czasie pisania kodu
        4. Składnik numer 2: eliminacja miejsc sprzyjających powstawaniu błędów
        5. Składnik numer 3: naprawianie błędów od razu
        6. Składnik numer 4: testowanie procesu
        7. Składnik numer 5: usprawnianie procesu
        8. Gruntowna zmiana oczekiwań
        9. Pytania
        10. Efekty
        11. Przeciwwskazania
        12. Inne możliwości
        13. Dalsza lektura
      3. Kontrola wersji
        1. Równoległe wprowadzanie zmian
        2. Podróż w czasie
        3. Cały projekt
        4. Klienci i kontrola wersji
        5. Utrzymywanie porządku
        6. Jeden kod bazowy
        7. Prawidłowe wykorzystanie gałęzi
        8. Pytania
        9. Efekty
        10. Przeciwwskazania
        11. Inne możliwości
        12. Dalsza lektura
      4. Dziesięciominutowa kompilacja
        1. Automatyzacja kompilacji
        2. Jak automatyzować?
        3. Kiedy stosować automatyzację?
        4. Automatyzacja odziedziczonych projektów
        5. Dziesięć minut lub mniej
        6. Pytania
        7. Efekty
        8. Przeciwwskazania
        9. Inne możliwości
        10. Ciągła integracja
        11. Dlaczego to działa?
        12. Jak stosować ciągłą integrację?
        13. Zachowywanie poprawności kompilacji
        14. Proces ciągłej integracji
          1. Aktualizacja przy użyciu kodu z repozytorium
          2. Integracja
        15. Wprowadzanie ciągłej integracji
        16. Sposoby na długą kompilację
        17. Kompilacja w integracji wieloetapowej
        18. Pytania
        19. Efekty
        20. Przeciwwskazania
        21. Inne możliwości
      5. Współwłasność kodu
        1. Jak zapewnić współwłasność kodu?
        2. Praca nad nieznanym kodem
        3. Ukryte korzyści
        4. Pytania
        5. Efekty
        6. Przeciwwskazania
        7. Inne możliwości
      6. Dokumentacja
        1. Dokumentacja obecnych prac
        2. Dokumentacja produktu
        3. Dokumentacja zdawcza
        4. Pytania
        5. Efekty
        6. Przeciwwskazania
        7. Inne możliwości
    4. 8. Planowanie
      1. Wizja
        1. Wizja produktu
        2. Skąd pochodzi wizja?
        3. Ustalanie wizji
        4. Dokumentowanie wizji
        5. Jak utworzyć deklarację wizji?
        6. Promocja wizji
        7. Pytania
        8. Efekty
        9. Przeciwwskazania
        10. Inne możliwości
        11. Dalsza lektura
      2. Planowanie wydania
        1. Jeden projekt w danym momencie
        2. Wczesne i częste udostępnianie
        3. Jak umożliwić częste udostępnianie kodu?
        4. Przykład
        5. Przystosowywanie planów
        6. Zachowanie elastyczności
        7. Jak przygotować plan wydania?
        8. Planowanie w ostatnim momencie na podjęcie zobowiązań
        9. Planowanie przystosowawcze i kultura organizacji
        10. Pytania
        11. Efekty
        12. Przeciwwskazania
        13. Inne możliwości
        14. Dalsza lektura
      3. Gra planistyczna
        1. Jak grać?
          1. Rozwiązywanie sporów
        2. Jak wygrać?
        3. Pytania
        4. Efekty
        5. Przeciwwskazania
        6. Inne możliwości
      4. Zarządzanie ryzykiem
        1. Ogólny plan zarządzania ryzykiem
        2. Zagrożenia specyficzne dla projektu
        3. Jak podejmować zobowiązania dotyczące wydania?
        4. Sukces jest ważniejszy niż harmonogram
        5. Kiedy zobowiązania nie wystarczają
        6. Pytania
        7. Efekty
        8. Przeciwwskazania
        9. Inne możliwości
        10. Dalsza lektura
      5. Planowanie iteracji
        1. Ograniczenie czasowe iteracji
        2. Harmonogram iteracji
        3. Jak zaplanować iterację?
        4. Ceremonia podejmowania zobowiązań
        5. Po sesji planowania
        6. Zarządzanie długimi sesjami planowania
        7. Śledzenie iteracji
        8. Co robić, kiedy pojawią się problemy?
        9. Częściowo ukończona praca
        10. Nagłe żądania
        11. Batman
        12. Pytania
        13. Efekty
        14. Przeciwwskazania
        15. Inne możliwości
          1. Długość iteracji
        16. Dalsza lektura
      6. Zapas
        1. Jak duży zapas jest potrzebny?
        2. Jak wprowadzić zapas?
        3. Czas na naukę
        4. Co robić, kiedy realizacja zobowiązań jest zagrożona?
          1. Refaktoryzacja jako zabezpieczenie
          2. Niewielka liczba nieobowiązkowych nadgodzin
          3. Rezygnacja z czasu na naukę
        5. Umiar
        6. Skracanie zapasu
        7. Pytania
        8. Efekty
        9. Przeciwwskazania
        10. Inne możliwości
          1. Grupy wspólnej nauki
          2. Srebrne opowieści
        11. Dalsza lektura
      7. Opowieści
        1. Karty opowieści
        2. Koncentracja na kliencie
        3. Dzielenie i łączenie opowieści
        4. Specjalne opowieści
          1. Opowieści dotyczące dokumentacji
          2. Opowieści „pozafunkcjonalne”
          3. Opowieści o błędach
          4. Opowieści punktowe
          5. Szacowanie
          6. Spotkania
          7. Architektura, projekt, refaktoryzacja i infrastruktura techniczna
        5. Pytania
        6. Efekty
        7. Przeciwwskazania
        8. Inne możliwości
        9. Dalsza lektura
      8. Szacowanie
        1. Dobre I Złe Metody Szacowania
        2. Szybkość
        3. Szybkość i ograniczenie czasowe iteracji
        4. Jak dokonywać stabilnych szacunków?
        5. Jak szacować koszty opowieści?
        6. Jak oszacować koszt zadań wchodzących w skład iteracji?
        7. Co zrobić, kiedy szacowanie sprawia trudności?
        8. Wyjaśnianie szacunków
        9. Jak zwiększyć szybkość?
          1. Spłacanie długu technicznego
          2. Zwiększenie zaangażowania klientów
          3. Wspieranie energicznej pracy
          4. Odciążanie programistów
          5. Zapewnianie niezbędnych zasobów
          6. Dołączenie nowych programistów (z zachowaniem ostrożności)
        10. Pytania
        11. Efekty
        12. Przeciwwskazania
        13. Inne możliwości
        14. Dalsza lektura
    5. 9. Wytwarzanie
      1. Stopniowe zbieranie wymagań
        1. Żywa dokumentacja wymagań
        2. Stopniowa praca
          1. Wizje, funkcje i opowieści
          2. Ogólne oczekiwania
          3. Makiety, testy klienta i kryteria ukończenia
          4. Przeglądy z udziałem klientów
        3. Pytania
        4. Efekty
        5. Przeciwwskazania
        6. Inne możliwości
        7. Dalsza lektura
      2. Testy klienta
        1. Opis
        2. Demonstracja
        3. Wytwarzanie
        4. Koncentracja na regułach biznesowych
        5. Kierowanie przez klientów
        6. Automatyzacja przykładów
        7. Pytania
        8. Efekty
        9. Przeciwwskazania
        10. Inne możliwości
        11. Dalsza lektura
      3. Wytwarzanie sterowane testami
        1. Dlaczego technika TDD jest skuteczna?
        2. Jak stosować TDD?
          1. Etap 1. — myślenie
          2. Etap 2. — czerwony pasek
          3. Etap 3. — zielony pasek
          4. Etap 4. — refaktoryzacja
          5. Etap 5. — powtarzanie
        3. Przykład wykorzystania TDD
          1. Zadanie
          2. Jedna para nazwa-wartość
          3. Pusty łańcuch znaków
          4. testNull()
        4. valueFor()
          1. Wiele par nazwa-wartość
        5. Metoda count() dla wielu elementów
          1. Kolej na Czytelnika
        6. Narzędzia do testowania
        7. Znaczenie szybkości
        8. Testy jednostek
        9. Wyspecjalizowane testy integracji
        10. Testy kompleksowe
        11. TDD i odziedziczony kod
        12. Pytania
        13. Efekty
        14. Przeciwwskazania
        15. Inne możliwości
        16. Dalsza lektura
      4. Refaktoryzacja
        1. Projektowanie refleksyjne
          1. Zróżnicowane zmiany i Chirurgia odpryskowa
          2. Obsesja na punkcie typów prostych i Zbitki danych
          3. Klasy danych i Klasy prawie jak statyczne
          4. Bawienie się z wartością null
          5. Zależność w czasie i Niepełne obiekty
        2. Analiza istniejącego kodu
        3. Jak refaktoryzować?
        4. Refaktoryzacja w praktyce
        5. Pytania
        6. Efekty
        7. Przeciwwskazania
        8. Inne możliwości
        9. Dalsza lektura
      5. Prosty projekt
        1. Nie będziesz tego potrzebował (NBTP)
        2. Raz i tylko raz
        3. Samodokumentujący się kod
        4. Izolowanie niezależnych komponentów
        5. Ograniczanie liczby interfejsów udostępnianych
        6. Szybkie zgłaszanie błędów
        7. Pytania
        8. Efekty
        9. Przeciwwskazania
        10. Inne możliwości
        11. Dalsza lektura
      6. Stopniowy rozwój projektu i architektury
        1. Jak to działa?
        2. Ciągłe projektowanie
        3. Stopniowe projektowanie metod
        4. Stopniowe projektowanie klas
        5. Stopniowe projektowanie architektury
        6. Architektura sterowana ryzykiem
        7. Poza pisanie kodu
        8. Pytania
        9. Efekty
        10. Przeciwwskazania
        11. Inne możliwości
        12. Dalsza lektura
      7. Rozwiązania punktowe
        1. O rozwiązaniach punktowych
        2. Przeprowadzanie eksperymentów
        3. Planowanie rozwiązań punktowych
        4. Pytania
        5. Efekty
        6. Przeciwwskazania
        7. Inne możliwości
      8. Optymalizacja wydajności
        1. Jak optymalizować?
        2. Kiedy optymalizować?
        3. Pisanie opowieści dotyczących wydajności
        4. Pytania
        5. Efekty
        6. Przeciwwskazania
        7. Inne możliwości
        8. Dalsza lektura
      9. Testy eksploracyjne
        1. O testach eksploracyjnych
        2. Narzędzie numer 1: deklaracja
        3. Narzędzie numer 2: obserwacja
        4. Narzędzie numer 3: notatki
        5. Narzędzie numer 4: heurystyki
          1. Żadne, kilka, wszystkie
          2. Złotowłosa: za duże, za małe, w sam raz
          3. Pozycja: początek, środek, koniec
          4. Liczba: zero, jeden, wiele
          5. CRUD: tworzenie, odczyt, aktualizacja, usuwanie
          6. Wstrzyknięcie polecenia
          7. Ataki związane z typami danych
        6. Przykład
        7. Co zrobić po znalezieniu błędu?
        8. Pytania
        9. Efekty
        10. Przeciwwskazania
        11. Inne możliwości
        12. Dalsza lektura
  7. III. Mistrzostwo w dziedzinie programowania zwinnego
    1. 10. Wartości i zasady
      1. Wspólne elementy
      2. O wartościach, zasadach i praktykach
      3. Dalsza lektura
    2. 11. Usprawnianie procesu
      1. Zrozumienie projektu
        1. Praktyki
        2. Poza praktyki
      2. Dopracowywanie i adaptacja
        1. Praktyki
        2. Poza praktyki
      3. Łamanie reguł
        1. Praktyki
        2. Poza praktyki
    3. 12. Poleganie na ludziach
      1. Budowanie efektywnych związków
        1. Praktyki
        2. Poza praktyki
      2. Odpowiednie osoby do odpowiednich zadań
        1. Praktyki
        2. Poza praktyki
      3. Budowanie procesu dla ludzi
        1. Praktyki
        2. Poza praktyki
    4. 13. Eliminowanie marnotrawstwa
      1. Praca w małych, odwracalnych etapach
        1. Praktyki
        2. Poza praktyki
      2. Szybkie wykrywanie niepowodzeń
        1. Praktyki
        2. Poza praktyki
      3. Maksymalizacja liczby zadań, których nie trzeba wykonywać
        1. Praktyki
        2. Poza praktyki
      4. Dążenie do wysokiej przepustowości
        1. Praktyki
        2. Poza praktyki
    5. 14. Zapewnianie wartości
      1. Wykorzystanie zwinności
        1. Praktyki
        2. Poza praktyki
      2. Wartość ma tylko kod gotowy do udostępnienia
        1. Praktyki
        2. Poza praktyki
      3. Zapewnianie wyników biznesowych
        1. Praktyki
        2. Poza praktyki
      4. Częste udostępnianie
        1. Praktyki
        2. Poza praktyki
    6. 15. Dążenie do doskonałości technicznej
      1. Oprogramowanie nie istnieje
      2. Projekt to narzędzie ułatwiające zrozumienie
      3. Równowaga w projektach
      4. Nienazwana cecha
      5. Doskonały projekt
      6. Ogólne zasady projektowania
        1. Kod źródłowy to (ostateczny) projekt
        2. Nie powtarzaj się (NPS)
        3. Zachowaj spójność
        4. Luźne powiązanie
        5. Wyjaśnianie, upraszczanie i dopracowywanie
        6. Szybkie wykrywanie niepowodzeń
        7. Optymalizacja na podstawie pomiarów
        8. Spłacanie długu technicznego
      7. Zasady w praktyce
      8. Dążenie do mistrzostwa
  8. A. Literatura cytowana
  9. B. O autorach
  10. Indeks
  11. Kolofon
  12. Copyright