1 kwi 2009

Nadszedł czas... jakości


Na jednym z blogów (dokładnie to tu) znalazłem taki wpis:
The biggest challenge for me personally was essentially mourning for the death of “Programmer Man”. Programmer Man is how I think of myself when I’ve got my headphones in, speed metal blaring in my ears, and I’m coding like a motherfucker. My fingers can’t keep up with my brain. I’m In The Zone. For most of my career, this image is what I’ve considered to be the zenith. When I come home and was in Programmer Man Mode most of the day, I feel like I’ve had a good day.
Pair Programming undeniably killed Programmer Man. This was a tough adjustment, since I’ve considered that mode to be my favorite for so long. I now see, however, that Programmer Man was, without me knowing it, Technical Debt Man.
'Coding like a motherfucker' od razu przypomniało mi nasze polskie 'Nadszedł czas napi**lania':




Nie wiem kto kiedy dlaczego i jak na to wpadł (to z tym czasem) ale naprawdę dobrze odzwierciedla to częste podejście do realizowania projektów informatycznych. Jakość nie gra roli - ważne jest dotrzymanie terminu. Co będzie po 'przebiciu piłki przez siatkę' nie interesuje dostawcy - niech się z tym buja klient.

Ciekawa jest analogia między tymi dwoma tekstami. Jak czytam tego gościa, to przypominają mi się moje postawy w projektach parę lat temu. Takie napi**lanie kodu. Samotność w sieci.
Ale tak fajnie jest tylko na początku. Po paru miesiącach takiego developmentu wracamy do domu zmęczeni i sfrustrowani. To jest nasza normalność. Nasza szara rzeczywistość. I niczym matka-polka szorująca gary i piorąca brudne skarpety swojego popijającego piwo przed TV męża (ekscytującego się, że 40 milionowy kraj może wygrać w piłkę z San Marino...) godzimy się na takie życie. Na początku przynosi nam to zadowolenie, że dopisaliśmy kolejne stosy kodu. Potem jest już tylko frustracja i niecierpliwe czekanie na coś nowego. Na wyjście z mroku.

Programowanie to sport grupowy. Dlatego właśnie nazwa Scrum odwołuje się do sportu. Bo projekty wymagają współpracy. Ciągłej. We wszystkim. Praca w grupie powoduje podnoszenie jakości. I Twojej i Twojego kodu. Ciągłe. Wspólne.
Ale żeby móc osiągnąć takie środowisko - środowisko ciągłego uczenia się, wzajemnego poprawiania, ekscytacji pracą - niezbędna jest praca zespołowa. Stąd w Scrumie tyle spotkań. Stąd coraz częściej czerpane z XP praktyki z TDD i programowaniem w parach na czele. Bo to nic innego jak ciągłe poznawanie innych i siebie, w tym co robimy. To przeglądanie się jako programiści w kodzie swoim i innych jak w lustrze. To nabywanie doświadczeń przez nieustanną obserwację innych przy pracy. I ciągłe, nieustanne czytanie kodu. Bo Twoim klientem jako programisty nie jest jakiś bank, czy portal, nie ubezpieczyciel czy operator komórkowy, tylko drugi developer. Ten który będzie czytał twój kod i próbował go zrozumieć. To do niego kierujesz kod.

Panie i Panowie - nadszedł czas jakości!

PS. Nie wiem jak tam mecz. Ja jestem po whisky, ciesząc się świeżym certyfikatem CSP właśnie czytam hipershitowy kod. I żałuję, że jego autor nie czytał zanim go napisał tego co tu właśnie spłodziłem :)