rss

Przekleństwo open space

Oferujemy znakomite warunki pracy w środowisku open-space” – w ten sposób niektóre, zwłaszcza większe firmy kuszą potencjalnych pracowników. Szczególnie ma to być atrakcyjne dla fanów filmu „Office Space” sprzed dekady i mają w pamięci farmy pracowników upakowanych w niewielkie pudełka (cubicles). W porównaniu do tej rzeczywistości open-space ma być wyśnioną krainą wolnej przestrzeni, nie ograniczonej szarymi ściankami.

Michał Paluchowski, 20 czerwca 2010

Nie dla mnie.

Kto znalazł się kiedykolwiek w podobnym otoczeniu zauważył zapewne, że jest tam trochę jak w przysłowiowym ulu. Cały czas ktoś się rusza, cały czas ktoś rozmawia – czasem na temat projektu, innym razem na temat rosnących cen kalarepy; telefony dzwonią – służbowe i prywatne, ze słuchawek wydobywają się pomruki słuchanej muzyki. W ekstremalnym przypadku spotkałem się z prowadzeniem telekonferencji przez zestaw głośnomówiący.

Spróbujmy w takim miejscu umieścić programistę. Programowanie wymaga zasadniczo dwóch istotnych cech:

Dziewczynka zatykająca uszy

Programowanie wymaga skupienia. Jeśli jakieś zakłócenie wyrwie programistę z tego stanu gubi on aktualny “wątek”, w którym się poruszał. Po chwili potrzebuje kolejnego kwadransu, żeby przypomnieć sobie gdzie skończył, wracając do poprzedniego poziomu koncentracji.

Programowanie to praca z detalami. Jeśli przecinek będzie stał nie tam gdzie trzeba, może to wykoleić program wart miliony dolarów. Jeśli programista nie może się odpowiednio skupić, łatwo będzie mu popełnić takie drobne, a potencjalnie katastrofalne w skutkach błędy.

Jak działa mózg

Jak większość z nas wie, mózg ludzki ma dwie półkule.

Programowanie wymaga silnego zaangażowania lewej półkuli. Uszkodzenie lewej półkuli mózgu powoduje, że poszkodowany jest niezdolny do wykonania złożonych czynności, jak chociażby rozpoznawania cyfr.

Tak się składa, że lewa półkula również przetwarza dźwięk, nadając mu znaczenie – w szczególności przetwarza mowę. Muzyka jest przetwarzana w prawej półkuli, dzięki czemu można jednocześnie słuchać muzyki (o ile jest samą melodią, bez tekstu) i programować. Ale jeśli programista chce skupić się na trudnym zadaniu, to każda rozmowa w jego bezpośredniej okolicy będzie mu to zadanie utrudniać, często uniemożliwiać.

Własny pokój i zamykane drzwi

Część doświadczonych menadżerów, takich jak Joel Spolsky apeluje, podpierając się „Peopleware” Toma DeMarco, aby programistów umieszczać wyłącznie w odosobnionych pokojach z drzwiami, które się zamykają. Tylko w ten sposób mogą oni osiągnąć pełną koncentrację przy minimalnej ilości zakłóceń. Ograniczy to zarówno typowe dzienne “pogaduchy” jak i praktykę zadawania sobie nawzajem prostych pytań, kiedy odpowiedź może podać w ciągu 15 sekund Google.

Korytarz z drzwiami do biur

Wszyscy spotykają się towarzysko w przestrzeni wspólnej, m.in. jedzą wspólnie lunch, co nadrabia braki osobistej komunikacji. Jeśli potrzebny jest kontakt bezpośredni, zawsze można do kogoś pójść, lub zwołać większe spotkanie. Ilość tychże jest ograniczana do minimum.

Programiści większość dnia spędzają pracując w skupieniu nad problemami technicznymi.

Pokój wojenny

Pomieszczenie z biurkami

Agile, szczególnie jedna z jego pierwszych implementacji – eXtreme Programming” proponuje model pokoju wojennego. Cały, maksymalnie 10-12 osobowy zespół pracujący nad danym projektem zamykamy w jednym pomieszczeniu. Ma to umożliwić bezpośrednią, a więc szybką i skuteczną komunikację i doprowadzić do wypracowania najlepszych możliwych rozwiązań.

Ktoś może zadać pytanie, które ktoś inny usłyszy i wniesie cenne uwagi. Łatwo ustalić jak komponenty programu mają się ze sobą komunikować, bo autorzy jednego i drugiego siedzą obok siebie. Szybko można się zorientować jak korzystać z nowego modułu, kiedy jego twórca może go bezpośrednio zademonstrować.

W miarę możliwości również klient – właściciel produktu, powinien przebywać w tej samej przestrzeni. Dzięki temu wątpliwości co do wymagań funkcjonalnych również można rozwiać “od ręki”.

Droga środka

Porównując teorię Joela z teorią Agile łatwo zorientować się, że każda posiada cechy, których nie ma druga. Agile jest lepszy od open-space, ponieważ większość głośnej komunikacji, która się odbywa w pokoju, będzie związana z tym, nad czym wszyscy pracują. Łatwość komunikacji jest bez wątpienia istotna. Z drugiej strony model Joela podnosi jakość efektów pracy programistów, redukując ilość głupich i niepotrzebnych błędów.
<a
Z własnego doświadczenia proponuję drogę środka, tzn. rozpoczynając od modelu Agile faktycznie cały zespół projektowy umieścić w jednym pomieszczeniu. Ale, każdemu developerowi dać do dyspozycji laptopa i udostępnić osobne pomieszczenia, w których w razie potrzeby można pracować samotnie i bez zakłóceń.

Dobre laptopy posiadają możliwość dokowania, wystarczy więc, że w takich osobnych pokojach zestawi się odpowiedni sprzęt – zewnętrzne monitory, klawiaturę, myszkę. Przeniesienie się wymaga wtedy jedynie wypięcie laptopa z jednej stacji dokującej i wpięcie do innej. Zamykamy drzwi i do dzieła.