... o których każdy programista
wiedzieć powinien.

Zawsze słuchaj ekspertów. Oni powiedzą ci, czego nie da się zrobić i dlaczego. A ty potem to zrób.
-- Robert Heinlein
Robert C. Martin (Uncle Bob)

Profesjonalny programista

Oryginalny tytuł: The Professional Programmer

Autor: Robert C. Martin (Uncle Bob)

Kim jest profesjonalny programista?

Jedną z najważniejszych cech profesjonalnego programisty jest osobista odpowiedzialność. Profesjonalni programiści biorą odpowiedzialność za swoją karierę, swoje szacowania, swoje zaplanowane zobowiązania, swoje błędy i za swój kunszt pracy. Profesjonalny programista nie zrzuca odpowiedzialności na innych.

  • Jeśli jesteś profesjonalistą znaczy to, że to Ty jesteś odpowiedzialny za swoją karierę. Jesteś odpowiedzialny za czytanie i uczenie się. Jesteś odpowiedzialny za bycie na bieżąco z branżą i technologią. Wielu programistów uważa, że doszkalanie to obowiązek ich pracodawców. To jest kompletna bzdura. Sądzisz, że lekarze zachowują się w ten sposób? Sądzisz, że prawnicy robią podobnie? Nie, sami szkolą się we własnym czasie i za własne pieniądze. Spędzają sporą ilość czasu po godzinach na czytaniu magazynów i orzeczeń sądów. Są na bieżąco. My także musimy tak robić. Związek pomiędzy Tobą a Twoim pracodawcą jest nakreślony w twoim kontrakcie. W skrócie: pracodawca obiecuje Ci płacić a Ty obiecujesz robić dobrą robotę.

  • Profesjonaliści biorą odpowiedzialność za kod, który piszą. Nie wypuszczają oprogramowania zanim nie upewnią się, że działa. Pomyśl o tym przez chwilę. Jak możesz nazywać siebie profesjonalistą, jeśli masz zamiar oddać kod, którego nie jesteś pewny? Prefesjonalni programiści oczekują, że QA nie znajdzie żadnych błędów, ponieważ nie wypuszczają kodu, zanim go dokładnie nie przetestują. Oczywiście QA znajdzie błędy, ponieważ nikt nie jest doskonały. Jednakże jako profesjonaliści powinniśmy stosować takie podejście, że nie dajemy QA okazji od znalezienia błędów.

  • Profesjonaliści są graczami drużynowymi. Biorą odpowiedzialność za wynik całego zespołu a nie tylko za swój. Pomagają sobie wzajemnie, uczą się od siebie a nawet zastępują się, kiedy zachodzi taka potrzeba. Jeśli jeden członek zespołu nie jest w stanie wykonać swojego zadania, drugi wchodzi na jego miejsce, wiedząc, że pewnego dnia on też będzie potrzebował pomocy.

  • Profesjonaliści nie tolerują długich list błędów. Długa lista błędów jest niedopuszczalna. Tysiące zgłoszeń w systemie do śledzenia błędów to tragedia. W rzeczy samej, w większości projektów sam fakt potrzeby systemu do śledzenia błędów jest oznaką niedbałości. Jedynie wielkie systemy powinny mieć listy błędów tak długie, aby był potrzebny system do zarządzania nimi.

  • Profesjonaliści nie robią bałaganu. Chlubią się swoją pracą. Tworzą czysty, dobrze ustrukturyzowany i łatwy do czytania kod. Używają ustalonych standardów i najlepszych praktyk. Nigdy, ale to nigdy się nie śpieszą. Wyobraź sobie, że wychodzisz ze swojego ciała i obserwujesz lekarza przeprowadzającego na Tobie operację. Lekarz ma ostateczny termin. Musi skończyć, zanim płucoserce zniszczy zbyt wiele Twoich krwinek. Jak chciałbyś, aby się on zachowywał? Chciałbyś, aby działał podobnie jak typowy programista, śpiesząc się i robiąc bałagan? Chciałbyś, aby po wszystkim powiedział: “Wrócimy do tego i poprawimy to później”? Czy wolałbyś, aby trzymał się ściśle swojej dyscypliny, nie śpiesząc się, i aby był pewny, że jego podejście jest najlepsze w danej sytuacji. Wolisz bałagan czy porządek?

