Szczególna cecha umysłu

"Superprogramiści są inni na skutek tego, co tkwi w głębi ich umysłów. Wiele osób uczy się gry na fortepianie, spędzając długie lata w najlepszych szkołach muzycznych. Wybitnymi artystami zostają jednak tylko jednostki. Dlaczego? Pewnych rzeczy nie da się po prostu wyuczyć" - twierdzi Andrzej Odyniec, członek Rady Nadzorczej MacroSoftu, jeden z założycieli tej firmy. Czy rzeczywiście istnieje takie zjawisko w przypadku tworzenia programów, co jak wiadomo jest sztuką, ale tylko w części nie większej od dyscypliny inżynieryjnej i rzemiosła? "Jak najbardziej. Potwierdzają to moje doświadczenia" - mówi Andrzej Odyniec. "Są takie jednostki. U nas jest to co najmniej kilkanaście osób na ponad 300-osobowy zespół zajmujący się produkcją oprogramowania" - twierdzi Przemysław Skałecki, kierownik wdrożenia KSI ZUS w Prokom Software.

Wśród osób mających kontakt ze środowiskiem programistów brakuje jednak zgody. Wielu z nich sądzi, że istnienie superprogramistów jest tylko środowiskową legendą. Że ich superwydajność w rzeczywistości wynika z tego, iż firma nie stosuje rzetelnych pomiarów efektywności ich pracy. Że miano superprogramistów przypisuje się osobom wybitnie biegłym w konkretnym środowisku programowania bądź też potrafiącym zawziąć się, tak że nie ustąpią dopóty, dopóki nie rozwiążą danego problemu.

"Nie ma takiego zjawiska, przynajmniej u nas. U podstaw naszej działalności leży praca zespołowa. Z tego powodu nie stosujemy szczegółowego mierzenia wydajności pojedynczych pracowników, np. odnośnie do liczby linii tworzonego kodu" - mówi Jacek Drabik, dyrektor ds. operacyjnych Centrum Oprogramowania Motoroli w Krakowie. Zdaniem Przemysława Skałeckiego różnice w produktywności nie są aż tak duże, by można było mówić o rzędzie wielkości. "Dość dokładnie mierzymy kosztową efektywność pracy naszych programistów. Zauważalne różnice są 2-, 4-krotne. Wybitni programiści potrafią w półtora dnia zrobić to, co innym zajmuje tydzień. Gdy różnica jest większa, to raczej znak, że potrzebne jest doszkolenie całego zespołu" - dodaje Przemysław Skałecki.

Znaleźć miejsce

Być może istnieje pewne wyjaśnienie tej niejednoznaczności opinii. Superprogramiści na ogół źle się czują w dużych zespołach, w których obowiązują sztywne formalne reguły dotyczące procesu wytwórczego oprogramowania. Liczą się w nich przede wszystkim narzędzia i metodologie mające na celu poprawę wydajności programistów i podniesienie jakości wytworów ich pracy - w skali całego domu software'owego, nie zaś pojedynczych pracowników. Istotne są również umiejętność dobrej komunikacji, przewidywalność czy dojrzałość intelektualna i emocjonalna, nawet za cenę przeciętnych, za to stałych osiągnięć. Superprogramiści szukają sobie nisz, małych firm, gdzie mogą w pełni się realizować. Efektem ich działalności jest przypuszczalnie oprogramowanie z obszaru open source czy przełomowe aplikacje z dekady lat 80., np. arkusz kalkulacyjny Lotus 1-2-3. Duże firmy mają jednak tę przewagę, że umożliwiają pracę przez krótszy czas przy ciekawych projektach. Superprogramiści mogą więc funkcjonować w większych firmach, jeśli tylko stworzy się im ku temu stosowne warunki. "Z superprogramistami jest trochę tak, jak z dziećmi - praca z nimi to wielka radość, ale wymaga szczególnej i stałej uwagi" - twierdzi Przemysław Skałecki. "Muszą się w pewnym sensie czuć bezpiecznie, jak u siebie w domu. Awans na stanowiska wymagające kontaktów interpersonalnych może ich unieszczęśliwić" - uważa Rafał Stefanowski, wiceprezes spółki Hoga.pl. Wszyscy rozmówcy podkreślają, że superprogramiści z zasady nie kwalifikują się na stanowiska wdrożeniowe. Bardzo źle wypadają w bezpośrednich kontaktach z klientem. "Staramy się wokół takich osób budować grupy, poprzez które superprogramiści mogą przekazywać swoją wiedzę. Ich pozytywny wpływ na resztę członków zespołu jest trudny do przecenienia" - uważa Przemysław Skałecki. Dobrze jest kierować ich do prac rozwojowych, wymagających ponadprzeciętnej wiedzy i umiejętności. "To także najlepsi kandydaci do wszelkiego rodzaju mission impossible" - twierdzi Przemysław Skałecki.

Co charakterystyczne, zwolennicy prawdziwości tezy o istnieniu superprogramistów przyznają, że choć tacy programiści niejednokrotnie lekceważą skodyfikowane procesy tworzenia oprogramowania czy formalne wytyczne zarządzania jakością tworzonego kodu, to jednak potrafią bez tego zewnętrznego wspomagania pisać stabilny i efektywny kod (i to szybko, i dobrze). Jeśliby przyjąć dane podawane przez Johna Parkinsona za prawdziwe, to należy zapytać, że skoro gros efektów pochodzi z pracy garstki superprogramistów, to czym właściwie zajmuje się reszta zespołu? Oczywiście nie jest tak, że zespół nic nie robi. Jego wkład ma istotne znaczenie. Zapewne wzrostowi produktywności domu software'owego pomogłaby eliminacja czarnych owiec, będących "generatorami błędów". John Parkinson stawia tezę, że zbyt daleko idąca formalizacja procesów wytwórczych oprogramowania na dłuższą metę obróci się przeciwko stosującym je firmom - bowiem najlepsi, najbardziej kreatywni programiści nie będą w stanie akceptować takiego miejsca pracy. A zawsze pozostaną pewne wyzwania i zagadnienia, których nie rozwiążą ci przeciętni, bez względu na to, ilu z nich "alokuje" się do danego zadania. Superprogramiści sprawiają jednak także problemy innego rodzaju. W końcu są na swój sposób artystami, a ci - jak wiadomo - by tworzyć, muszą mieć natchnienie. "Szefom łatwo przyzwyczaić się do myśli, że programiści mogą być aż tak bardzo wydajni. Tymczasem zdarza się, że efektywność pracy danego superprogramisty nieoczekiwanie gwałtownie spada, to zaś łamie przyjęte harmonogramy pracy" - mówi Andrzej Odyniec. Jest to jednak zapewne dość rzadkie zjawisko, bowiem inni specjaliści nie potwierdzają tej zmienności potencjału superprogramistów.

Czy superprogramiści rzeczywiście istnieją? Kim są? Może macie Państwo ciekawe doświadczenia związane z tym zjawiskiem - zapraszamy do dyskusji.


TOP 200