Jak poszerzać swoją wiedzę jako programista? Dobrym sposobem są książki, zwłaszcza te ponadczasowe. Niewątpliwie jest nią książka „Legendarny osobomiesiąc. Opowieści o inżynierii oprogramowania” autorstwa Frederick P. Brooks Jr.
W tym wpisie odpowiem na następujące pytania:
- Dlaczego książka „Legendarny osobomiesiąc” jest wyjątkowa?
- Czego możesz się z niej dowiedzieć?
- Czy warto czytać książki tego rodzaju?
Zatrzymaj się!
Książka „Programistą być” to obowiązkowa pozycja dla wszystkich zainteresowanego programowaniem!
Jest to zdecydowanie najlepsza na polskim rynku książka na temat programowania! Zyskasz przewagę w branży IT i osiągniesz dużo jako deweloper.
Z książki dowiesz się między innymi o tym:
- Czy matematyka, studia techniczne i język angielski są konieczne do tego, by rozpocząć pracę jako programista?
- Gdzie szukać informacji o programowaniu i w jaki sposób się uczyć?
- Jak znaleźć pierwszą pracę i w jaki sposób rozwijać swój programistyczny potencjał?
- Czym na co dzień zajmuje się programista?
- Czy każdy może zostać programistą?
I wiele, wiele więcej…
Wprowadzenie do recenzji książki „Legendarny osobomiesiąc”
Temat książek w IT bywa kontrowersyjny, jednak ja uważam, iż są takie pozycje, które każdy inżynier systemu powinien przeczytać. „Legendarny osobomiesiąc. Opowieści o inżynierii oprogramowania” to taka właśnie książka – ponadczasowa. Pierwsze wydanie datowane jest na rok 1975! Drugie wydanie datowane jest na 1995 roku i właśnie to wydanie jest brane na tapet w tym wpisie.
Frederick Phillips Brooks Jr. to ważna postać w świecie IT. Laureat dziesiątek międzynarodowych nagród, w tym tej najważniejszej, czyli Nagrody Turinga z roku 1999 za rozwój architektury komputerów i oprogramowania. Wieloletni pracownik firmy IBM i pracował tam między innymi nad systemami operacyjnymi ówczesnych superkomputerów. Doświadczenia z pracy nad tymi systemami zapisał w książce „Legendarny osobomiesiąc”. Jest też autorem prawa Brooksa, które szczegółowo opisane jest w książce. Prawo to brzmi następująco:
Im więcej osób dołącza do pracy w późnej fazie projektu, tym później ukazuje się on na rynku
Książka napisana przez Brooksa dotyka dwóch głównych tematów — inżynierii systemu i zarządzania projektami. Obserwacje Brooksa podczas swojej pracy jako manager nad rozwojem OS/360 w IBM są ponadczasowe, dlatego treść książki jest tak wyjątkowa.
Z jednej strony przenosimy się w czasie o ponad 50 lat, z drugiej strony mamy kalkę dzisiejszych projektów i problemów. Mimo dynamiki branży IT i nowych technologii, problemy z inżynierią i zarządzaniem projektami jest dokładnie taka sama jak w latach 60 XX wieku! Jest to coś niesamowitego.
Tendencja menedżerów do powtarzania takich błędów w rozwoju projektów sprawiła, iż książkę Brooksa można nazwać „Biblią inżynierii oprogramowania”. Sam autor żartuje, mówiąc, iż „książkę każdy cytuje, niektórzy ją czytają, a tylko kilka osób stosuje zasady w niej zawarte”.
Rozdziały książki „Legendarny osobomiesiąc”
Książka nie licząc wstępów i epilogu podzielona jest na 19 krótkich i przyjemnych rozdziałów:
-
Smolisty dół – rozdział, w którym dowiesz się, dlaczego oprogramowanie nazywane może zostać tytułowym „smolistym dołem”;
-
Legendarny osobomiesiąc – rozdział poświęcony w pełni prawu Brooksa;
- Zespół chirurgiczny – coś dla fanów skalowania i budowania idealnie wyważonych zespołów wytwarzających oprogramowanie;
- Arystokracja, demokracja i projekt systemu – Rozdział mówiący o tym, czy podział prac poziomych jest lepszy od pionowych. Pracować lepiej w zespołach synchronicznych, zależnych od siebie czy asynchronicznych?
- Efekt drugiego systemu – Rozdział rozprawia nad tym, iż kiedy architekt projektuje drugi system, jest to najbardziej niebezpieczny system, jaki kiedykolwiek zaprojektuje. Dzieje się tak dlatego, iż programiści będą mieli tendencję do włączania wszystkich dodatków, których pierwotnie nie dodali do pierwszego systemu. Przerost formy nad treścią;
- Przekazywanie wieści – Problem stary jak świat, czyli komunikacja w zespołach IT;
- Dlaczego upadła wieża Babel – Kolejny przykład problemów komunikacyjnych w projektach;
- Podejmowanie decyzji – Odpowiedź na takie pytania, jak szacować, ile czasu zajmie praca nad projektem i jak duży wysiłek jest potrzebny, by ukończyć zadanie lub cały projekt;
- Dziesięć kilo w pięciokilowym worku – Wyceny projektów przez osoby odpowiedzialne za finanse to ogromny problem firm IT. Rozdział dziewiąty jest odpowiedzią na wiele nurtujących pytań podczas liczenia pieniędzy;
- Hipoteza dokumentacji – Horror prawdziwego programisty, czyli kilka słów na temat dokumentacji projektu;
- Plan odrzucania – Budowa systemu to dwa kroki do przodu i jeden wstecz i wszystko to za sprawą błędów. I o błędach właśnie przeczytasz w tym rozdziale;
- Ostre narzędzia – Kilka stron o narzędziach, którymi powinien dysponować programista. Jeden z tych rozdziałów, który niestety swoje lata świetności ze względu na sprzęt komputerowy ma już za sobą;
- Całość i części – Czy da się w magiczny sposób programować bez błędów? Rozdział, w którym dowiadujemy się nieco ciekawych rzeczy na temat debugowania, poprawy błędów i pisania zwinnego kodu;
- Wysiadywanie katastrofy – opóźnienia w projekcie i ASAP to w dzisiejszych czasach norma? Czy zawsze tak było i czy da się dowozić na czas?
- Druga twarz – kolejny rozdział poświęcony dokumentacji, ale tym razem kilka stron na temat samodokumentującego się kodu;
- Nie ma srebrnej kuli – jakie problemy jeszcze spotykają na swojej drodze programiści i co mogą z nimi zrobić? Programowanie to dziedzina związana z rozwiązywaniem problemów i o problemach poczytasz w jednym z ostatnich rozdziałów książki „Legendarny osobomiesiąc”;
- Nie ma srebrnej kuli, raz jeszcze – rozdział dodany do drugiego wydania książki, który jest kontynuacją rozdziału poprzedniego;
- Propozycje z „Legendarnego osobomiesiąca” – streszczenie 17 poprzednich rozdziałów;
- Legendarny osobomiesiąc — 20 lat później – autor w tym rozdziale odpowiada na zarzuty i pytania czytelników pierwszego wydania książki;
Moja opinia
Książka dobrze pasowałaby do kategorii „Historia” zamiast „Informatyka”. Uważam jednak, iż mimo kilku rozdziałów, w których przenosimy się w czasie, sporo aktualnych problemów przez cały czas nas dopada podczas projektowania i tworzenia oprogramowania. Nie uchronił nas Scrum, Jira i nowe języki programowania.
Czytając książkę „Legendarny osobomiesiąc”, musisz brać poprawkę na opisywane w niej języki, narzędzia czy sprzęty i wyciągnąć prawdziwe mięcho, czyli to, co dotyka bardziej umiejętności miękkich. Ludzie przez ostatnie dziesięciolecia kilka się zmienili.
Programiści kiedyś mieli tak samo wielkie ego, jak dziś. Tak samo słabo komunikowali. Tak samo obawiali się opóźnień i reakcji przełożonych. Kiedyś ta skala była mniejsza i widoczna tylko w tak gigantycznych projektach, jakimi zajmował się Brooks w IBM. Dziś skala jest większa, od małych firm, po duże korporacje.
Może pojawić się pytanie, czy doświadczony programista wyciągnie coś z tej książki? Śmiem twierdzić, iż nie, poza tym, iż przeniesie się w czasie i będzie mógł poczuć magię programowania programistów-emerytów. Czytając tę książkę i mając 10 lat doświadczenia zawodowego jako programista, miałem wrażenie, iż to wszystko już gdzieś widziałem, słyszałem, czytałem.
Wniosek z tego jest jeden – potrafimy stworzyć narzędzia, które ewoluują w ekspresowym tempie, ale sami jako ludzie kilka uczymy się na błędach i przez cały czas stoimy w tym samym miejscu!
Zobacz książkę „Legendarny osobomiesiąc”
Newsletter
Nie przegap i dołącz już dziś do 815 osób będących w tym Newsletter! Otrzymuj co niedzielę o godzinie 20 listę kilku ciekawych tematów, które miałem okazję obserwować w mijającym tygodniu.
Tematy będą głównie techniczne, ale czasami pojawi się coś, co może wprowadzi Cię w stan zadumy i zmusi do dyskusji w szerszym gronie. Zero spamu!
Sprawdź swoją skrzynkę odbiorczą (albo katalog na spam) i potwierdź swoją subskrypcję.