Profesjonaliści są odpowiedzialni. Biorą odpowiedzialność za swoją własną karierę. Biorą odpowiedzialność za to, że ich kod działa poprawnie. Biorą odpowiedzialność, za jakość swojej pracy. Nie porzucają swoich zasad w obliczu nadciągającego terminu projektu. W rzeczy samej, kiedy ciśnienie wzrasta, profesjonaliści jeszcze bardziej trzymają się zasad, o których wiedzą, że są dobre.

Creative Commons Uznanie Autorstwa 3.0 Artykuł został opublikowany na licencji Creative Commons Uznanie Autorstwa 3.0.
Tłumaczenie: pawlos

Komentarze (5)

28-08-2012 22:16:41
To czy zaciągamy dług technologiczny (wprowadzamy bałagan) jest decyzją biznesową a nie programistyczną. Czasem biznes jest w takiej sytuacji, kiedy musi coś szybko dostarczy i jest to lepsza strategia, że później będziemy naprawiać kiedy biznes się zwaliduje albo na siebie zarobii i prześcignie konkurencję. Porównanie z lekarzem jest totalnie nietrafione w tym kontekście.
profanator pisze:
30-08-2012 12:13:06
gorzej jeżeli takie podejście "biznesowe" jest stałą praktyką a dług technologiczny dawno już przekroczył możliwości jego spłaty... innymi słowy bałagan jest taki że firmy nie stać na jego posprzątanie, vide najęcie sprzątaczki
31-08-2012 23:13:32
Robercie :) A jeśli decyzja biznesowa o zaciągnięciu długu technicznego ma swój rodowód nie w chęci prześcignięcia konkurencji ale raczej dlatego, że jedna osoba (niekoniecznie wysoko w hierarchii) obiecała, że będzie jutro gotowe i od tego zależy jej bonus? To wtedy TY jako programista zareagujesz czy też będziesz czekał z założonymi rękami "bo to decyzja biznesowa"? A wiesz, za tydzień faktycznie firma stanie przed szansą stulecia i tak jak napisał kolega "profanator" - wtedy nasza aplikacja się zwyczajnie zesra bo ktoś "pozaciągał dług techniczny" (bardzo ładne sformułowanie na "amatorkę"). Pomyśl o tym. pzdr
25-09-2012 22:56:04
"innymi słowy bałagan jest taki że firmy nie stać na jego posprzątanie, vide najęcie sprzątaczki" - to wtedy nie zaciągasz długo technologicznego tylko bankrutujesz na całego. Tak jak finansami trzeba zarządać tak i długiem technologicznym. W obu przypadkach nieodpowiedzialność prowadzi do katastrofy. Pawle, sytuacja którą opisałeś jest przykra ale z drugiej strony, jeśli przyjmujesz zadania od osoby, której bonus zależy to pracujesz dla niej. Ona ma korzyść, użytkownicy, firma może niekoniecznie. Jak zareaguję to by zależało od miliona czynników. Mógłbym Ci dokładnie odwrotnę historię spróbować sprzedać, programista chce mieć ładny kod a biznes potrzebuje coś na wczoraj bo jest szansa stulecia. I co zrobisz? Będziesz czekać z założonymi rękami "bo to decyzja techniczna" i ktoś chce to napisać ładnie? Wiec może ta "szansa za tydzień" jest właśnie teraz? Biznes powinien to wiedzieć i umieć rozpoznać, to jest ich odpowiedzialność. Jeśli robią to nieudolnie, tak jak w przytoczonym przykładzie to są różne opcje: od dyskusji po odjeście z firmy, gdy się to często powtarza. I nie mylmy amatorki z zaciąganiem długu. Pierwsze jest wynikiem słabych umiejętności tej czy innej strony projektu, drugie celowym działaniem, którego skutki rozumie każda ze stron i rozumiejąc mimo to decyduje się podjąć taką decyzję.
18-12-2012 18:34:50
To, że dług techniczny był decyzją biznesową spowodowało, że jest tak wiele systemów, których nikt nie rozwija i nie jest w stanie utrzymywać "na chodzie". W najlepszych teamach w jakich pracowałem poziom techniczny nie podlegał negocjacjom. Można było negocjować zakres, budżet i termin. Okazja biznesowa nie jest wymówką. Wyobraź sobie, że masz okazję zarobić jeśli wybudujesz galerię handlową w pół roku i mówisz "nie ma czasu zagęszczać betonu na fundamenty, bo nam okazja biznesowa ucieknie. Zbrojeń też nie ma co skręcać, wrzućcie pręty jak leci".

Dodaj komentarz

*
 
 
*
*