Dla programistów praca jest pasją. Dla wielu z nich do tego stopnia, że życie osobiste, sprawy rodzinne, a nawet zarabianie pieniędzy stają się sprawami drugorzędnymi. Widocznym objawem tego są wszelkie inicjatywy opensource, w których uczestniczą tysiące ludzi. W niewielu dziedzinach życia jest podobnie (czy zastanawialiście się, dlaczego nie ma opensource'owego ruchu prawniczego czy ekonomicznego i to mimo ogromnej popularności tych dziedzin sądząc po oblężeniu kierunku studiów?). Warto zrozumieć, dlaczego tak wielu ludzi pasjonuje tworzenie oprogramowania, by również w organizacjach komercyjnych stworzyć warunki pracy pozwalające tę pasję realizować.
Typowym niebezpieczeństwem w tym obszarze jest (świadoma lub nie) zgoda na obniżenie jakości produktu pod wpływem nacisków na jego szybkie zakończenie. Jeżeli nie uda się zapewnić dostatecznego czasu na dopracowanie produktu i w efekcie produkt przestaje być powodem do dumy, to większość programistów szybko straci dla niego serce.
Przy długich i skomplikowanych projektach wymaga to dodatkowego wysiłku. Podstawą powinien być dobrze napisany dokument opisujący wizję projektu, ale dokumenty ludzie rzadko czytają nieprzymuszeni. Wesprzeć się można spotkaniami i rozmowami, mailami, różnymi formami wizualizacji. Można wywiesić w dostępnym miejscu listę głównych celów lub schemat architektury pokazujący umiejscowienie poszczególnych modułów w kontekście całości. Dla zadań o mniej postrzegalnych rezultatach (testowaniu itp.) można skorzystać z wizualnej reprezentacji harmonogramu, pokazującej zależności pomiędzy zadaniami i ich rolę w całości przedsięwzięcia.
Podobnie ważne jak wyobrażenie kształtu docelowego rozwiązania, jest zrozumienie, jaką wartość dodaną wniesie zrealizowany projekt dla końcowych użytkowników. Jest to niezbędny czynnik stworzenia dobrego rozwiązania, ale dodatkowo jest to czynnik motywujący. Któż bowiem chciałby pracować, nie mając poczucia, że wynik jego pracy jest naprawdę potrzebny? Jeżeli projekt jest już częściowo wdrożony u klienta należy zapewnić, by programiści mieli sygnał zwrotny o jego losie - czy został zaakceptowany formalnie, jakie były wyniki testów, jakie są opinie użytkowników, jak produkt sprawdza się w organizacji klienta? Im lepsze wiadomości, tym większe zadowolenie wykonawców. Jeśli wieści są gorsze, to bez zapewnienia komunikacji zwrotnej nie będzie możliwe usprawnienie w przyszłości.
Reguł na stworzenie zespołu nie ma. Można tylko zadbać o stworzenie odpowiedniej atmosfery i wierzyć, że iskra pomiędzy ludźmi w pewnym momencie przeskoczy. Jest natomiast wiele metod na rozbicie zespołu:
Programiści to ludzie, którzy lubią się uczyć. W przeciwnym razie nie byliby zapewne programistami. Rozwój intelektualny, podejmowanie nowych wyzwać, tworzenie coraz bardziej złożonych programów, nauka nowych języków i technik programowania to jest to, co może dać wiele satysfakcji. Zastój będzie powodował frustrację, szczególnie w dzisiejszej sytuacji gwałtownego rozwoju technologii, bo może powodować zmniejszanie wartości na rynku pracy. Dlatego zapewnienie rozwoju jest warunkiem koniecznym, by długoterminowo utrzymać zespół bez dużej rotacji pracowników.
Zapewnienie rozwoju swoim pracownikom, powinno być jednym z głównych celów dobrego menadżera. Narzędziami do jego osiągnięcia jest odpowiedni dobór zadań (takich, które będą poszerzały ich umiejętności, ale nie będą ich przerastały), wskazanie kierunków rozwoju, stworzenie w zespole atmosfery sprzyjającej kształceniu, organizowanie szkoleń i treningów.
Przy długich projektach potrzebne są mniejsze sukcesy "po drodze". Zakończenie w terminie poszczególnych etapów czy oddanie kolejnych wersji, które pozytywnie przechodzą testy mogą dobrze spełnić taką rolę (o ile spełniają wspomniane warunki: stanowią pewne wyzwanie, ale są osiągane). Takie zdarzenia w projekcie warto celebrować.
Dla części programistów podobną rolę mogą też pełnić wykonywane codziennie zestawy testów automatycznych. Wtedy bezpośredniu po zakończeniu każdego elementarnego zadania, co kilka dni, programista dostaje potwierdzenie, że wykonana została dobra robota.
Mój postulat brzmi: jeśli my, kierownicy, chcemy mieć frajdę z pracy, to naszym celem powinno być tworzenie pozytywnej zmiany. Nie tylko przez dostarczanie satysfakcji klientom, ale również stworzenie wysokiej jakości miejsca pracy dla uczestników projektów. By spędzana przez nich w pracy co najmniej połowa życia była dobrze oceniana nie tylko przez pryzmat zarabianych pieniędzy.