Szczególna cecha umysłu

Subskrybuj RSS A A A
4 sierpnia 2003
Przemysław Gamdzyk

Czy istnieją superprogramiści? Opinie na ten temat wśród przedstawicieli firm zajmujących się tworzeniem oprogramowania są podzielone.

Czy istnieją superprogramiści? Opinie na ten temat wśród przedstawicieli firm zajmujących się tworzeniem oprogramowania są podzielone.

Superprogramistów można również nazwać 10xprogramistami, bowiem efekty ich pracy są o rząd wielkości - nie zaś kilkanaście czy kilkadziesiąt procent - lepsze od pozostałych osób parających się tym zawodem. O tym zdumiewającym zjawisku napisał niedawno w jednym z amerykańskich pism informatycznych John Parkinson, szef ds. technologii w firmie konsultingowej Cap Gemini Ernst & Young. Jego doświadczenia wskazują (przez wiele lat kierował pracami kilkudziesięcioosobowych lub większych zespołów programistów), że średnio 75% finalnego kodu jest dziełem zaledwie 5% programistów biorących udział w projekcie, a co więcej z ich rąk (czy też raczej umysłów) pochodzi praktycznie cały "soft" doskonałej jakości (tj. nie tylko bardzo efektywny, ale przede wszystkim od początku charakteryzujący się małą liczbą błędów). Na ocenę pracy programisty składają się zarówno szybkość pisania kodu, jak i liczba tworzonych błędów (a tak naprawdę iloraz tych dwóch wielkości), czyli umiejętność dochodzenia do szukanego rozwiązania. Jego warsztat zawodowy tworzy umiejętność wysławiania się w danym języku programowania.

Tajemnica osiągnięć superprogramisty nie tkwi w wykorzystaniu wyrafinowanych narzędzi czy metodologii. Nie jest również efektem heroicznych wysiłków i pracy ponad siły (chociaż superprogramiści charakteryzują się zazwyczaj silnie zindywidualizowanym trybem pracy i przyzwyczajeniami, które dla innych mogą się wydawać osobliwe). "To całkiem zwyczajna, choć tak rzadka umiejętność znajdowania najprostszego rozwiązania danego problemu. Przeciętny programista tworzy kod z grubsza dwa razy większy niż potrzeba i w dodatku trzy razy wolniejszy niż powinien, traci bowiem z oczu podstawowe cele, jakie powinny przyświecać jego pracy. Woli bawić się klockami, tyle że wirtualnymi " - mówi Tomasz Kunicki, prezes AdRem Software.

