Software Craftsman. Profesjonalizm, czysty kod i techniczna perfekcja - ebook
Software Craftsman. Profesjonalizm, czysty kod i techniczna perfekcja - ebook
Coraz więcej mówi się o dobrych praktykach programistycznych, a mimo to wciąż zdarzają się przypadki wydania nieudanego produktu. Istnieje wiele przyczyn tego stanu rzeczy, np. postrzeganie procesu tworzenia oprogramowania jako linii produkcyjnej, brak właściwego zarządzania projektami, a także brak wypracowanych metod rekrutacji specjalistów i kierowania zespołem. Rozwój metodyk zwinnego programowania poprawił sytuację, lecz problem niskiej jakości samych projektów nie zniknął.
Książka ta proponuje czysto rzemieślnicze podejście do pracy programisty. Idea ta, znana jako software craftsmanship, zakłada kompletną zmianę sposobu myślenia o programowaniu. Priorytetami stają się tu profesjonalizm, techniczna perfekcja i zadowolenie klienta, a osiąga się to, stosując pewne praktyki programistyczne, które zaczerpnięto m.in. z metodyk programowania ekstremalnego, zwinnego i odchudzonego. Autor, który jest współzałożycielem największej organizacji deweloperów-rzemieślników, dzieli się swoją wiedzą i doświadczeniem poprzez inspirujące przykłady i praktyczne rady. Okazuje się, że dzięki tej postawie zespół może osiągnąć najwyższy poziom technicznej doskonałości tworzonych projektów.
Jest to książka o peofesjonalizmie programowania. Nie tylko o profesjonalizmie programisty, ale również o całej organizacji tworzenia oprogramowania Jest to książka o mistrzostwie w programowaniu. Na jej stronach autor przedstawia plan, srategię, podejścia i reguły, które mogą pomóc każdemu programiście, każdemu zespołowi programistów i każdej organizacji wytwarzającej oprogramowanie w wyrwaniu się z grzęzawiska mierności i we wkroczeniu na ścieżkę profesjonalizmu, jak również w zapewnieniu większej wydajności oraz poczucia dumy z tego, co się robi.
/ ze wstępu, Robert C. Martin
Z książki dowiesz się:
- w jaki sposób podejście rzemieślnicze zwiększa jakość tworzonego oprogramowania i obsługi klientów,
- kiedy i jak mówić klientowi nie oraz jak proponować rozwiązania zastępcze,
- dlaczego dobrym deweloperom zdarza się pisać zły kod i jak można temu zapobiegać,
- jak być pragmatykiem — a nie dogmatykiem — w kwestii stosowania praktyk i narzędzi,
- w jaki sposób zatrudniać deweloperów-rzemieślników, jak nimi kierować,
- jak zaszczepić w zespole prawdziwy kult uczenia się,
- jak wprowadzać zmiany techniczne.
Programuj profesjonalnie — liczą się pragmatyzm, perfekcja i cel!
Sandro Mancuso programuje od dziecka. Pracował w wielu różnych firmach, również w korporacjach międzynarodowych i bankach inwestycyjnych. Jest zwolennikiem idei programowania mistrzowskiego i ekstremalnego. W październiku 2013 roku został współzałożycielem firmy konsultingowej o nazwie Codurance, w której za podstawę działania przyjęto zasady i wartości software craftsmanship. Mancuso jako cel zawodowy przyjął sobie podnoszenie jakości branży informatycznej przez pomaganie deweloperom w doskonaleniu rzemiosła programistycznego. Często bierze udział w konferencjach informatycznych w różnych miejscach świata.
Spis treści
Słowo wstępne (11)
Przedmowa (13)
Podziękowania (19)
O autorze (23)
CZĘŚĆ I. IDEOLOGIA I PODEJŚCIE (25)
Rozdział 1. Tworzenie oprogramowania w XXI wieku (27)
- Starszeństwo (29)
- Nowa rzeczywistość (30)
Rozdział 2. Agile, czyli zwinność (33)
- Dyscypliny Agile ukierunkowane na proces (34)
- Dyscypliny ukierunkowane na technikę (34)
- Na czym polega bycie zwinnym? (34)
- Przełom (35)
- Poszerzanie kompetencji (35)
- Ewolucja profesjonalizmu (36)
- Manifest Agile (36)
- Zasady uzupełniające Manifest Agile (36)
- Czas wdrażania zasad Agile (37)
- Kac agilowy (38)
- Transformacja częściowa (39)
- Agile coaching (41)
- Odrzucanie praktyk o charakterze technicznym (42)
- Naiwne podejście do tworzenia oprogramowania (42)
- Są też i dobre wieści (43)
- Zwinność a rzemiosło programowania (44)
- Podsumowanie (44)
Rozdział 3. Software Craftsmanship (47)
- Lepsza metafora (47)
- Co mówi Wikipedia? (48)
- Definicja osobista (48)
- Definicja krótka (48)
- Wykraczając poza definicje (48)
- Rzemiosło, zawód, inżynieria, nauka czy sztuka (49)
- Historia idei Software Craftsmanship (49)
- Software Craftsmanship - spotkanie na szczycie (50)
- Przekraczanie granic (51)
- Wymiana rzemieślników (52)
- Społeczności programistów-rzemieślników (53)
- Manifest Software Craftsmanship (53)
- Manifest (54)
- Nie tylko oprogramowanie działające, ale również dobrze wykonane (55)
- Nie tylko reagowanie na zmiany, ale również ciągłe dodawanie wartości (56)
- Nie tylko ludzie i interakcje, ale również społeczność profesjonalistów (57)
- Nie tylko współpraca z klientami, ale również efektywne partnerstwo (58)
- Lecz niektórzy klienci nie są przygotowani do partnerstwa... (59)
- Problem z manifestem (60)
- Podsumowanie (61)
Rozdział 4. Podejście rzemieślnicze (63)
- Kto rządzi Twoją karierą? (64)
- Relacja pracodawca-pracownik (65)
- Nadążanie za postępem (66)
- Książki, dużo książek (66)
- Blogi (68)
- Techniczne witryny internetowe (69)
- Za kim podążać? (69)
- Media społecznościowe (69)
- Praktyka, praktyka, praktyka (70)
- Kata (71)
- Projekty własne (71)
- Projekty otwarte (73)
- Programowanie w parach (74)
- Społeczność (75)
- Wiedzieć, czego się nie wie (75)
- Nie samą pracą człowiek żyje (77)
- Znajdowanie czasu (77)
- Koncentracja - technika pomodoro (79)
- Równowaga (79)
- Podsumowanie (80)
Rozdział 5. Bohaterowie, życzliwość i profesjonalizm (81)
- Nauka mówienia "NIE" (84)
- Klęska (84)
- Wnioski (86)
- Profesjonalizm (87)
- Wysuwanie propozycji (89)
- Opcja nieoczekiwana i realna (90)
- Oświecone kierownictwo (92)
- Podsumowanie (93)
Rozdział 6. Oprogramowanie działające (95)
- Działanie oprogramowania to jeszcze nie wszystko (96)
- Pielęgnowanie ogrodu (97)
- Ukryte zagrożenie (97)
- Zakładnicy własnego oprogramowania (98)
- Zatrudnianie prawdziwych rzemieślników, a nie przeciętniaków (99)
- Niewłaściwe poczucie czasu (99)
- Historia długu technicznego (99)
- Zapracowany zespół (100)
- Karta zadaniowa testu jednostkowego (103)
- Mądre gospodarowanie czasem (104)
- Kod zastany (105)
- Zmiana nastawienia (106)
- Własna satysfakcja i zadowolenie klienta (107)
- Podsumowanie (107)
Rozdział 7. Praktyki techniczne (109)
- Właściwy produkt kontra właściwe wykonanie (109)
- Kontekst (110)
- Historia programowania ekstremalnego (111)
- Praktyki i wartości (113)
- Dodawanie wartości przez praktykę (114)
- Odpowiedzialność (119)
- Pragmatyzm (120)
- Podsumowanie (121)
Rozdział 8. Długa droga (123)
- Opowieść brazylijskiego nastolatka (123)
- Koncentracja i wytrwałość (125)
- A co, jeśli nie wiemy, dokąd zmierzamy? (126)
- Praca jako inwestycja (127)
- Samodzielność, mistrzostwo i cel (128)
- Kariera w ramach firmy (129)
- Podsumowanie (131)
CZĘŚĆ II. PEŁNA TRANSFORMACJA (133)
Rozdział 9. Rekrutacja (135)
- Typowy opis stanowiska pracy (135)
- Zbyt zajęci, by przeprowadzić rozmowę kwalifikacyjną (138)
- Bez opisów stanowiska pracy (139)
- A jeśli opis stanowiska pracy jest konieczny? (140)
- Praca to nie tylko zajęcie (145)
- Rekomendacje (145)
- Współpraca ze środowiskiem (146)
- Definiowanie skutecznych kryteriów wyboru (147)
- Rekrutacja proaktywna (149)
- Podsumowanie (150)
Rozdział 10. Rozmowa kwalifikacyjna z programistą-rzemieślnikiem (153)
- Negocjacje biznesowe (154)
- Rozpoznawanie efektywnego partnerstwa (154)
- Perspektywa firmy (155)
- Perspektywa kandydata (156)
- Dobra rozmowa kwalifikacyjna (158)
- Właściwy cel (159)
- Mapa myśli rozmowy kwalifikacyjnej (159)
- Programowanie w parach jako forma rozmowy kwalifikacyjnej (160)
- Rozmowy kwalifikacyjne dostosowane do konkretnych potrzeb (163)
- Sztuka wyboru (164)
- Przyjmowanie do zespołu istniejącego a przyjmowanie do zespołu zupełnie nowego (164)
- Ćwiczenia w kodowaniu przed rozmową kwalifikacyjną (165)
- Każdy powinien umieć przeprowadzać rozmowy kwalifikacyjne (166)
- Z deweloperami powinni rozmawiać deweloperzy (167)
- Podsumowanie (167)
Rozdział 11. Antywzorce rozmowy kwalifikacyjnej (169)
- Nie wymądrzaj się (169)
- Nie dawaj łamigłówek do rozwiązania (170)
- Nie zadawaj pytań, na które nie znasz odpowiedzi (170)
- Nie próbuj udowadniać kandydatowi, że jest głupcem (171)
- Nie blokuj internetu (172)
- Nie każ pisać kodu na papierze (172)
- Nie stosuj algorytmów (172)
- Nie przeprowadzaj telefonicznych rozmów kwalifikacyjnych (173)
- Podsumowanie (174)
Rozdział 12. Koszt niskiego morale (175)
- Kac agilowy - niskie morale (175)
- Koszty zatrudniania deweloperów pracujących od 9.00 do 17.00 (177)
- Ograniczenia wynikające z braku motywacji (180)
- Zaszczepianie pasji (180)
- Podsumowanie (182)
Rozdział 13. Kult uczenia się (183)
- Zła motywacja (184)
- Tworzenie kultu uczenia się (185)
- Załóż klub książki (186)
- Organizuj techniczne spotkania w porze lunchu (186)
- Organizuj dyskusje grupowe (przy okrągłym stole) (187)
- Zmieniaj projekty po każdej iteracji (187)
- Przeprowadzaj grupowe przeglądy kodu (189)
- Organizuj sesje ćwiczeniowe (189)
- Zainicjuj wewnętrzną społeczność praktyków (191)
- Zorganizuj czas na realizację własnych projektów (191)
- Nawiąż współpracę z zewnętrznymi społecznościami (192)
- A jeśli towarzystwo jest oporne? (192)
- Bądź przykładem (192)
- Skup się na tych, którym zależy (193)
- Nie zmuszaj (193)
- Nie próbuj zmieniać wszystkich (193)
- Nie uzgadniaj terminów (193)
- Nie proś o upoważnienie (194)
- Nie komplikuj (194)
- Ustal rytm swojego działania (195)
- Podsumowanie (195)
Rozdział 14. Wprowadzanie zmian technicznych (197)
- Rodzaje sceptycyzmu (197)
- Bądź przygotowany (201)
- Od czego zacząć? (202)
- Zdobądź zaufanie (202)
- Nabierz doświadczenia (203)
- Zachęcaj własnym przykładem (203)
- Nie walcz na wielu frontach (204)
- Przeprowadzaj iteracje, inspekcje i wdrożenia (205)
- Strach i niekompetencja (206)
- Jak przekonać kierownika? (207)
- Jak przekonać zespół do stosowania metodyki TDD? (208)
- Jak przekonać sceptyków? (209)
- Oderwany od świata architekt (210)
- Pokrzywdzeni (214)
- Czy naprawdę powinno nas to wszystko obchodzić? (215)
- Podsumowanie (215)
Rozdział 15. Rzemiosło pragmatyczne (217)
- Jakość jest zawsze oczekiwana (217)
- Obalanie mitu jakości kosztownej i czasochłonnej (219)
- Czy musimy wszystko testować? (220)
- Refaktoryzacja (221)
- "Jedyny" sposób tworzenia oprogramowania (222)
- Pomaganie stronie biznesowej (223)
- Proste i szybkie rozwiązanie (223)
- W projektach informatycznych nie chodzi o nas (226)
- Wybitny kontra przeciętny (226)
- Cztery zasady prostoty (227)
- Wzorce projektowe (228)
- Refaktoryzacja do wzorców (228)
- Rzemiosło a pragmatyzm (230)
- Podsumowanie (230)
Rozdział 16. Kariera programisty-rzemieślnika (233)
- Bycie rzemieślnikiem (234)
- Uczciwość i odwaga (235)
- Rozwój kariery (235)
- Różne drabiny (236)
- Drogi i kamienie milowe (237)
- Budowanie kariery, tylko jedna praca naraz (238)
- A jeśli nie wiemy, dokąd iść? (240)
- Różnorodność prac (241)
- Misja (242)
Dodatek A. Mity na temat rzemiosła i dalsze wyjaśnienia (243)
- Deweloper-rzemieślnik a zwykły deweloper (244)
- Elitaryzm (244)
- Terminator, czeladnik i mistrz (244)
- Mistrz rzemiosła (245)
- Klapki na oczach (245)
- Rzemiosło a XP (246)
- Przywiązanie do praktyk (246)
- Agile coachowie i kierownicy (246)
- Nauka zawodu programisty (247)
- Problem z metaforą (247)
Skorowidz (249)
Kategoria: | Branża IT |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-2136-6 |
Rozmiar pliku: | 3,0 MB |