Kwestia wyobraźni
Coraz częściej podnosi się argument, że do efektywnego zarządzania zespołem programistów bardzo przydatna może być znajomość psychologii, w szczególności rozumienia procesów mentalnych, których efektem jest powstawanie kodu. W końcu programy tworzą ludzie, a nie komputery! W artykule Understanding the Psychology of Programming, opublikowanym przez znany serwis internetowy DevX ( http://www.devx.com ), przeznaczony dla środowiska developerów, nowozelandzki konsultant Bryan Dollery stawia tezę, że wydajność programistów mocno zależy od fizycznych warunków otoczenia miejsca ich pracy. Programowanie jest procesem twórczym, wymaga zatem dłuższych okresów mentalnego skupienia oraz respektowania indywidualnych potrzeb poszczególnych osób biorących udział w tym procesie. Dobrzy programiści potrafią w znacznie większym stopniu i na znacznie dłużej niż przeciętna w populacji skoncentrować się na jednym zadaniu, przy całkowitym pominięciu wszystkiego, co nie przynależy do tego zadania (co zresztą stało się powodem do sformułowania przez niektórych psychologów słabo udokumentowanej hipotezy, że duża część programistów to osoby cierpiące na lekkie lub średnie stopnie autyzmu - nb. znany periodyk Wired w grudniowym numerze z ub.r. przytaczał dane o alarmującym wzroście liczby dzieci z syndromem Aspergera mieszkających w Krzemowej Dolinie).

Programowanie jest procesem, który w dużej mierze odbywa się w podświadomości. Dobry kod powstaje w sytuacji, w której programista w tak dużym stopniu jest skupiony na swojej pracy, że pewne rzeczy po prostu "płyną" z jego głowy. "Programowanie jest kwestią wyobraźni. Dobry programista potrafi sprawnie poruszać się po wielowymiarowych przestrzeniach, które tworzy w swojej głowie. Taki wirtualny model, tak ja sen, czasem jest uchwytny tylko w pewnych stanach umysłu" - uważa Piotr Nowak, senior project manager w Przedsiębiorstwie Usługowo-Produkcyjnym SPIN. Gdy tymczasem programista musi nagle zmieniać zupełnie kontekst swojego myślenia, odpowiadać na pytania nie związane z zadaniem wykonywanym w danej chwili, ten przepływ myśli zostaje zakłócony i powrót do właściwego stanu umysłu zajmuje kilka, kilkanaście czy nawet kilkadziesiąt minut. "Programy robi się całym sobą, w trakcie tego procesu nie może istnieć nic poza tym. Nie chodzi tu tylko o kodowanie - w tworzeniu dobrego oprogramowania nie ma ścisłej hierarchii i podziału ról. Każdy dobry programista musi być po części projektantem" - uważa Andrzej Odyniec. Potwierdza to Tomasz Kunicki. "Superprogramiści potrafią być jednocześnie budowniczymi i architektami, płynnie przechodząc różne poziomy abstrakcji, podczas gdy typowy programista zazwyczaj pozostaje na tym najniższym - procesie kodowania" - twierdzi Tomasz Kunicki.

Oczywiście czynnik skupienia jest istotny w każdej pracy umysłowej, ale w przypadku programowania odgrywa on kluczową rolę. Zatem o zbyt niskiej wydajności programistów często decydują zła organizacja ich pracy i lekceważenie krytyczności czynnika koncentracji, a więc także często podyktowana pozorną oszczędnością niesprzyjająca tejże koncentracji aranżacja miejsca pracy ( "Jeśli nie potrafisz wydobyć ze swoich programistów tego co najlepsze, to w jaki sposób zamierzasz tworzyć dobre programy?" - pyta Bryan Dollery).

Idąc tropem tez Dollery'ego, można by zauważyć, że superprogramiści to ludzie odporniejsi na działanie tych czynników zewnętrznych, bardziej od nich niezależni. Wyrwani ze stanu koncentracji umysłu potrafią doń błyskawicznie powrócić, zaś same fizyczne warunki miejsca ich pracy nie mają dla nich większego znaczenia. Oczywiście, jeśli tylko spełni się ich, czasem dziwaczne, zachcianki i wymagania.


Oceń artykuł

średnio: 0 liczba ocen: 0
1  2  dalej »

Komentarze (0)

Najnowsze

MAC, czyli ministerstwo reformowania rządzenia

Premier wspiera lojalnie w kryzysie najbliższego współpracownika, Michała Boniego, przyjmując na siebie atak oburzonych internautów podczas debaty o ACTA.

Nowe, unijne zamówienia publiczne

Komisja Europejska proponuje ważne zmiany prawa wspólnotowego w obszarze zamówień publicznych. Warto im się przyjrzeć bo to jeden z elementów nowej perspektywy finansowej UE. Warto zatem przyjrzeć się owej propozycji bliżej.

Bezpieczeństwo rządowych stron - analiza

Zespół zadaniowy ds. ochrony portali rządowych opublikował wytyczne. Trudno stwierdzić, że to najlepsze rekomendacje, jakie można było przy okazji zaistniałych ataków wypracować.

DEBATA: Kiedy walka polityczna w sieci przemienia się w cyberterroryzm?

Skuteczny atak cybernetyczny przyniesie opłakane skutki dla państwa i gospodarki. Boleśnie się o tym przekonaliśmy, gdy nie można było dostać się na strony internetowe najważniejszych instytucji w Polsce.

Czy MSW chce unieważnienia przetargu na pl.ID?

Rośnie ryzyko całkowitego unieważnienia przetargu na nowe dowody osobiste. Krajowa Izba Odwoławcza odrzuciła odwołanie firmy Sygnity, która nie zgadzała się na wydłużenie o trzy miesiące terminu składania ofert na dostawę blankietów nowych dowodów osobistych. Wydłużenie całego postępowania o trzy miesiące może spowodować skargi uczestniczących w nim firm, a w konsekwencji unieważnienie przetargu.

Garść rad dla roztropnego szefa IT

Trudne czasy w gospodarce to okres, kiedy szczególnego znaczenia nabiera hasło: Jak cię widza, tak cię piszą. Osłabienie rynku przekłada się na oszczędności w przedsiębiorstwie, a oszczędności najłatwiej szukać w działach, które, w opinii zarządu, nie są bezpośrednio związane z prowadzoną działalnością - czyli również w dziale IT.

Sprzeczne wizje e-dowodu

Koncepcja elektronicznego dowodu osobistego powstała w Polsce wiele lat temu. Starsze są koncepcje elektronicznego systemu świadczeń ochrony zdrowia. Mimo to, nadal są w trakcie budowy.

Rekomendacje

Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88